[CE/SP] Hotfix 5.5.1 (#26091)

* [CE/SP] Hotfix 5.5.1

* [web] Fix License tab in CE/SP

* Added patch to improve logging

* Added patch to fix create-user.mjs

* Added check for `featureCompatibilityVersion` on CE/SP startup

* Patch with `multer` and `tar-fs` updates

* Install manually missing @paralleldrive/cuid2 on CE 5.1.1

GitOrigin-RevId: 0138dffdcb171382014a383bee13676fc873b1dd
This commit is contained in:
Miguel Serrano
2025-06-11 13:39:36 +02:00
committed by Copybot
parent 54afe1ead4
commit 5f43b15f28
8 changed files with 2577 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import {
const { ObjectId } = mongodb
const MIN_MONGO_VERSION = [6, 0]
const MIN_MONGO_FEATURE_COMPATIBILITY_VERSION = [6, 0]
async function main() {
let mongoClient
@@ -18,6 +19,7 @@ async function main() {
}
await checkMongoVersion(mongoClient)
await checkFeatureCompatibilityVersion(mongoClient)
try {
await testTransactions(mongoClient)
@@ -53,6 +55,41 @@ async function checkMongoVersion(mongoClient) {
}
}
async function checkFeatureCompatibilityVersion(mongoClient) {
const {
featureCompatibilityVersion: { version },
} = await mongoClient
.db()
.admin()
.command({ getParameter: 1, featureCompatibilityVersion: 1 })
const [major, minor] = version.split('.').map(v => parseInt(v))
const [minMajor, minMinor] = MIN_MONGO_FEATURE_COMPATIBILITY_VERSION
if (major < minMajor || (major === minMajor && minor < minMinor)) {
const minVersion = MIN_MONGO_FEATURE_COMPATIBILITY_VERSION.join('.')
console.error(`
The MongoDB server has featureCompatibilityVersion=${version}, but Overleaf requires at least version ${minVersion}.
Open a mongo shell:
- Overleaf Toolkit deployments: $ bin/mongo
- Legacy docker-compose.yml deployments: $ docker exec -it mongo mongosh localhost/sharelatex
In the mongo shell:
> db.adminCommand( { setFeatureCompatibilityVersion: "${minMajor}.${minMinor}" } )
Verify the new value:
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
...
{
featureCompatibilityVersion: { version: ${minMajor}.${minMinor}' },
...
Aborting.
`)
process.exit(1)
}
}
main()
.then(() => {
console.error('Mongodb is up.')