Commit Graph

194 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
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 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
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
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
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
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
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
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
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
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
Charles Driesler ff3b1bb13a Merge remote-tracking branch 'origin' into chuck/web-2435-move-comments-and-webhooks-without-attachments 2025-02-23 19:15:55 +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
Mike 6c254a8c65 Fix: Short ID generation + error (#4034) 2025-02-20 09:36:57 +01:00
Chuck Driesler f18a457200 Merge remote-tracking branch 'origin' into chuck/web-2435-move-comments-and-webhooks-without-attachments 2025-02-18 16:04:20 +00:00
Chuck Driesler 86c113b29b feat(regions): move project automations (#3925)
* 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): move project objects

* chore(regions): add tests for object move

* feat(regions): move project automations

* chore(regions): add tests for moving automations

* chore(regions): more tests for moving automate data

* fix(regions): speed up inserts

* fix(regions): simplify postgres usage

* chore(regions): repair build

* fix(regions): improve queries

* chore(regions): again
2025-02-18 15:48:00 +00:00
Kristaps Fabians Geikins 4b7740eb17 Merge branch 'main' into fabians/web-2415-6 2025-02-17 15:15:52 +02:00
Chuck Driesler 60e74b34e1 feat(regions): move project objects (#3924)
* 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): move project objects

* chore(regions): add tests for object move

* fix(regions): speed up inserts

* fix(regions): simplify postgres usage

* chore(regions): 100 => 10
2025-02-17 10:51:12 +00: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
Charles Driesler 21bf57f514 fix(regions): move webhooks because they deserve love too 2025-02-11 00:43:15 +00:00