* [monorepo] record ERROR/FATAL log messages in junit report
* [web] put SaaS specific code behind feature flag
* [web] use split test cache for getting user assignments
The unit tests needed updating as they did not replicate any of the
mongo filtering. The acceptance tests cover this logic.
* [web] make better use of existing indexes
* [web] avoid col-scan in tests of notifications module
* [web] remove cleanup of empty feedbacks collection
* [web] add assertion for reason of rejected request in launchpad test
* [web] add missing indexes
* [web] enable mongo notablescan
* [web] make emailNotifications tests compatible with notablescan
GitOrigin-RevId: b888f2feeb3a0e915f068ae1c4ea23ec17821221
* Add `project-created` audit log only for managed users
* Include project audit logs in group audit logs
* Added details column in Group Audit Logs UI
GitOrigin-RevId: 96c7a31b37270912df1629e27d905b692f28da46
* fix: correct typedef for Document in helpers.mjs
* add move-migrations codemod
* update migration paths to use shared migrations directory
* move migrations to shared location
* fix: update Dockerfile and docker-compose.ci.yml to include migrations directory
* feat: add migrations tool to workspaces in package.json
* [monorepo] Fix order of docker ignore rules
* [web] remove unused docker ignore file
* [monorepo] replace old references to migrations folder
* [server-ce] copy migrations from new place
* [migrations] Inline web scripts
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [migrations] move three web scripts over
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [migrations] add missing collection
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [migrations] remove lodash dependency
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [migrations] avoid mongodb-legacy dependency
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [monorepo] run migrations from tools/migrations
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [migrations] simplify migration for adding gitBridge feature to users
* [monorepo] run migrations from tests in all the services
* [migrations] add Jenkins pipeline for linting/formatting
* [monorepo] fixup running web migrations everywhere
* [monorepo] trigger Jenkins builds on changes to mongo migrations
* [migrations] add Jenkins pipeline for linting/formatting
* [monorepo] build scripts: update devDependencies before deps scanning
* [monorepo] build scripts: formerly depend on tools/migrations
* [monorepo] run eslint on .mjs files
* [migrations] enable more eslint rules and fix all the errors
* [rake] fix migrations:list task
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 14cf69cc1b9405bbc75adbb9a000e555500e0614
* Add capabilities `modify-group` and `modify-managed-group`
* Fix: Warning: validateDOMNesting(...): <span> cannot appear as a child of <option>
* Add `form-control` to select (fix styles)
* Check if admin can modify the group (frontend)
* Check if admin can modify the group (backend)
* Update tests
* Fix: Set `useSettingsUKAMF` state from `data?.useSettingsUKAMF`
* Add tests: Subscriptions update with adminRolesEnabled
* Use `getAdminCapabilities` helper
* Update `requireModifyGroupPermission` to array
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
* Rename `canModify` to `canModifySubscription`
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
* Refactor `requireModifyGroupPermission` stub
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
* Test with `adminRolesEnabled` in SubscriptionDeletionTests.mjs
* Update test description with `adminRoles`
---------
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 37b9a2e838fd566a33aa3a70631cebfd01b520ef
* In tests, post to `/user/emails/secondary` (6-digits) instead of the deprecated `/user/emails` (link-token)
* Update `addEmailAndConfirm` so it calls the right endpoint
* Remove unnecessary `userId` from `confirmEmail` and `addEmailAndConfirm` args
* Use `updateUser` to add unconfirmed email to user
* Confirm, then unconfirm emails, in order to test on unconfirmed emails
* Lowercase emails in `unconfirmSecondaryEmail`, so they get matched correctly
* Update UserEmailsTests.mjs with 6-digits flow, fetch, no `npm:async`
GitOrigin-RevId: 71b9ed65daebea5f22272240559caab375515f0c
* Rename `sendExistingSecondaryEmailConfirmationCode` to `sendExistingEmailConfirmationCode`
* Deduplicate error handling into `throwIfErrorResponse`
* Update `userHelper.confirmEmail` to use the 6-digits flow
GitOrigin-RevId: 91bdf7b185407b58520ca6b2aa1a7c71bdd23bc8
* [web] tests: rename User.upgradeFeatures to User.upgradeSomeFeatures
The upgrades features do not match with any plan.
* [web] make user feature changes in tests more reliable
* [web] fix schema for featuresOverride in tests
* [web] log in after upgrading features
GitOrigin-RevId: ac5b19c798712926c118b221c553540b413802cd
* [web] avoid setting up users more than once in tests
* [web] tests: simplify user exists check in User.setExtraAttributes
GitOrigin-RevId: 4c526df7c933a38ab93d7760efbd0a9490d5582a
* [misc] silence logger when running tests
* [misc] re-enable logging in some tests for scripts
* [misc] make it easy to turn on verbose logging for tests
```
LOG_LEVEL=debug make test_unit
LOG_LEVEL=debug make test_acceptance
```
GitOrigin-RevId: 219bc6d1f9cbdb89ddd7d94742920913ddde4514
* Create tests on find_malformed_filetrees and fix_malformed_filetrees
* Remove lines that are making fix_malformed_filetree fail
These lines are causing errors such as
```
Missing file hash: 586846800000000000000000/5891271c0000000000000000 (rootFolder.0.folders.2.fileRefs.7.hash)
SaaS: likely needs filestore restore
Server Pro: please reach out to support
```
* Add snapshots of projects after fix_malformed_filetree
* Set `WRITE_SNAPSHOT` as false
* Make `deleteProjectsRecordId0` constant
* Ignore duplicated ID errors in CreateMalformedFileTrees.mjs
* Move snapshots to directory folder
* Remove unnecessary code
* Update tests to cover use cases from the scripts
* Fix: Use `new ObjectId(projectId)` instead of the string in mongo queries
* Fix: Query `rootFolder: []` to fix more than `rootFolder: { $size: 0 }`
* Remove/rename files from first draft
* Remove empty strings from expects in unrelated tests, now that `filterOutput` removes them
* Add missing `expectFixStdout` to tests
* misc: rename test util to strId
* Add "well formed filetrees" to test cases
* Use `wellFormed` variable to remove some duplication
* Update tests:
- check Missing file hash path
- remove test on string/numbers as array items
* Add test "bug: shifted arrays in filetree"
* Rename `wellFormedFile` to `wellFormedFolder`
* Fix name of the root folder to `'rootFolder'`, not `'untitled'`
GitOrigin-RevId: dc098bb7ad3ca441fe2bb72b5f5f0e3bcedbdf67
* Support for adding reviewer role
* added collaboratorsGetter tests
* emit toggle-track-changes when reviewer is added
* Add reviewer in change privilege level handler
GitOrigin-RevId: 88ec39f2b760b5d1ca6dc3a363df31c087268972