Commit Graph

87 Commits

Author SHA1 Message Date
Kristaps Fabians Geikins b29331705e chore(server): get rid of duplicate gql TS types (#5065) 2025-07-14 11:31:12 +03:00
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 ba3d9ade22 feat(activity): moved project roles to activity (#5019)
* feat: moved project roles to activity
* fix: added previous project role filed on activity
* fix: remvoke does not get logged as an actvity for every project in a workspace when removed from workspace
* fix: on delete user account, emit also seat and project event

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-07-10 11:44:54 +02:00
andrewwallacespeckle 2fddcd78b7 feat(server+fe): Implement LimitedWorkspace for PendingWorkspaceCollaborator (#4984) 2025-06-27 09:35:37 +01:00
Daniel Gak Anagrov 51d6a8dd67 feat(activity): added user info to checkout_subscription and subscription upgrade (#4967)
* feat: added userId to checkout_subscription
* feat: add update intent to subscription
2025-06-24 15:34:26 +02:00
Kristaps Fabians Geikins cfa0b249d1 feat: seat type selection in invite flows (#4908)
* backend seems to work

* bigger menu support

* FE nearly done

* merge fix

* ui changes

* workspace invite disclaimer

* project disclaimer

* project invite viewer -> editor flow

* extra minor fixes

* Change project role input label

* extra test assertions

---------

Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2025-06-13 09:45:58 +03:00
Daniel Gak Anagrov 11948b40de feat(gatekeeper): track seat updates (#4865) 2025-06-05 12:41:05 +02:00
Chuck Driesler 0eb8d1f352 feat(workspaces): add workspace level default seat property (#4851)
* feat(workspaces): default workspace seat field

* chore(workspaces): add tests for default seat type
2025-05-30 12:30:20 +01:00
Daniel Gak Anagrov 3e9f87177d feat(workspaces): Delete, Cancel, CancelSheduled mixpanel BE events 2025-05-29 11:15:06 +02:00
Chuck Driesler 0f5c22329b Chuck/web 3465 auto join discoverable workspace setting (#4791)
* feat(workspaces): enable toggle for auto-join discoverable workspaces

* fix(workspaces): include auto-join flag on LimitedWorkspace

* chore(workspaces): gqlgen
2025-05-22 10:11:05 +01:00
Daniel Gak Anagrov fa5f2eb1f5 feat(workspaces): added GQL fitlering capabilities to activeUser workspaces
*  added filtering mechanism for getWorkspaces completed or not completed workspaces
* added filtering mechanism to filter workspaces of active user by string hitting on slug or name
2025-05-19 16:30:56 +02:00
Kristaps Fabians Geikins a25df23688 fix(server): seats sometimes not created on role create (#4740)
* core fix

* fix migration

* minor update
2025-05-14 15:45:14 +03:00
Kristaps Fabians Geikins 4db1531064 feat: "workspace" project visibility (#4704)
* WIP new visi

* test fixes

* visibility seems to work

* authz policies & authorizeResolver updated

* various test fixes

* users tests

* frontend changes

* minor adjustments

* shared test fix

* test fixes

* force rerun CI
2025-05-14 15:20:26 +03:00
Kristaps Fabians Geikins d995a9837e Revert "Revert "feat(server): workspace project invites as implicit workspace invites"" (#4672)
* Revert "Revert "feat(server): workspace project invites as implicit workspace…"

This reverts commit 220015ece6.

* fix invites leak
2025-05-07 14:08:40 +03:00
Kristaps Fabians Geikins 220015ece6 Revert "feat(server): workspace project invites as implicit workspace invites…" (#4671)
This reverts commit 22bd90d304.
2025-05-06 16:21:12 +03:00
Kristaps Fabians Geikins 22bd90d304 feat(server): workspace project invites as implicit workspace invites (#4634) 2025-05-06 14:20:29 +03:00
Kristaps Fabians Geikins 211922b6a6 chore: get rid of all old workspace plan code (#4624)
* first batch of changes

* tests fix

* FE fixed

* renaming constants

* test fixes

* moar test fixes

* another test fix

* reenable app rover check

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2025-04-30 19:18:32 +02:00
Kristaps Fabians Geikins c6dcf18bdb feat(server): workspace project invite auto-accept (for existing wp members) (#4622)
* WIP ts

* DI fix & tests moved to TS

* auto-accept seems to work

* CR comments
2025-04-30 17:39:07 +03:00
Kristaps Fabians Geikins cf833a7719 fix(server): project role updates after workspace role/seat changes (#4599)
* fix(workspaces): workspace role sync

* role changes fixed + validated

* seat changes validated

* fix tests

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-04-29 10:49:37 +03:00
Kristaps Fabians Geikins 93bc55630b fix(server): prevent creating project contributor invite to viewer se… (#4462)
* fix(server): prevent creating project contributor invite to viewer seat member

* undo regionConfig change

* moar cleanup
2025-04-17 05:00:33 +01:00
Gergő Jedlicska 61ca128ce2 gergo/multiCurrency (#4379)
* feat(gatekeeper): support multiple currencies

* feat(helm): add new currency based prices to helm chart

* chore(env): add example currency based pricing values

* fix(ci): update price ids to the proper values

* feat(helm): rename price ids to fit multi currency

* feat(gatekeeper): currency input for checkout session

* Updated prices in the FE

* chore(gatekeeper): remove old checkout session flow

* Updated prices in the FE

* Fix FE

* Fix pipeline

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-04-11 17:37:47 +02:00
Kristaps Fabians Geikins 820a1e2ebf feat(server): workspace roles taken into account in project queries (#4319)
* Workspace.projects fixed

* Query.project tested & fixed

* personalOnly flag added

* withProjectRoleOnly flag

* authorizeResolver implicit workspace roles

* minor cleanup

* reorg + support for throwing auth errors

* global error mapping

* undo special borkage

* CR fixes

* more CR fixes

* shared tests fix

* minor adjustment

* tests fix

* see if removing cached roles fixes it?

* more fixes

* clean up debugging garbage
2025-04-07 12:52:07 +03:00
Chuck Driesler 855185245e feat(workspaces): consolidate workspace role/seat reporting (#4315)
* feat(workspaces: shuffle seat type counts around

* fix(workspaces): use new counts

* fix(workspaces): better field placement

* Updated FE

* chore(workspaces): fix tests

* fix(workspaces): use correct flags

* fix(workspaces): correct another test

* fix(workspaces): use correct model count function

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-04-04 10:27:49 +01:00
Chuck Driesler 6cea72e4f8 feat(workspaces): add query for fetching usage (#4306)
* WIP can create project

* WIP can create project more work

* complete body, stencil tests

* feat(shared): move workspace plan types into shared

* test progress wip

* feat(shared): add more logic to canCreateWorkspaceProject

* a few more tests, as a treat

* chore(authz): round out tests

* fixed loaders, new GQL checks, dataLoaders in auth loaders

* fix(authz): get workspace limits loader

* chore(authz): update loaders

* frontend fixed up to snuff

* fix(authz): fix workspace plans for tests

* fix(authz): classic

* feat(workspaces): emit plan usage from BE

* fix(authz): 0 counts

* fix(workspaces): fix counts for 0

* chore(workspaces): gqlgen

* fix(workspaces): update fragment to use new fields

* fix(workspaces): count regional projects correctly

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-04-03 09:06:34 +01:00
Gergő Jedlicska f501cc4ad5 gergo/web 2888 workspace project cancreate (#4294)
* WIP can create project

* WIP can create project more work

* complete body, stencil tests

* feat(shared): move workspace plan types into shared

* test progress wip

* feat(shared): add more logic to canCreateWorkspaceProject

* a few more tests, as a treat

* chore(authz): round out tests

* fixed loaders, new GQL checks, dataLoaders in auth loaders

* fix(authz): get workspace limits loader

* chore(authz): update loaders

* frontend fixed up to snuff

* fix(authz): fix workspace plans for tests

* fix(authz): classic

* fix(authz): 0 counts

---------

Co-authored-by: Chuck Driesler <chuck@speckle.systems>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-04-01 16:38:20 +01:00
Alessandro Magionami 4a7d37e3d7 Merge pull request #4300 from specklesystems/alessandro/web-2874-return-user-counts-by-role-and-seat-type
Alessandro/web 2874 return user counts by role and seat type
2025-03-31 18:50:15 +02:00
Alessandro Magionami de1054720b feat(workspaces): member by role counts 2025-03-31 17:15:36 +02:00
Alessandro Magionami 99d9c9a2ad feat(workspaces): seats by type counts in workspace 2025-03-31 16:43:00 +02:00
Alessandro Magionami 9b106b49a1 feat(workspaces): resolver for invitable collaborators 2025-03-31 09:38:17 +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 eaf3b3a479 feat(gatekeeper): seats counts 2025-03-25 09:47:13 +01:00
Alessandro Magionami 9429e47b93 feat(workspaces): add filter by seatType in workspace team 2025-03-24 10:29: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
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
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
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
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 938127bf4b feat(workspaces): add listeners to assign workspace seats 2025-02-27 16:21:44 +01: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
Chuck Driesler 35b59ca4f2 chore(workspaces): drop defaultLogoIndex (#3898) 2025-01-28 08:56:13 +01:00
Alessandro Magionami 85ce151264 feat(workspaces): make query for single workspace 2025-01-14 12:02:57 +01:00
Alessandro Magionami bb73ecbe3c feat(workspaces): list workspace join requests for admin 2025-01-14 12:02:57 +01:00
Alessandro Magionami c32026b6d6 feat(workspaces): dismiss workspace mutation 2025-01-09 11:21:46 +01:00
Alessandro Magionami a363f0e81a feat(workspaces): expose graphql field readonly for workspace type (#3659)
* feat(workspaces): add readOnly field to workspace gql type

* feat(workspaces): add readOnly logic for workspace

* refactor(gatekeeper): use exhaustive switch pattern

* chore(billing): fix test

* feat(gatekeeper): fix tests

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-12-18 13:47:27 +00:00