Daniel Gak Anagrov
2c122a138d
feat(workspaces): apply prepared transactions to workspaces ( #5383 )
...
* feat(multiregion): replace user replication
* chore(multiregion): optimise replication
* maybe it's this
* postgres is fun
* once more
* chore(multiregion): only replicate test user creation during multiregion tests
* feat: improved replicate_query logic
* fix: minor
* fix: starting issue
* feat: included user create and delete specs to multiregion
* feat: removed console logs
* fix: user defaults
* fix: multiregion test helper
* fix: update scenarios for users
* refactor(multiregion): swap replicateQuery concept to asMultiregionOperation (#5301 )
feat(multiregion): introduced asMultregionOperator, refactor test to user builder classes
* chore: renamings
* fix: remove comments
* feat: remove user replication
* refactor: simplified spec usages
* chore: comments
* chore: branches and favs
* chore: more tests
* chore: more tests
* fix linting
* fix tests
* feat: dropping replication
* refactor: moved project delete to service
* fix: comment
* feat: updateStreamFactory and updateProjectFacotry
* deleteProjectFactory + replicateFactory
* deleteWorkspaceFactory
* fix: selector
* fix: tests
* fix tests, finished createStreamFactory
* feat: simplify changes
* fix: remove comment
* fix: minor strucutres
* fix: moveProjectToRegion
* fix: moved branch creation outside of multiregion scope
* fix: branch creation
* fix: tests
* fix: ci tests
* fix: removed log form test
* fix: on specs, no random regionKeys
* review fixes
* feat: workspace replciation
* fix: mr comments
* feat: removed test
* fix: worksapce test creation
* fix: mr issues
* updated mutations
* feat: drop workspace random defaults
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-09-11 10:08:26 +02:00
Daniel Gak Anagrov
1f5003bd32
feat(multiregion): cron job to detect regions out of sync ( #5392 )
...
* feat: basic structure
* fix: detect regions out of sync
* feat: added sync logic
* fix: tests
* feat: merge all strategy
* fix: mr comments
* fix: updatedAt in updates
* feat: project updatedAt no longer is a hidden operation
* feat: project region sync
* feat: delete project on cross-region-move
* removal: unnecesary permisions
* fix: caching issue
* fix: saved views on project cross region move
2025-09-10 16:35:48 +01:00
Daniel Gak Anagrov
87082062c9
feat(multiregion): avoiding prepared transaction with only one database ( #5336 )
...
* feat: avoiding prepared transaction with only one database
* scope 2pc monitor specs to multiregion only
2025-09-04 14:42:55 +01:00
Daniel Gak Anagrov
399c998fd7
feat(multiregion): apply prepared transactions to projects ( #5322 )
...
* feat(multiregion): replace user replication
* chore(multiregion): optimise replication
* maybe it's this
* postgres is fun
* once more
* chore(multiregion): only replicate test user creation during multiregion tests
* feat: improved replicate_query logic
* fix: minor
* fix: starting issue
* feat: included user create and delete specs to multiregion
* feat: removed console logs
* fix: user defaults
* fix: multiregion test helper
* fix: update scenarios for users
* refactor(multiregion): swap replicateQuery concept to asMultiregionOperation (#5301 )
feat(multiregion): introduced asMultregionOperator, refactor test to user builder classes
* chore: renamings
* fix: remove comments
* feat: remove user replication
* refactor: simplified spec usages
* chore: comments
* chore: branches and favs
* chore: more tests
* chore: more tests
* fix linting
* fix tests
* feat: dropping replication
* refactor: moved project delete to service
* fix: comment
* feat: updateStreamFactory and updateProjectFacotry
* deleteProjectFactory + replicateFactory
* deleteWorkspaceFactory
* fix: selector
* fix: tests
* fix tests, finished createStreamFactory
* feat: simplify changes
* fix: remove comment
* fix: minor strucutres
* fix: moveProjectToRegion
* fix: moved branch creation outside of multiregion scope
* fix: branch creation
* fix: tests
* fix: ci tests
* fix: removed log form test
* fix: on specs, no random regionKeys
* review fixes
* fix: mr comments
* feat: removed test
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-09-04 13:07:19 +02:00
Chuck Driesler
8a9b4829d9
feat(multiregion): replace user replication ( #5253 )
2025-08-28 10:02:53 +02:00
Kristaps Fabians Geikins
9d9a456b28
chore(fe2): upgrade to nuxt 4 ( #5306 )
...
* actual npm update
* migrating plugin
* fix hydration (todo redis)
* fix dashboard title
* linting fixes
* fix ssr dev logs
* fix shared build
* more linting fixes
* more lint fixes
* preview dockerfile fix
* fix max stack trace issue
2025-08-27 10:26:32 +03:00
Daniel Gak Anagrov
8fbe1322e1
chore(multiregion): drop db defaults for project ( #5305 )
...
* feat: added migration
* chore: move defaults and other functions outside of repository fn
2025-08-26 16:40:22 +02:00
Daniel Gak Anagrov
ba8a62dd2a
feat: added schedule for deleting stale prepared transactions ( #5169 )
2025-08-12 15:23:27 +01:00
Chuck Driesler
9754450124
fix(regions): return in project region move handler ( #5190 )
...
* fix(regions): return in proejct region move handler
* fix(regions): rollback in correct database
2025-08-06 19:38:35 +01:00
Kristaps Fabians Geikins
8d72ae9cab
fix(server): extra fixes for running TS directly ( #5135 )
2025-07-23 12:44:19 +03:00
Kristaps Fabians Geikins
4b06f42db7
chore(server): run TS files directly (no compilation) ( #5134 )
...
* sort of works
* type fixes
* added option to run old way too
2025-07-23 11:20:40 +02:00
Kristaps Fabians Geikins
b29331705e
chore(server): get rid of duplicate gql TS types ( #5065 )
2025-07-14 11:31:12 +03:00
Kristaps Fabians Geikins
bde148f286
chore(server): migrating fully to ESM ( #5042 )
...
* wip
* some extra fixes
* stuff kinda works?
* need to figure out mocks
* need to figure out mocks
* fix db listener
* gqlgen fix
* minor gqlgen watch adjustment
* lint fixes
* delete old codegen file
* converting migrations to ESM
* getModuleDIrectory
* vitest sort of works
* added back ts-vitest
* resolve gql double load
* fixing test timeout configs
* TSC lint fix
* fix automate tests
* moar debugging
* debugging
* more debugging
* codegen update
* server works
* yargs migrated
* chore(server): getting rid of global mocks for Server ESM (#5046 )
* got rid of email mock
* got rid of comment mocks
* got rid of multi region mocks
* got rid of stripe mock
* admin override mock updated
* removed final mock
* fixing import.meta.resolve calls
* another import.meta.resolve fix
* added requested test
* nyc ESM fix
* removed unneeded deps + linting
* yarn lock forgot to commit
* tryna fix flakyness
* email capture util fix
* sendEmail fix
* fix TSX check
* sender transporter fix + CR comments
* merge main fix
* test fixx
* circleci fix
* gqlgen bigint fix
* error formatter fix
* more error formatting improvements
* esmloader added to Dockerfile
* more dockerfile fixes
* bg jobs fix
2025-07-14 10:26:19 +03:00
Iain Sproat
556c2791b3
feat(file imports): large file uploads now work on docker compose ( #5037 )
2025-07-07 11:00:55 +01:00
Kristaps Fabians Geikins
c57262aa44
chore: log listen/notify connection strings ( #5006 )
...
* chore: log listen/notify connection strings
* re-adding multiRegionConfig alias
* CR comments
* type fix
2025-06-30 11:59:28 +03:00
Chuck Driesler
08410ffb7d
fix(regions): fix for flaky move region test ( #4989 )
2025-06-26 11:14:50 +02:00
Chuck Driesler
2f36e518a0
fix(multiregion): make move region job safe for replication ( #4907 )
...
* chore(multiregion): failing test for move project region
* fix(multiregion): unblock replication after regional move
* fix(regions): try-catch replication
* fix(regions): cache roles within job
* fix(regions): toggle region key in target db
2025-06-25 15:47:34 +01:00
Kristaps Fabians Geikins
9998ed2586
feat: personal project limits ( #4759 )
...
* base limits cleanup
* history limit tests
* canCreatePersonal & tests
* canInvite block
* WIP model check
* fix tests
* shared tests fix
* lodash import fix
* lint fix
* help update
* hopefully fixing test
* CR comment
2025-05-20 14:56:05 +03:00
Iain Sproat
eabfab2555
chore(feature flags): defaults all to false, and additional commentary on expected permanence, dependencies, & licensing ( #4124 )
2025-05-20 11:45:25 +01:00
Kristaps Fabians Geikins
b406d0e32d
chore(server): node16 & export maps support for server ( #4698 )
...
* chore(server): node16 & export maps support for server
* moar cleanup
* lint fixc
2025-05-12 14:27:34 +03:00
Gergő Jedlicska
2fdcf1bd1d
refactor(shared): unified queue handling ( #4691 )
...
* feat(shared): unified queue initialization in shared
* feat(queues): use the new queue creation everywhere
* chore(shared): move to redis module
* chore(shared): fix export maps
* chore(fileimport): add deps properly
* fix(shared): import fix
* fix(everything): moear imports
* fix(server): cjs imports
2025-05-08 16:58:43 +02:00
Chuck Driesler
a26a5a90a1
chore(multiregion): job success logs ( #4687 )
2025-05-08 14:51:35 +01:00
Chuck Driesler
6d9f3645c4
fix(multiregion): zero !== undefined ( #4683 )
2025-05-07 16:47:49 +01:00
Chuck Driesler
318420aa95
fix(multiregion): repair counting for project region moves ( #4682 )
2025-05-07 15:00:03 +01:00
Chuck Driesler
1cdc27fb65
chore(multiregion): a bit more logging ( #4659 )
2025-05-06 08:56:48 +01:00
Iain Sproat
920099c39f
chore(readable code): use TIME_MS for readable durations
...
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00
Kristaps Fabians Geikins
0cc19dbdf5
fix(fe2): not being able to remove member from workspace ( #4468 )
...
* fix(fe2): not being able to remove member from workspace
* minor comment
* withTransaction refactor
2025-04-17 10:44:55 +03:00
Iain Sproat
a1673c7294
Merge pull request #4421 from specklesystems/iain/web-2732-observability-for-improved-reliability-multiregion
...
chore(server/logging): add operations logging to multiregion module
2025-04-16 14:53:29 +01:00
Kristaps Fabians Geikins
82a37fba5c
fix(shared): fix sso session expiration date too low in tests ( #4432 )
...
* fix(shared): canBroadcast policy test fix
* more tests fixed
* switch to using time constant
* tests fix
2025-04-15 16:24:12 +03:00
Iain Sproat
decd933fce
chore(server/logging): add operations logging to multiregion module
2025-04-15 07:52:52 +01:00
Chuck Driesler
7be2e39913
chore(tests): dramatically reduce scope/time of multi-region tests ( #4282 )
...
* chore(tests): limit multiregion ci to multiregion tests
* fix(multiregion): unsure if this works
* fix(multiregion): ope we got deleted
2025-03-28 00:28:38 +00:00
Kristaps Fabians Geikins
f76a2c34d3
chore: add no floating promises lint rule ( #4249 )
...
* chore: add no floating promises lint rule
* minor cleanup
* fix test by only running if node 22 or greater
---------
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
2025-03-25 13:36:49 +02:00
Chuck Driesler
9f83d1f74e
feat(regions): trigger project move with job ( #4010 )
2025-03-07 09:18:12 +00:00
Kristaps Fabians Geikins
954b1a9f11
feat: plan prices accurately read from Stripe ( #4104 )
...
* WIP prices + new caching utils
* cached workspace plan prices
* GQL API done
* integrated in frontend
* fixed missing FF
* CR fixes
* integration tests
* removed non-existant team yearly env var
2025-03-05 12:23:38 +02:00
Chuck Driesler
0cafe77013
feat(regions): change project region once move is complete ( #3995 )
...
* chore(regions): failing test for moving blobs
* fix(blobs): use blob storage table
* chore(regions): include file_uploads table for thoroughness
* fix(regions): extract repeated string to utils
* chore(regions): move validation as own service
* feat(regions): update project region key after move
* chore(regions): update tests to make gql requests
2025-02-28 09:35:44 +00:00
Iain Sproat
ce08e5e02d
refactor(server): logging directory renamed to observability ( #4077 )
2025-02-28 08:43:54 +00:00
Iain Sproat
26114eae3e
fix(logging): sanitize log message to avoid printing db connection string ( #3652 )
2025-02-18 14:09:55 +00:00
Chuck Driesler
c382064585
feat(regions): move project branches and commits ( #3843 )
...
* feat(regions): repo functions for copying project branches and commits
* chore(regions): wire up move to resolver
* chore(regions): successful basic test of project region change
* fix(regions): sabrina carpenter please please please
* fix(regions): repair multiregion test setup
* chore(regions): appease ts
* chore(multiregion): update test multiregion config
* chore(multiregion): fix test docker config and test
* chore(multiregion): use transaction
* chore(multiregion): maybe this will work
* fix(multiregion): drop subs synchronously
* chore(multiregion): desperate test logs
* chore(multiregion): somehow that worked?
* chore(multiregion): add load-bearing log statement
* chore(multiregion): move services
* fix(multiregion): test drop waits
* chore(regions): fix import
* chore(regions): make test a bit more thorough for good measure
* fix(regions): speed up inserts
* fix(regions): ignore workspace conflict on move
2025-02-13 14:39:23 +00:00
Iain Sproat
c59e6043bb
fix(server/errors): derive errors from BaseError ( #3918 )
2025-01-30 18:15:56 +01:00
Gergő Jedlicska
04c577529b
fix(multiRegion): do not look for a multi region config, if there should be none ( #3825 )
2025-01-15 11:26:36 +01:00
Gergő Jedlicska
db8de114d3
feat(server): new projects are placed in a configurable region ( #3801 )
...
* feat(server): log subscription started messages with info
* feat(server): create projects in a default region
* feat(server): allow project default region config
* feat(server): load project region from multi region config
2025-01-13 18:38:44 +01:00
Iain Sproat
571338c604
feat(feature flags): consolidate multi region & multi region blob storage ( #3709 )
2024-12-18 15:28:19 +00:00
Iain Sproat
6d3ba0de22
chore(server): errors for database append additional context ( #3698 )
...
* chore(server): errors for database append additional context
* Refactor
2024-12-16 10:13:20 +00:00
Iain Sproat
0a2bebd075
fix(server): check for multi-region when retrieving all registered db clients ( #3675 )
2024-12-11 14:20:24 +01:00
Kristaps Fabians Geikins
8d0cbad8b6
feat(server): multi region blob support ( #3653 )
...
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
2024-12-10 09:05:18 +00:00
Kristaps Fabians Geikins
4b6e7af19d
feat(fe2): scope comment mentions to parent project collaborators ( #3635 )
...
* backend done
* get rid of email mention
* project scoped mentions work
* lint fix
* better user sanitization safety
* tests fix
2024-12-05 13:33:05 +02:00
Gergő Jedlicska
5b5aa7a877
feat(multiRegion): do not recreate the pub subs in production ( #3624 )
2024-12-04 07:39:09 +01:00
Iain Sproat
384640de1d
fix(error): improve error message when subscriptions & publications fail ( #3613 )
2024-12-03 21:26:43 +00:00
Iain Sproat
bde5431022
feat(logging): improve error handling around db migrations ( #3599 )
2024-12-02 17:23:47 +00:00
Iain Sproat
0024b2f8f7
fix(server/multi-region/sql): use parameter binding to prevent secret leak ( #3581 )
...
- SQL statements are logged, but parameters are not
- this parameterises the subscription creation SQL statements to prevent secret leak
2024-11-29 12:08:11 +00:00