Commit Graph

308 Commits

Author SHA1 Message Date
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
Kristaps Fabians Geikins 20789281e1 chore: back to 1 extra region in tests (#4277)
* chore: back to 1 extra region in tests

* chore: back to 1 extra region in tests

* commenting out multiple multiregion tests
2025-03-27 15:28:00 +02: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
Alessandro Magionami 5d6d0769fd Merge pull request #4236 from specklesystems/alessandro/web-2803-downscale-workspace-subscription
Alessandro/web 2803 downscale workspace subscription
2025-03-26 09:14:41 +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 eaf3b3a479 feat(gatekeeper): seats counts 2025-03-25 09:47:13 +01:00
Alessandro Magionami 01042e9d2d Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2803-downscale-workspace-subscription 2025-03-24 11:06:33 +01:00
Alessandro Magionami 6a09d07c59 feat(workspaces): fix filter type 2025-03-24 11:05:38 +01:00
Alessandro Magionami 9429e47b93 feat(workspaces): add filter by seatType in workspace team 2025-03-24 10:29:36 +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
Alessandro Magionami 362a0e6141 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2803-downscale-workspace-subscription 2025-03-21 11:14:49 +01:00
Alessandro Magionami 89f20bbae3 Merge pull request #4229 from specklesystems/alessandro/web-2869-filter-dismissed-workspace-join-requests
fix(workspaces): filter out dismissed join requests
2025-03-20 13:20:45 +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
Chuck Driesler d39c52a324 feat(regions): use queue for moves (#4060)
* 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

* feat(regions): queue wip

* fix(regions): trigger job instead of performing change synchronously

* chore(regions): update tests for job queue

* fix(regions): use the queue
2025-03-20 10:35:39 +00:00
Alessandro Magionami 7e944b182e Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2803-downscale-workspace-subscription 2025-03-20 10:32:21 +01:00
Alessandro Magionami 4b138a7653 fix(workspaces): filter out dismissed join requests 2025-03-20 10:30:59 +01:00
Kristaps Fabians Geikins b55e197d00 chore(server): refactor seat updated to be its own event (#4214)
* chore(server): refactor seat updated to be its own event

* minor cleanup

* test fix
2025-03-19 12:17:27 +02:00
Alessandro Magionami 96bfedefe8 chore(gatekeeper): take end billing cycle date from stripe 2025-03-18 13:05:19 +01: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
Chuck Driesler 8dfbf24d91 feat(workspaces): enable move project region (#4135) 2025-03-13 19:39:59 +00:00
Chuck Driesler 9dba10db01 fix(sso): email capitalization again (#4164)
* fix(sso): more capitalization

* chore(sso): comment

* chore(sso): fix test
2025-03-11 17:35:38 +00: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 d1f040051d refactor(server): Update system emails (#4074)
* Update email verification. And workspace invite emails.

* Footer logos

* Workspace requests

* Trial

* Misc emails

* New logo

* Updates to font, spacing and footer

* Remove space

* Update invite emails

* Correct classes
2025-03-07 15:30:03 +00:00
Chuck Driesler 9f83d1f74e feat(regions): trigger project move with job (#4010) 2025-03-07 09:18:12 +00: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
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
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
Chuck Driesler 9b7c56de9f fix(workspaces): emit role updated on join request approved (#4100) 2025-03-03 09:19:22 +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
Alessandro Magionami 6d153bd485 Merge pull request #4091 from specklesystems/alessandro/web-2765-ensure-seat-is-assigned-to-users-on-workspace-role-change
Alessandro/web 2765 ensure seat is assigned to users on workspace role change
2025-02-28 17:44:12 +01: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
Alessandro Magionami cae5b36681 test(workspaces): fix tests 2025-02-28 11:47:05 +01:00
Alessandro Magionami b6f269b8ea feat(workspaces): code review changes 2025-02-28 11:14:28 +01:00
Alessandro Magionami b6faa09bfc Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2765-ensure-seat-is-assigned-to-users-on-workspace-role-change 2025-02-28 10:44:29 +01: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 938127bf4b feat(workspaces): add listeners to assign workspace seats 2025-02-27 16:21:44 +01:00
Alessandro Magionami 9275ea1ee9 feat(workspaces): assign workspace seat logic 2025-02-27 16:20:33 +01:00
Mike 7cecffbabf Feat: Deep links on members settings (#4069) 2025-02-27 10:47:18 +01:00
Chuck Driesler 1cceb30273 chore(sso): improve misconfigured log (#4080) 2025-02-26 22:17:09 +00:00
Chuck Driesler 025ae104db feat(regions): move file uploads and blobs (#3977)
* 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
2025-02-26 19:34:50 +00:00
Alessandro Magionami 4228c3396b Merge pull request #3957 from specklesystems/chuck/web-2435-move-comments-and-webhooks-without-attachments
feat(regions): move project comments and webhooks
2025-02-26 15:51:14 +01:00
Iain Sproat eabb50a6d2 tests(workspaceJoinRequests): fix broken tests with invalid scopes (#4071) 2025-02-26 11:23:16 +00:00
Mike 2ecb98146a Feat: prevent non work emails (#3993) 2025-02-26 10:55:02 +01:00