* [misc] freeze time before any other unit test setup steps
Freezing it after other work (notably sandboxed-module imports) will
result in flaky tests.
* [web] update the projects lastUpdated timestamp when changing file-tree
GitOrigin-RevId: b82b2ff74dc31886f3c4bd300375117eead6e0cd
* [clsi-cache] initial revision of the clsi-cache service
* [clsi] send output files to clsi-cache and import from clsi-cache
* [web] pass editorId to clsi
* [web] clear clsi-cache when clearing clsi cache
* [web] add split-tests for controlling clsi-cache rollout
* [web] populate clsi-cache when cloning/creating project from template
* [clsi-cache] produce less noise when populating cache hits 404
* [clsi-cache] push docker image to AR
* [clsi-cache] push docker image to AR
* [clsi-cache] allow compileGroup in job payload
* [clsi-cache] set X-Zone header from latest endpoint
* [clsi-cache] use method POST for /enqueue endpoint
* [web] populate clsi-cache in zone b with template data
* [clsi-cache] limit number of editors per project/user folder to 10
* [web] clone: populate the clsi-cache unless the TeXLive release changed
* [clsi-cache] keep user folder when clearing cache as anonymous user
* [clsi] download old output.tar.gz when synctex finds empty compile dir
* [web] fix lint
* [clsi-cache] multi-zonal lookup of single build output
* [clsi-cache] add more validation and limits
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [clsi] do not include clsi-cache tar-ball in output.zip
* [clsi-cache] fix reference after remaining constant
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* [web] consolidate validation of filename into ClsiCacheHandler
* [clsi-cache] extend metrics and event tracking
- break down most of the clsi metrics by label
- compile=initial - new compile dir without previous output files
- compile=recompile - recompile in existing compile dir
- compile=from-cache - compile using previous clsi-cache
- extend segmentation on compile-result-backend event
- isInitialCompile=true - found new compile dir at start of request
- restoredClsiCache=true - restored compile dir from clsi-cache
* [clsi] rename metrics labels for download of clsi-cache
This is in preparation for synctex changes.
* [clsi] use constant for limit of entries in output.tar.gz
Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>
* [clsi-cache] fix cloning of project cache
---------
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>
GitOrigin-RevId: 4901a65497af13be1549af7f38ceee3188fcf881
* [web] generate clsi buildId ahead of fetching project content
The buildIds timestamp component will be used for cache invalidation.
* [clsi] strict validation for buildId
* [clsi] validate buildId parameter
GitOrigin-RevId: 88e8b2d48e78fa137b6dca7f2e6b93bbcf88a777
* [web] double down on validating email addresses
* [web] normalize emails in captcha middleware
* [web] add support for regex based allow-list for skipping captcha
* [web] skip captcha for trusted users on all actions
GitOrigin-RevId: a994ebf6b74e80f462d2dab1fe5113bbffa676a9
[web][will merge 17 march 2025] Add "FedRamp" advertisement variant to the US Gov banner list with a special rule
GitOrigin-RevId: 86f96c6c108f72b44658dca53d2cecabf0fe9d14
* Convert updateSubscription controller to async/await
* Move updateSubscription to subscription module
* Validate if user is eligible to change plan
GitOrigin-RevId: ce538429cd5a3b93acabdc046f1a8b164ac02301
* [web] switch query for hard-deleting users and add index
Co-authored-by: Dr. Sasha Göbbels <sasha.goebbels@overleaf.com>
* [web] fix unit tests
---------
Co-authored-by: Dr. Sasha Göbbels <sasha.goebbels@overleaf.com>
GitOrigin-RevId: a7fd2a590351d2e0d60c0032ca78d457ef815e41
* Rename `checkSecondaryEmailConfirmationCode` to `checkAddSecondaryEmailConfirmationCode`
* Create function `sendCodeAndStoreInSession`
* Create function `sendExistingSecondaryEmailConfirmationCode`
* Create function `_checkConfirmationCode`
* Create function `checkExistingEmailConfirmationCode`
* Rename `resendSecondaryEmailConfirmationCode` to `resendAddSecondaryEmailConfirmationCode`
* Create function `_resendConfirmationCode`
* Create function `resendExistingSecondaryEmailConfirmationCode`
* Add `ResendConfirmationCodeModal`
* Remove `ResendConfirmationEmailButton`
* `bin/run web npm run extract-translations`
* Update frontend test
* Fix: don't throw on render when send-confirmation-code fails!
* Update phrasing in the UI
Per https://docs.google.com/document/d/1PE1vlZWQN--PjmXpyHR9rV2YPd7OIPIsUbnZaHj0cDI/edit?usp=sharing
* Add unit test
* Don't share the "send-confirmation" and "resend-confirmation" rate-limits
* Update frontend test after copy change
* Rename `checkAddSecondaryEmailConfirmationCode` to `checkNewSecondaryEmailConfirmationCode` and `resendAddSecondaryEmailConfirmationCode` to `resendNewSecondaryEmailConfirmationCode`
* Rename `cb` to `beforeConfirmEmail`
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Return `422` on missing session data
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Add `userId` to log
* Replace `isSecondary` param by `welcomeUser`
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Rename `resend-confirm-email-code`'s `existingEmail` to `email`
* Remove "secondary" from rate-limiters
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Remove unnecessary `userId` check behind `AuthenticationController.requireLogin()`
* Only open the modal if the code was sent successfully
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: df892064641d9f722785699777383b2d863124e1
* removing the group size 50
* removing the if condition for 20/50 groups
* running make cleanup_unused_locales
* removing instances of sizesForHighDenominationCurrencies and the related if conditions
* removing the price related to group size of 50 in different currencies
* fixing the test
* changing the 50 to 20 under faqs
* changing the remaining 50 to 20
* cleaning of variables
* removing extra variable
GitOrigin-RevId: 68f5d7df1eab29360e9c806ad844f1c900341c19
* [web] wait for sending project invite notification, send email detached
Errors from sending the notification or email are still logged only.
Wait up-to ~one second for notification to be sent (API timeout is 1s).
* [server-pro] tests: wait for invite action to complete
GitOrigin-RevId: e6998e6134b5267c91b47785d616a46e9651b996