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
Kristaps Fabians Geikins
6d8b1007f0
fix: workspace projects infinite loading bug ( #4252 )
...
* fix(server): user streams query pagination
* fix(fe2): fe infinitely asking for broken pagination
2025-03-24 15:46:59 +02:00
Gergő Jedlicska
968d2f2520
auth/lib ( #4242 )
...
* wip
* wip
* feat(authz): wip policy shape
* wip
* fix(authz): canReadProject with latest pattern
* wip
* feat(shared): simplify authz checks and policies
* feat(shared): port role weights into shared
* test(shared): some more tests for authz
* test(shared): more query project tests
* typo!
* feat(shared): ff loading refinements
* feat(shared): example authorization policy integration
* authz loaders init
* chore(authz): naming etc
* wip
* fix(authz): authz error objects
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com >
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com >
* fix(authz): use correct role weights
* chore(authz): use codes from errors in tests
* chore(authz): wow
* chore(authz): fix more tests, add more tests
* chore(authz): fix some tests, add some tests (again)
* fix(authz): fix tests again
* fix(server): you need to await !!!! otherwise it crashes the server.
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com >
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com >
2025-03-21 16:37:36 +01:00
Chuck Driesler
66da283a79
Revert "feat(authz): shared authz pipeline ( #4151 )" ( #4241 )
...
This reverts commit cb8aa31b66 .
2025-03-21 15:41:17 +01:00
Chuck Driesler
cb8aa31b66
feat(authz): shared authz pipeline ( #4151 )
...
* wip
* wip
* feat(authz): wip policy shape
* wip
* fix(authz): canReadProject with latest pattern
* wip
* feat(shared): simplify authz checks and policies
* feat(shared): port role weights into shared
* test(shared): some more tests for authz
* test(shared): more query project tests
* typo!
* feat(shared): ff loading refinements
* feat(shared): example authorization policy integration
* authz loaders init
* chore(authz): naming etc
* wip
* fix(authz): authz error objects
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com >
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com >
* fix(authz): use correct role weights
* chore(authz): use codes from errors in tests
* chore(authz): wow
* chore(authz): fix more tests, add more tests
* chore(authz): fix some tests, add some tests (again)
* fix(authz): fix tests again
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com >
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com >
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com >
2025-03-21 14:45:36 +01:00
Iain Sproat
2dc32094d0
feat(helm chart): can be configured to deploy preview service in cluster
2025-03-15 11:31:40 +00:00
Iain Sproat
6e170d0c4f
fix(docker compose): preview service can be used with docker compose
2025-03-15 10:43:40 +00:00
Kristaps Fabians Geikins
b3bcf67dad
fix(server): workspace seats & roles query invalid null handling ( #4199 )
2025-03-14 18:00:12 +02:00
Kristaps Fabians Geikins
d903e8ffc4
feat(server): support editor -> viewer seat downgrades ( #4181 )
...
* new seat based project role checks implemented
* everything done
* minor bugfix
2025-03-14 14:21:25 +02:00
Kristaps Fabians Geikins
28b49107b7
feat(server): upgrade workspace seat type ( #4158 )
...
* feat(server): upgrade workspace seat type
* test/lint fixes
2025-03-11 12:41:18 +02:00
Iain Sproat
cfef333a0c
feat(preview service): introduce /metrics endpoint for Prometheus ( #4127 )
2025-03-10 10:48:29 +00:00
Gergő Jedlicska
61609de97e
gergo/previews ( #3765 )
...
* feat(preview-generator): add new preview generator webapp
* wip(preview-service): reworking the preview service backend
* feat(previews): logging
* feat(preview-service): streamline payloads
* fix(preview-service): do not log the full payload
* feat(preview-service): build new preview service
* feat(preview-service): add separate response queue
* feat(previews): integrate preview queues with the server
* feat(previews): use module alias
* chore(previews): remove old preview service code
* feat(previews): log stuff on job statuses
* fix(previews): add missing deps and scripts
* fix(previews): package deps fix
* fix(server): moar typing fixes
* Metrics related to jobs: total count, request failures, response errors & durations
* duration should include unit.
- histogram metric should be summary
- error responses include duration in seconds
- attempt to remove metric before adding it (prevent errors with duplicate metrics)
* fix(server, frontend): some ts fixes
* fixes
* fix(frontend): remove unneeded ts-expect-error
* chore(preview-service): eslint
* TS fix
* feat(previews): more smoal fixes
* fix(preview-service): alias loading
* feat(helm): updates for new preview service queue setup
* feat(preview-service): launch new browser for each job
* feat(preview-service): add timeout, fix liveliness
* fix(helm): add access to new secret in service accounts
* tidy metrics into a separate file
* Remove broken preview service acceptance test
* fix broken import
* Add metrics to test
* feat(preview-service): handle preview service shutdown properly
* fix(previews): merge bork
---------
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2025-03-06 14:26:56 +01: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
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
Alessandro Magionami
fd68c6ef2a
feat(workspaces): user workspace join requests ( #4023 )
...
* feat(workspaces): user workspace join requests
* chore(workspaces): return limited workspace
* chore(workspaces): fix tests
* chore(workspaces): add index for userId
* chore(shared): fix totalcount on getpaginateditems
* chore(workspaces): add workspace core resolvers to throw specific error
2025-02-25 12:19:21 +01:00
Kristaps Fabians Geikins
eb050bb649
feat(server): new plans + disabled checkout/upgrade/sidegrade ( #4057 )
...
* feat(server): new plans + disabled checkout/upgrade/sidegrade
* pushed in CR fixes
2025-02-25 09:46:46 +01:00
Iain Sproat
3ef143375f
refactor(middleware): tidying of inline middleware into function ( #4047 )
2025-02-24 11:03:40 +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
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
abe165e264
fix(server): improve logging of errors thrown by Express body parsing middleware ( #3971 )
2025-02-18 08:54:47 +00:00
Alessandro Magionami
bc70332d97
fix(workspaces): block god mode on mutations ( #3999 )
2025-02-17 14:41:23 +01:00
Kristaps Fabians Geikins
6c5da56650
Merge branch 'main' into fabians/web-2415-5
2025-02-17 14:56:51 +02:00
Kristaps Fabians Geikins
4dcfbb251b
chore(server): moving out branch sub reporting to separate listeners
2025-02-17 13:56:02 +02:00
Gergő Jedlicska
bf80347abf
gergo/web 2664 workspace backend powered metrics ( #3985 )
...
* feat(workspaces): delete workspace emit event
* feat(workspaces): move workspace group metrics to the backend
* Removed FE mixpanel group update
* Remove fragment
* test(gatekeeper): add unittest to new gatekeeper service
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2025-02-17 09:50:16 +01: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
2454af7237
chore(logging): log messages related to a request should include request ID - PART 2 ( #3946 )
...
* chore(logging): mixpanel should use logger with request context
* log with request when onUserCreated event is triggered
2025-02-06 17:51:10 +00:00
Iain Sproat
0ce23be6f3
chore(logging): log messages related to a request should include request ID ( #3945 )
...
- this requires passing the request logger through to the method invoking the logger
2025-02-06 16:04:51 +00:00
Iain Sproat
c59e6043bb
fix(server/errors): derive errors from BaseError ( #3918 )
2025-01-30 18:15:56 +01:00
Kristaps Fabians Geikins
b6871a61cc
chore(server): refactor activityStream invocations - batch #5 - comments
2025-01-24 17:54:16 +02:00
Kristaps Fabians Geikins
d9bdc54599
chore(server): moving out branch sub reporting to separate listeners
2025-01-24 16:49:55 +02:00
Kristaps Fabians Geikins
347fa4b462
feat(server): improving knex query stack traces ( #3855 )
...
* feat(server): improving knex query stack traces
* minor cleanup
* more improvements
2025-01-21 10:59:09 +01:00
Kristaps Fabians Geikins
a2bc9ffbcb
chore(server): refactor activityStream invocations - batch #1 - user ( #3845 )
...
* chore(server): refactor activityStream invocations - batch #1 - user
* minor cleanup
* test fix + swap to TS
* move listeners to new loc
2025-01-21 09:48:02 +01:00
Alessandro Magionami
6d0f08b7b5
feat(workspaces): approve join request ( #3833 )
...
* feat(workspaces): approve join request
* chore(workspaces): add missing dep to resolver call
* chore(workspaces): use commandFactory
2025-01-16 16:46:59 +01:00
Alessandro Magionami
c0c760f202
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2362-list-workspace-pending-requests
2025-01-15 12:11:03 +01: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
Kristaps Fabians Geikins
8df7eb714b
chore(server): getting rid of module-scoped eventBuses - batch #5 - automations & runs [final] ( #3818 )
...
* chore(server): getting rid of module-scoped eventBuses - batch #4 - comments
* chore(server): getting rid of module-scoped eventBuses - batch #5 - automations
* chore(server): getting rid of module-scoped eventBuses - batch #5 - automation runs
2025-01-15 11:00:33 +02:00
Kristaps Fabians Geikins
3351e09418
feat(server): logging stack traces for db errors + allow async stack traces through env var ( #3819 )
2025-01-14 17:25:30 +01:00
Kristaps Fabians Geikins
b41a98d107
chore(server): getting rid of module-scoped eventBuses - batch #4 - comments ( #3812 )
2025-01-14 17:24:26 +01:00
Alessandro Magionami
bb73ecbe3c
feat(workspaces): list workspace join requests for admin
2025-01-14 12:02:57 +01:00
Kristaps Fabians Geikins
0b81f9979e
chore(server): event bus refactor - access req emitter - batch #3
2025-01-13 11:03:58 +02:00
Kristaps Fabians Geikins
dab0a23c33
chore(server): event bus refactor - version emitter - batch #2
2025-01-13 11:03:34 +02:00
Kristaps Fabians Geikins
f403d51330
replaced user event bus
2025-01-07 11:24:07 +02:00
Kristaps Fabians Geikins
7ce306569f
got rid of projects emitter + added tests
2025-01-06 17:42:24 +02:00
Kristaps Fabians Geikins
13e75a98f0
got rid of models emitter + added tests
2025-01-06 15:55:50 +02:00
Iain Sproat
457c532b2b
feat(server): allow ratelimiting to be explicitly disabled ( #3757 )
...
* feat(server): allow ratelimiting to be explicitly disabled
- allows rate limiter to be enabled or disabled explicitly
- example .env file for testing now explicitly disables it
- disables rate limiter in CI tests, except where explicitly testing the rate limiter
2025-01-03 08:24:28 +00:00
Iain Sproat
1f7620a281
chore(logging): log migration of databases ( #3700 )
...
- tidy up Database error handling context data
2024-12-16 13:40:29 +00:00
Iain Sproat
c4def81ae2
feat(server options): allow connection timeouts to be configured ( #3701 )
...
* feat(server options): allow connection timeouts to be configured
* feat(postgres config): allow connection parameters to be configured
2024-12-16 13:39:40 +00:00