Kristaps Fabians Geikins
c54d15fd93
feat: authz frontend foundation + reworked errors ( #4275 )
...
* feat: authz frontend foundation + reworked errors
* lint fixes
* test fix
* fixed noCache() util
2025-03-27 16:13:35 +02:00
Gergő Jedlicska
4c28697d0c
feat(shared): rework policy internals to work with loader errors in checks and policy fragments ( #4276 )
...
* feat(shared): rework policy internals to work with loader errors in checks and policy fragments
* fix(server): auth reintegration
2025-03-27 11:30:54 +01:00
Alessandro Magionami
a38bbd4066
feat(workspaces): add viewers count
2025-03-26 10:24:14 +01:00
Alessandro Magionami
3102a75d3b
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2867-expose-used-and-available-seats
2025-03-26 09:21:12 +01: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
Alessandro Magionami
55648c3125
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2867-expose-used-and-available-seats
2025-03-25 15:26:12 +01: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
Alessandro Magionami
c27cb6c686
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2867-expose-used-and-available-seats
2025-03-25 09:48:03 +01:00
Alessandro Magionami
eaf3b3a479
feat(gatekeeper): seats counts
2025-03-25 09:47:13 +01:00
Chuck Driesler
c6e0714bc4
chore(authz): hoist authorizeresolver ( #4253 )
...
* chore(authz): hoist deleteStreamAndNotify
* chore(authz): hoist updateStreamAndNotify
* chore(authz): comment
2025-03-24 16:51:19 +00:00
Alessandro Magionami
37bc9efed0
Merge pull request #4248 from specklesystems/alessandro/web-2858-add-seat-type-to-workspaceteamfilter
...
feat(workspaces): add filter by seatType in workspace team
2025-03-24 15:43:39 +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
Alessandro Magionami
9429e47b93
feat(workspaces): add filter by seatType in workspace team
2025-03-24 10:29:36 +01:00
Gergő Jedlicska
25d0802234
fix(server): project access fix for discoverable projects ( #4246 )
2025-03-22 15:42:35 +01: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
Mike
b1e3a4bb72
Feat: Add createdAt to workspace team WorkspaceCollaborator ( #4227 )
2025-03-20 12:50:10 +01:00
Kristaps Fabians Geikins
e24c26e3d2
feat: getting rid of defaultProjectRole setting ( #4221 )
...
* feat: getting rid of defaultProjectRole setting
* get stdout reporting in CI
* yarn lock fix
* fix package.json
* better CI test output
* pinning mocha-multi
2025-03-20 12:58:30 +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
andrewwallacespeckle
45d7d4d02b
feat(fe): Tutorials page ( #4120 )
...
* Tutorials Page
* Add tutorials page
* Update Page.vue
* Changes from PR
* Updates from call
* Remove page added in error
* Update Page.vue
* Remove shallowref
* Update mixpanel name
2025-03-07 12:18:45 +00:00
Kristaps Fabians Geikins
ebade45d43
feat: remove project discoverability concept from UI ( #4125 )
...
* feat: remove project discoverability concept from UI
* test fix
2025-03-07 13:09:03 +02:00
Chuck Driesler
9f83d1f74e
feat(regions): trigger project move with job ( #4010 )
2025-03-07 09:18:12 +00:00
Alessandro Magionami
bfc48f21a0
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2774-upgrade-from-free-to-paid-plan
2025-03-06 15:26:34 +01: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
Kristaps Fabians Geikins
fb6dc448ca
feat(server): prevent viewer seat from becoming project contributor/owner + extra fixes ( #4117 )
...
* unrelated fixes that i noticed
* tests for fix
* tests & working restrictions
* test fix
* test fixx
2025-03-06 13:26:16 +02:00
Alessandro Magionami
ca2c43738c
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2774-upgrade-from-free-to-paid-plan
2025-03-06 10:29:49 +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
Alessandro Magionami
66ddb1eb34
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2774-upgrade-from-free-to-paid-plan
2025-03-05 19:29:44 +01:00
Alessandro Magionami
1e3d06c121
feat(gatekeeper): add new plans in graphql
2025-03-05 17:31:06 +01: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
Mike
ad899a8fd7
Feat: Add isEmailsEnabled to serverInfo ( #4109 )
2025-03-04 15:54:06 +01: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
Chuck Driesler
063750cac7
feat(workspaces): track last visited workspace and project ( #4086 )
...
* feat(workspaces): track last visited workspace and project
* fix(workspaces): some renaming
* fix(workspaces): appease ts
* fix(tests): repair meta tests
2025-03-03 22:35:01 +00:00
Iain Sproat
47556d68c7
chore(server/scheduled tasks): should log task name and unique task Id ( #4094 )
2025-03-03 15:12:11 +00:00
Iain Sproat
76623529a5
tests(server/tests): convert modules/core/tests/graph.spec to typescript ( #4096 )
2025-03-03 09:18:33 +00:00
Iain Sproat
04f84c31f3
fix(server/automate): logger should have request context and request ID sent to execution engine ( #4092 )
...
* fix(server/automate): logger should have request context
* WIP - pass in request Id
* WIP
* fix(automate): better logging for automate processes
* chore(automate): slight log improvement
* fix(automate): just in case
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-02-28 18:22:00 +00:00
Chuck Driesler
3cc68bb0e2
feat(automate): use updated hybrid function search ( #4085 )
...
* fix(automate): use new function query for workspace functions
* fix(automate): include workspace resource claims in auth flow
* chore(automate): do not use btoa
2025-02-28 16:03:34 +00:00
Iain Sproat
ce08e5e02d
refactor(server): logging directory renamed to observability ( #4077 )
2025-02-28 08:43:54 +00:00
andrewwallacespeckle
8c69f22e27
feat: Update user tags in Mailchimp when user completes onboarding questions ( #4000 )
...
* Add new updateMailchimpMemberTags function and use it in FE
* Pass tag data from FE
* Plan > Use case
* move onboarding types to shared package
* Check newsletter consent
* Changes from PR
* GQL
2025-02-27 11:29:00 +00:00
Kristaps Fabians Geikins
ec092fb042
chore: move common workspace plan/feature config to @speckle/shared ( #4064 )
...
fix: gqlgen regenerated
2025-02-27 11:18:30 +02:00
Mike
2ecb98146a
Feat: prevent non work emails ( #3993 )
2025-02-26 10:55:02 +01:00
Alessandro Magionami
a9dd835de9
feat(workspaces): team resolver for limited workspace ( #4040 )
2025-02-25 12:19:50 +01: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
6051917b59
chore(server): refactor activityStream invocations - batch #7 - streams ( #4014 )
...
* chore(server): refactor activityStream invocations - batch #7 - streams
* test fix
* more test fixes
* CR comment fix
2025-02-24 12:34:56 +02:00
Chuck Driesler
9cfa91eded
fix(automate): defer showing header until tab query finishes ( #4051 )
2025-02-24 09:37:58 +00:00
Iain Sproat
01a49dffee
fix(tests): enable rate limiter in a safe way ( #4048 )
2025-02-23 11:17:17 +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
Kristaps Fabians Geikins
fdbc05a942
fix(server): Object.children() query data values missing sometimes ( #4015 )
...
* fix(server): Object.children() query data values missing sometimes
* minor change
2025-02-19 12:35:26 +02:00