* fix(gatekeeper): missing priceId-s should stop the server from booting
* feat(shared): add all new workspace plans
* feat(billing): add new world plans
* feat(ci): use stripe sandbox id-s from test env vars
* chore(ci): remove defunct stripe context
* chore(server-env): fix server env example
* feat(gatekeeper): add missing plans to graphql schema
* test(gatekeeper): update plan upgrade tests to match implementation
* fix(ci): update ci .env source
* fix(ci): we do need some secrets from stripe
* fix(ci): run gql schema introspect with the test env
* fix(frontend): format new plan names
* chore(ci): temp disable gql schema checks
* feat(helm): add unlimited seat prices env vars
* feat(helm): add unlimited seat prices to values
* feat(gatekeeper): do not load priceId-s as a side effect, load with module init
* fix(server/prometheus): ensure consistent Prometheus registry is used
- there was a conflicting dependency between Metrics initialization and Modules initialization; resolved by separating registry initialization from metrics initialization
- pass in the registry to prevent implicit dependency being broken
- when registering a metric, first attempt to remove any of existing metrics with same name to prevent errors
- to prevent sneaky uses of the implicit registry, replace default import with explicit import so it is clearer when prometheusClient.registry is used
* Add tests for registering metrics
- renames corsMiddleware to corsMiddlewareFactory to follow naming convention
- optionally allow cors middleware to be configured
- amend direct calls of `cors` package to now use middleware factory
* feat(multi-region): metrics for knex for all regional databases
* improve typing in knex monitoring
* error logging around migrations
* await async calls for db connections
- add 'region' label
* add missing 'await' statements
* more missing 'await'
* guard against re-adding listeners
* It was possible for update to be called before initialize
- this change collapses both into initialize, and adds checks to ensure initialization is done before being updated for new regions
* separate back into non-exported const and rename
* align with main
* Amend order at which metrics is enabled
* chore(healthchecks): refactor out of modules
* feat(server): multi-region aware liveness and readiness checks
* Add tests for redis & postgres healthchecks
* do not close Redis client after checking it is healthy, we now use a shared client
* userProjectsUpdated.added test
* multi region support
* userStreamAdded
* commit subs tested
* fix for proj workspace assignment
* undo commitHelper main changes
* disable all ffs mode
* createTestWorkspace support when workspaces arent enabled
* project create fix
* workspace projects updated subscription
* WIP new workspace sub
* updated workspaceCreated
* updated workspaceUpdated
* BE for workspace updated sub
* workspace updated sub
* ts err fix
* fix(workspaces): allow workspace delete for paid workspaces
* feat(gendo): multi region gendo with new api integration and limits
* feat(gendo): user credits
* feat: adds limits to gendo panel, and terms and conditions link
* fix: reworks setting back camera view
* feat(gendo): webhook signature verification
* fix(gendo): nullability
* test(blobstorage): fix test dependency injection
---------
Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>