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
Daniel Gak Anagrov
23b61769b7
feat(fileupload): added eventBus and mixpanel monitoring
2025-06-02 08:22:20 +02:00
Iain Sproat
0e10218510
fix
2025-05-20 09:01:43 +01:00
Iain Sproat
3098100ca9
Merge branch 'main' into iain/task-id-to-request-context
2025-05-19 14:30:31 +01:00
Iain Sproat
cb7ff5247d
Merge branch 'main' into iain/task-id-to-request-context
2025-05-19 14:26:26 +01:00
Iain Sproat
43b0190720
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-05-19 13:37:26 +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
Iain Sproat
413937c0fa
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-04-28 08:16:19 +01:00
Iain Sproat
c6e8d1ba77
Merge branch 'main' into iain/task-id-to-request-context
2025-04-26 08:30:20 +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
10832655d4
fix(server): all project created subs firing for workspace guests + req ctx cache fix for subs ( #4453 )
...
* WIP sub fix
* fix sub resolver caching issue
2025-04-16 11:21:17 +03:00
Gergő Jedlicska
a3644a50c5
gergo/web 2931 introduce missing workspace plans ( #4323 )
...
* 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
2025-04-07 15:24:57 +02:00
Kristaps Fabians Geikins
a6a4ceee86
feat: true-myth result structures & other auth policy improvements ( #4262 )
...
* fixing up typing
* better dynamic loader mechanism
* buildReqLoaders cleanup
* added caching to loaders
* ensuring all loaders are async
* fe2 plugins error handling fix
* feat(shared): true-myth result structures & other auth policy improvements
* moving workspaceCore loaders to correct place
2025-03-25 17:49:02 +01:00
Iain Sproat
59100b7d08
Merge branch 'main' into iain/task-id-to-request-context
2025-03-11 09:40:59 +00:00
Iain Sproat
5655b3e758
fix(metrics): pass registry in to modules ( #4113 )
...
- ensure metrics are added to the correct registry
2025-03-06 08:37:05 +00:00
Iain Sproat
93ab74072c
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-03-05 22:07:15 +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
Iain Sproat
ec0253c895
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-03-04 16:36:43 +00:00
Iain Sproat
bce8f8fd5e
Merge branch 'main' into iain/task-id-to-request-context
2025-03-04 16:25:49 +00:00
Iain Sproat
5e4a6c5635
fix(server/prometheus): ensure consistent Prometheus registry is used ( #4106 )
...
* 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
2025-03-04 08:41:53 +00:00
Iain Sproat
193e7d870e
chore(server/logging): email logging should include request or task Id in log context
...
- allows us to better link events to triggering actions
2025-03-01 23:30:57 +00:00
Iain Sproat
fb95dd3bdd
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-02-28 09:23:48 +00:00
Iain Sproat
ce08e5e02d
refactor(server): logging directory renamed to observability ( #4077 )
2025-02-28 08:43:54 +00:00
Iain Sproat
9e6a386925
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-02-26 14:35:09 +00:00
Iain Sproat
9d6e6304d4
fix(server/logging): some subscription errors should be logged at warning level ( #4061 )
2025-02-26 14:18:25 +00:00
Iain Sproat
8d1aceb7fc
incorporate PR review comment - set rate limit enabled once
2025-02-25 11:37:51 +00:00
Iain Sproat
1e3bb19d99
Merge branch 'main' into iain/ratelimiter-should-respect-configuration
2025-02-24 14:33:42 +00:00
Iain Sproat
3ef143375f
refactor(middleware): tidying of inline middleware into function ( #4047 )
2025-02-24 11:03:40 +00:00
Iain Sproat
d2436e3a4d
fix(ratelimiter): do not check rates if rate limiter disabled
2025-02-21 17:45:31 +00:00
Kristaps Fabians Geikins
1d2a594f0a
chore: upgrade TS 5.2 -> 5.7.3 & ESLint to 9.20.1 ( #4032 )
...
* chore: upgrade TS 5.2 -> 5.7.3
* vite dts fix
* lint fix
* resolutions fix
* ui comp build fix
* precommit fix?
* latest eslint version
* autoloader fix
* undo unnecessary viewer change
* eslint fixes fe2 + trying disabled type linting
* lint fixes
2025-02-20 14:18:18 +02:00
Iain Sproat
1c0b6e228d
chore(server/middleware): allow CORS to be configurable ( #4018 )
...
- 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
2025-02-18 13:50:34 +00:00
Iain Sproat
5256d83fab
refactor(server/middleware): compression enabled logic in separate module ( #4006 )
...
- the logic to enable compression is via env helper
- tidies app.ts by moving logic to separate file
2025-02-18 13:32:10 +00:00
Iain Sproat
ec98f8d4cb
chore(fe1): remove deprecated frontend ( #3998 )
...
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2025-02-18 12:36:52 +00:00
Iain Sproat
92976ecee1
refactor(server/metrics): register metrics route in Metrics module ( #4007 )
...
- tidy app.ts by moving route registration to responsible module
2025-02-18 10:01:50 +01:00
Iain Sproat
abe165e264
fix(server): improve logging of errors thrown by Express body parsing middleware ( #3971 )
2025-02-18 08:54:47 +00:00
Iain Sproat
ee54a461a2
fix(server/app): error handling of metrics renamed & relocated in middleware stack ( #4001 )
2025-02-17 14:19:11 +00:00
Iain Sproat
4ee278393b
fix(server/logging): healthcheck logs should be warn ( #3917 )
...
- they are routinely triggered, so should not be error level
2025-01-30 18:22:19 +01:00
Iain Sproat
c59e6043bb
fix(server/errors): derive errors from BaseError ( #3918 )
2025-01-30 18:15:56 +01:00
Iain Sproat
71b82f2cb2
fix(server/rate limiting): Rate limit by IP or token ID ( #3879 )
2025-01-23 16:08:23 +00:00
Kristaps Fabians Geikins
b6ba4c61f7
feat(server): req context for subscription connections too ( #3852 )
...
* feat(server): req context for subscription connections too
* minor adjustment
2025-01-20 20:29:14 +01:00
Kristaps Fabians Geikins
2e8863eb64
fix(server): dataloader batching being broken ( #3838 )
...
* fix(server): dataloader batching being broken
* feat(server): optimized stream collaborator retrieval
* test fix
2025-01-17 12:41:58 +02:00
Kristaps Fabians Geikins
dfed4ae5c1
feat(server): get request ctx from anywhere + log it w/ db operations ( #3823 )
2025-01-15 12:08:51 +02:00
Gergő Jedlicska
b98160f037
feat(server): log subscription started messages with info ( #3795 )
2025-01-10 13:27:24 +01:00
Iain Sproat
8cadddf923
fix(metrics): speckle_server_apollo_calls built with correct register ( #3780 )
2025-01-08 19:54:58 +01:00
Iain Sproat
663ee0b5a9
fix(server): app initialization starts metrics after multiregion ( #3697 )
2024-12-16 10:40:27 +00:00
Iain Sproat
8197bb74a3
feat(multi-region): metrics for knex for all regional databases ( #3580 )
...
* 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
2024-12-12 11:03:25 +01:00
Iain Sproat
27a0600dcd
feat(server): multi-region aware liveness and readiness checks ( #3468 )
...
* 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
2024-12-11 09:29:53 +00:00
Gergő Jedlicska
62863a8523
feat(server): allow using frontend proxy in fe2 mode too ( #3658 )
2024-12-09 13:54:50 +01:00
Iain Sproat
bde5431022
feat(logging): improve error handling around db migrations ( #3599 )
2024-12-02 17:23:47 +00:00
Kristaps Fabians Geikins
1800dbbdbd
feat(server): improved subscription testing DX + tests for common subs + new subs ( #3554 )
...
* 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
2024-11-27 15:41:04 +02:00