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
a4ab20c938
feat(activity): add workspace billing events and seats to activity ( #4944 )
...
* feat: improved gatekeeper eventsfor workspace history
* feat: userId on seat assign
* feat: record workspace seat events
* feat: workspace removals as activity
* feat: emit role and seat events on create workspace
* fix: reordered events for workspace creation
2025-06-30 16:49:36 +02: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
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
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
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
Alessandro Magionami
d640f23c7d
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2944-versions-hide-referencedobject
2025-04-07 16:12:41 +02:00
Gergő Jedlicska
a3644a50c5
gergo/web 2931 introduce missing workspace plans ( #4323 )
...
* fix(gatekeeper): missing priceId-s should stop the server from booting
* feat(shared): add all new workspace plans
* feat(billing): add new world plans
* feat(ci): use stripe sandbox id-s from test env vars
* chore(ci): remove defunct stripe context
* chore(server-env): fix server env example
* feat(gatekeeper): add missing plans to graphql schema
* test(gatekeeper): update plan upgrade tests to match implementation
* fix(ci): update ci .env source
* fix(ci): we do need some secrets from stripe
* fix(ci): run gql schema introspect with the test env
* fix(frontend): format new plan names
* chore(ci): temp disable gql schema checks
* feat(helm): add unlimited seat prices env vars
* feat(helm): add unlimited seat prices to values
* feat(gatekeeper): do not load priceId-s as a side effect, load with module init
2025-04-07 15:24:57 +02:00
Alessandro Magionami
6f5415e66d
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2944-versions-hide-referencedobject
2025-04-07 12:48:58 +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
Alessandro Magionami
5c004f85b1
chore(gatekeeper): get workspace plan repository and dataloader function
2025-04-04 10:51:46 +02: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
Kristaps Fabians Geikins
a83bae8d84
feat: Workspace/ProjectCollaborator/WorkspaceCollaborator seatType ( #4284 )
...
* Workspace & ProjectCollaborator seat type
* minor adjustment to FE
* minor adjustment to FE
2025-03-31 13:07:35 +03: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
Alessandro Magionami
1eb7331733
chore(gatekeeper): fix test
2025-03-07 16:38:36 +01: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
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
656614e9bc
chore(gatekeeper): fix build
2025-03-06 10:28:27 +01: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
f5a8ab7cbc
feat(gatekeeper): add new create checkout session function
2025-03-05 17:33:36 +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
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
Alessandro Magionami
9322cfdd25
Merge pull request #4062 from specklesystems/alessandro/web-2729-viewer-and-editor-seat-types
...
chore(gatekeeper): add workspace_seats table and types
2025-02-28 10:23:33 +01:00
Alessandro Magionami
99d4aba767
feat(workspaces): create workspace seat function
2025-02-27 11:06:31 +01: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
Alessandro Magionami
ca6f2da63f
chore(gatekeeper): add workspace_seats table and types
2025-02-25 10:22:08 +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
Gergő Jedlicska
5b0bb3b65d
gergo/web 2635 set up new plans in the backend ( #4031 )
...
* feat(gatekeeper): add new free plan option as an unpaid workspace plan
* feat(workspaces): add feature flag for new plans
* feat(gatekeeper): add free plan option to workspace plans
* Added button in FE
* Make button more beautifuller
* feat(gatekeeper): enable creating workspaces on a free plan
* Fix
* Fix FE linting
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2025-02-21 14:49:04 +01: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
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
Gergő Jedlicska
35bc6918cb
gergo/web 2428 academia should be free business ( #3831 )
...
* feat(server): workspace shoul equal unpaid business
* feat(server): add free workspace plans
* feat(gatekeeper): rename plans to invoiced
2025-01-16 10:21:59 +01:00
Alessandro Magionami
fa4022ad14
Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/web-2124-set-up-email-notifications-for-trial-expiration
2024-12-23 10:29:12 +01:00
Alessandro Magionami
1ba905d61d
Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/web-2124-set-up-email-notifications-for-trial-expiration
2024-12-20 11:08:30 +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
Alessandro Magionami
11beefeada
feat(gatekeeper): readOnly validation logic
2024-12-16 10:17:16 +01:00
Gergő Jedlicska
c186b23db6
feat(gatekeeper): send workspace trial expiry emails
2024-12-13 17:30:02 +01:00
Alessandro Magionami
fd2d6381f8
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2304-expose-graphql-field-readonly-for-workspace-type
2024-12-12 09:41:03 +01:00
Gergő Jedlicska
68938bab94
feat(gatekeeper): show subscription seats ( #3679 )
...
* feat(gatekeeper): show subscription seats
* Enabled summary on billing page
* Made interval dynamic
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2024-12-11 22:19:22 +01:00
Gergő Jedlicska
229a19c981
gergo/workspaceAdmin ( #3677 )
...
* feat(workspaces): add unified paginated items service
* feat(workspaces): admin update workspace plan
2024-12-11 18:54:24 +01:00
Gergő Jedlicska
2a72631e8b
feat(gatekeeper): expire trail workspace plans ( #3669 )
2024-12-11 17:22:04 +01:00
Gergő Jedlicska
fb7a7684e7
refactor(gatekeeper): use exhaustive switch pattern
2024-12-11 16:07:49 +01:00
Alessandro Magionami
b08f25dffa
feat(workspaces): add readOnly logic for workspace
2024-12-09 14:31:59 +01:00
Mike
8f4593e606
Feat: Workspace creation wizard ( #3625 )
2024-12-04 14:19:52 +01:00
Gergő Jedlicska
f381dc3d9d
gergo/workspaceDefaultPlan ( #3561 )
...
* feat(gatekeeper): create workspaces with trial plan by default
* feat(gatekeeper): default to starter trial plan
* fix(eventBus): fix tests
2024-11-27 09:51:32 +01:00
Gergő Jedlicska
be7be141e8
fix(gatekeeper): migrate plan rename ( #3552 )
...
* fix(gatekeeper): migrate plan rename
* fix(cli): fix yargs
2024-11-26 12:41:56 +01:00