Commit Graph

127 Commits

Author SHA1 Message Date
Alessandro Magionami dceedf512f chore(gatekeeper): remove last references to year limit for team plan 2025-03-10 10:11:40 +01:00
Alessandro Magionami adfa8f4776 chore(gatekeeper): fix lint 2025-03-07 16:50:09 +01: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
Alessandro Magionami 2e0d2f0dbb chore(gatekeeper): fix another 2025-03-06 15:00:05 +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 fd99914c8e chore(gatekeeper): fix another test type 2025-03-06 11:26:41 +01:00
Alessandro Magionami e10ffac30c chore(gatekeeper): fix test type 2025-03-06 10:47:24 +01: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
Alessandro Magionami 656614e9bc chore(gatekeeper): fix build 2025-03-06 10:28:27 +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 bcdb5ed0b0 feat(gatekeeper): new checkout flow 2025-03-05 17:35:28 +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
andrewwallacespeckle c384996978 refactor(fe): New workspace actions route to avoid slug conflicts (#4107)
* Remove blockedSlugs

* Update workspace action routes to use /actions

* Re-add blockedWords
2025-03-04 14:43:07 +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
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
Iain Sproat 6f0133a39b chore(server/observability): logging of resolver to create checkout session (#4067) 2025-02-28 15:42:12 +00: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 4a291740e6 Merge pull request #4070 from specklesystems/alessandro/web-2764-seat-counting-by-type
feat(workspaces): count workspace seats by type
2025-02-28 10:39:12 +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 01fb463a7c Merge pull request #4052 from specklesystems/alessandro/web-2728-full-seat-products-for-new-paid-plans
chore(gatekeeper): rename workspace plans
2025-02-28 10:23:08 +01:00
Iain Sproat ce08e5e02d refactor(server): logging directory renamed to observability (#4077) 2025-02-28 08:43:54 +00:00
Alessandro Magionami ee92b254bc Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2728-full-seat-products-for-new-paid-plans 2025-02-28 09:37:57 +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 781357c488 feat(workspaces): count workspace seats by type 2025-02-25 15:28:14 +01:00
Alessandro Magionami df28c3d8f8 chore(gatekeeper): ignore new plans if ff is disabled 2025-02-25 11:05:57 +01:00
Alessandro Magionami ca6f2da63f chore(gatekeeper): add workspace_seats table and types 2025-02-25 10:22:08 +01:00
Alessandro Magionami 41454ad91a chore(gatekeeper): fix conflicts 2025-02-25 10:01:35 +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
Chuck Driesler a8969c9b33 fix(billing): can't be read only if no billing (#3949) 2025-02-11 17:08:09 +01:00
Iain Sproat c59e6043bb fix(server/errors): derive errors from BaseError (#3918) 2025-01-30 18:15:56 +01:00
Gergő Jedlicska 7b295ba408 gergo/web 2428 academia should be free business (#3842)
* feat(server): workspace shoul equal unpaid business

* feat(server): add free workspace plans

* feat(gatekeeper): rename plans to invoiced

* chore(gatekeeper): regen gql

* feat(gatekeeper): calculate workspace plan payment method

* fix(fe2): add missing workspace plans
2025-01-16 18:14:33 +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
Kristaps Fabians Geikins 82c7814b39 feat(server): track wp trial expiratiom email sends (#3753)
* feat(server): track wp trial expiratiom email sends

* cr fix
2025-01-02 13:28:55 +02:00
Alessandro Magionami 934b148912 Merge pull request #3703 from specklesystems/gergo/web-2124-set-up-email-notifications-for-trial-expiration
Set up email notifications for trial expirations
2024-12-30 09:58:45 +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 5c3887f36a feat(gatekeeper): add text email 2024-12-23 10:23:16 +01:00
Alessandro Magionami 66f7e98aa7 feat(gatekeeper): remove 14 days trial expiration email 2024-12-20 19:31:47 +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 ff04755a5c feat(gatekeeper): readOnly validation for version and commit creation 2024-12-20 09:56:47 +01:00
Alessandro Magionami 3b82b62943 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2310-return-error-on-object-creation-for-projects-in-readonly 2024-12-20 09:21:19 +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
Benjamin Ottensten 8afe68e1c5 Change trial email copy 2024-12-17 23:59:54 +01:00