Stage timeouts:
- frontend waits 5s
- web/clsi waits 4s
- clsi-cache waits 3s
This should ensure that the frontend can receive a valid response after
any of the backend requests failed.
The circuit breaker will remain closed for TIMEOUT + jitter of 0-3 times
the TIMEOUT of the respective service. This should avoid the bulk of
traffic to fail and occasionally issue retries without hammering the
instances while down.
Also do not try the next backend when the abort signal has expired.
GitOrigin-RevId: d612125616a9e416beff2f4c6d7f30066b5b9d6d
* Temporary: forcibly reproduce the loading state and test failure with a `setTimeout`
* Wait for the loading to be finished in the test
* Revert "Temporary: forcibly reproduce the loading state and test failure with a `setTimeout`"
This reverts commit fb0270cc0cacd49fcff74e186b50b55f822f7729.
* Let the test pass if the loading text is not found
* Replace `getByTest` to `findByText` so it awaits
GitOrigin-RevId: 6cee6e3a86b6a5f24d95c7e3e1fcef4c4efcc094
* [web] add clsi-cache prompts
* [web] add new editor variant to segmentation
* [web] add tests for useNewEditorVariant
* [web] adjust start of using clsi-cache in split-test
GitOrigin-RevId: c9c5b1eff2ceefb65ef82516d9074cb971cb4c48
* [clsi] add stats and timings to compile response from clsi-cache
* [clsi] set downloadedFromCache when previously downloaded for synctex
Assumption: every compile will emit an output.log. When the output.log
is missing, but the output.synctex.gz exists, it must have been
downloaded from the cache.
GitOrigin-RevId: 41ea34880931e3c43dda3bc9eb26c0d02054894d
* Replace request by fetch
* Promisify `dropboxDuplicateProjectNames`
* Promisify `dropboxUnlinkedDueToLapsedReconfirmation`
* Promisify `featuresUpgradedByAffiliation`
* Promisify `redundantPersonalSubscription`
* Promisify `projectInvite`
* Promisify `ipMatcherAffiliation`
* Promisify `tpdsFileLimit`
* Promisify `groupInvitation`
* Promisify `personalAndGroupSubscriptions`
* Sanitize URL
* Add default fetch timeout
* Update tests
* Update tests with fetch-utils
* Update external usage
* Import `ObjectId` from `mongodb-legacy`
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* Add `toString()` to userId in `ipMatcherAffiliation` calls
* [v1] Return "200 null" instead of no content in `v2/api/v2/users/:userId/ip_matcher` when there is no data, so it can be read as JSON in the frontend
Can't be 204 because of lint: "Do not specify body content for a response with a non-content status code"
* Temporarily remove `enrolment_ad_html` test to test notifications
* Revert "Temporarily remove `enrolment_ad_html` test to test notifications"
This reverts commit fb8b0c26a3adbbc64053cd3f5f2570ccc97328fb.
* Use `return await`
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 17ee861852aa4ac15d3b46b1b28c763fad5333d2
* Add `delete-project` and `modify-admin` admin capabilities
* Add `isSuperAdmin` check
* Replace frontend checks
* Add requireAdminPermission middleware on disable2FA
* Remove `isSuperAdmin` tag
* Fix tests on admin capabilities
* Replace isSuperAdmin tests by tests in admin-roles
* Replace superadmin tests by admin-capabilities
* Update tests: server-pro admins are superadmins
* Remove "In Server Pro, all Admin users are also Super Admins"
* Update tests after revert "server-pro admins are superadmins"
* Create capability "delete-2fa"
* Add special privileges for admins in Server Pro to preserve the existing behaviour
* Reorder definitions to avoid future eslint error
* Add super_admins admin-role
* Add some sensible capabilityDependencies
* Fix inconsistency: super_admins -> super_admin
* In tests, await controller methods instead of using manual promises
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
---------
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: ca1fff3ead5b2001cb5d5d25de15970d55fb2c1b
* Promisify UserMembershipController
* Remove nested promisification from UserMembershipHandler
* Move export to the bottom of the file
* Remove manual promises
GitOrigin-RevId: a72b9ee4973da7a04b1ffeb588bcae3db696602f
* [monorepo] switch from cypress-reports to reports
* [saas-e2e] collect junit reports from new editor tests
* [saas-e2e] simplify setup for semaphore variable in Jenkins pipeline
We do not retry pipelines anymore.
* [saas-e2e] put new editor tests into their own namespace
GitOrigin-RevId: 1869310bf58f0b5b0081dcae2f16ec1a267caec6