* [clsi] initial implementation of compile from history
* [clsi] copy changes
* [saas-e2e] extend test case with nested folder
* [saas-e2e] add test case for tracked changes
* [web] fix accumulating changes from multiple chunks
* [web] optimize size check for compile request payload
* [clsi] deduplicate globalBlobs
* [clsi] add validation for request body details
* [clsi] add metrics for compile from history
* [clsi] download binary files concurrently
* [clsi] skip download of empty file blob
* [clsi] break down e2e compile time metric by compileFromHistory
GitOrigin-RevId: 0dadef93e89d8a172c35cb130a1042d9d1bec42a
* handle billingInfo / account discrepancies
* fix rate limiting behaviour of fetchRecurlyActiveSubscription
* make force-invalid-tax aware of stripe tax validation errors
* clear taxInfoPending if vatNumber is now valid or not present on second runs
* re-instate pre-validation of tax ids in dry-run mode
* handle tax exemption
* fix tax pre-validation tests
* fix comment typos
* remove redundant hadConflict
* re-use normalizeName function
* throw if more than 1 active recurly subscription when resolving conflict
---------
Co-authored-by: Simon Gardner <simon.gardner@overleaf.com>
GitOrigin-RevId: a88cad87887bd9e043fb457091e999c1d555f546
* [web] extract card comparison function
* [web] throw if more than 1 duplicate customer account
* [web] attempt to pick the pre-existing account
* [web] overwrite email of duplicate account
* Update services/web/scripts/helpers/migrate_recurly_customers_to_stripe.helpers.mjs
* [web] handle setting being undefined
* [web] allow other account to be reused if migrating account is using paypal
* [web] allow matching for customers with no payment method
GitOrigin-RevId: 7d8eeb4734a20c09ce3e0d73095e28696e212549
* support Paypal for migration
* remove sensitive payment info in logging
* add `resolveStripeCustomer`
GitOrigin-RevId: a8fc7de4a4bf3971c5221a0dec3fc279d8d2f67d
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion
feat: keep aiErrorAssistant as setting on user object until migration is run
* feat: migrate writefull.enabled unset to instead use promotionSet false
* feat: remove wf.enabled in favor for aiFeatures.enabled for display, and writefull.promotionSet for determining if we should autoload or autocreate
GitOrigin-RevId: 2b7a5b8a430a804f6c9804cc926cb5c057e34df5
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion
feat: keep aiErrorAssistant as setting on user object until migration is run
* feat: migrate writefull.enabled unset to instead use promotionSet false
* Update tools/migrations/20260213102825_swap_writefull_enabled_for_initialized.mjs
Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>
* feat: addind backfill of ai features as a migration as well to help with dev environment setup
---------
Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>
GitOrigin-RevId: fd3f0fc07c91678cd7fd1e0d5237221694b3027b
* make warnings more eye catching in clean up dry run
* only increment processedCount after processing
* always rm recurlyAccountCode
* check if existing Stripe customer already has a subscription
* ensure no other customer accounts share the user id
* set recurly_to_stripe_migration_status to cancelled in cancel script
* add script for updating metadata of canceled migrations
GitOrigin-RevId: 3331de480e99774679ff2649b90d41e981a8fdef
* Extract currency conversion and rate limiting functions to helpers
* Add script to create prices from CSV for Stripe integration
* Add tests for create prices from CSV script
* Add usage documentation for create_prices_from_csv script
* Add `planCode` metadata
* Temp: Plans CSV example
* Revert "Temp: Plans CSV example"
This reverts commit 810b1ed67052f7a1a0deb20b70f14507a282fcf1.
* Various improvements to price and product creation script
---------
Co-authored-by: Tim Down <158919+timdown@users.noreply.github.com>
GitOrigin-RevId: c015c6dd904db3143781581db4210cef282a4070
* handle group quantities & add-ons when detecting changes
* include analyticsId in output
* flag users in customer-io
* rely on customer metadata for tax info needing updating
* rollback customer.io data in rollback script
* refactor how we handle errors when migrating to avoid losing data for output
GitOrigin-RevId: f77430b0b366217ac85b72dde92e9364dc879023
* Merge all .prettierignore files into top-level config
* Merge all .prettierrc files into top-level config
* Replace service-specific glob patterns in package.json format scripts with `prettier .`
* Add template files with Jinja2, Go template, envsubst, and Handlebars syntax to .prettierignore
* Ignore GitHub templates
* Ignore PUG templates to format them separately with `format:pug`
* Encourage double quotes for YAML, YML files
* Move prettier for PUG source format script to the root
* Move prettier for styles source format script to the root
* Remove prettier for jenkins files from web
* Remove prettier source format script from all services
* Make .prettierrc more readable
* Update format scripts by file type
* Organise `.prettierignore`
* Add `--cache` flag to prettier scripts for faster runs
* Format all files with prettier
* Format all or format services
* Remove `format`/`format:fix` scripts from services since now it runs from root `package.json`
* Avoid conlficts with yamllint configuration
* Remove `--cache` flag from prettier scripts
* Update all service Makefiles to use root-level prettier configuration
* Update all Jenkinsfile to use root-level prettier configuration
* Ignore auto-generated files by build_scripts
* Update package-lock.json
* Update root Makefile format targets
* Update SP Jenkinsfile format target
* Update E2E Makefile format script
* Udpate `format_js` to work in both local and CI env
* Add docker-mailtrap to .prettierignore
docker-mailtrap is a third-party git-ignored directory used for testing
* Added Docker env detection to prevent nested Docker spawning
* Ignore handlebars templates
* Add cryptographic files and test output to `.prettierignore`
* Add terraform modules to `.gitignore`
* Remove prettier-plugin-groovy
* Use npx directly instead of Docker for local formatting for faster formatting
* Auto-generate Makefiles
* Revert "Remove prettier-plugin-groovy"
This reverts commit 194a33589a2e1e4d2225d10c67e9f025e4222025.
* Mount monorepo root in RUN_LINT_FORMAT for prettier config access
* Prettier ignores all `node_modules` by default regardless of location
* Show only changed files in format output
* Ignore LICENSE files
* Enable prettier on rendered build_scripts outputs
* Ignoring all the template folders by prettier
* Remove the public/minjs entry since it does not exist
* Remove all non-existent paths
* Sync `.prettierignore` with ignored files by `.gitignore` and `.dockerignore` files
* Revert "Auto-generate Makefiles"
This reverts commit c0233e490de1bc95fe437219d65e0b66e0331ec9.
* Revert "Use npx directly instead of Docker for local formatting for faster formatting"
This reverts commit 1d2b2cf1a6c6974c76885852a90dd55e84167e41.
* Ignore dashboard JSON files
* Ignore files generated by bin/update_build_scripts
* Remove unsupported file types from `.prettierignore`
* Ignore test fixture generated files
* Ignore README file types by prettier
* Ignore generate snapshots by prettier
* Allow to format generated bin/update_build_scripts by prettier
* Ensure build script outputs prettier-compatible tsconfig.json
* Fix build script output to match prettier formatting
- Fix Jinja2 whitespace in docker-compose templates
- Change YAML quotes from single to double
* Don't read cryptographic files by prettier
* Ignore google verification files by prettier
* Revert npx prettier formatting
* Ignore domain verification files
* Show only changed files in format output
* Make `.github` prettier
* Allow all files to be formatted in jobs by prettier
* Allow server-ce/server-pro files to be formatted by prettier
* Ignore more folders in clsi, filestory, git-bridge by prettier
* Update build script with `RUN_LINTING_CI_MONOREPO`
* Ignore docker-mailtrap and downloads in server-ce by prettier
* Restore prettier configs and prettierignore for V1 since it has its own prettier (an older version)
* Source format
GitOrigin-RevId: 637adc3cc422d1f20c86d6ebc8ec514d60758287
* [web] deactivate_projects: spread archiving jobs over the cron interval
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] deactivate_projects: stop processing after graceful shutdown
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] deactivate_projects: exit w/ code 1 when aborting due to max-time
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] deactivate_projects: adjust bail out for timeout
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] deactivate_projects: handle small number of projects better
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* add comment about use of --maxTime option
---------
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: c62c66725233d391fd2c8d86ce95275cea88f36c
* fix source on analytics mapping in finalization script
* add script to redo mappings for finalized subscriptions
GitOrigin-RevId: a62af6c6c7ae11f9bea62ed643c8dfa7595ba99b
* check and log unexpected end states before terminating Recurly subscriptions
* update finalize and rollback scripts to only postpone active subscriptions
GitOrigin-RevId: 7fe6ffa56cb8ddf19133eb0cb59e39fd783430b7
* remap customer.metadata.recurlyAccountCode to customer.metadata.userId
* verify recurlyAccountCode is what we expect it to be before setting
GitOrigin-RevId: 8ab1d5e311dba34bb8c15d01096f6c31273a7506
* [e2e] enable --notablescan for Server Pro and SaaS E2E tests
* [server-ce] remove --notablescan override when downgrading
GitOrigin-RevId: 41eb6060e066b8a531d9e815802f1b4464bf5102
* [e2e] enable --notablescan for Server Pro and SaaS E2E tests
* [web] fix query for expiring projects of E2E test users
* [web] check for --notablescan in e2e test setup
GitOrigin-RevId: f08812899647bc8e4bc0c0d14d3250eb0b9f5c59
The update_institution_user_saml_ids.mjs script updates `samlIdentifiers.externalUserId`
for users with a specific `samlIdentifiers.providerId`, performing a string replacement.
GitOrigin-RevId: 9d9897b17a528ea2ef3abf60d3b5e6679bf11943