Alessandro Magionami
d829cac8b3
chore(gatekeeper): add specific error for unsupported workspace plan
2025-03-13 10:36:28 +01:00
Alessandro Magionami
89519bc6b7
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2741-subscriptions-to-upgrade-for-new-plan-types
2025-03-12 10:01:02 +01:00
Alessandro Magionami
39d133d46b
chore(gatekeeper): test new upgrade plan flow
2025-03-11 17:54:26 +01:00
Alessandro Magionami
f824cb793a
feat(gatekeeper): create new upgrade plan flow
2025-03-11 17:52:42 +01:00
Alessandro Magionami
c035387eec
chore(gatekeeper): update function to validate upgrade
2025-03-11 17:52:18 +01: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
e4dc3b7834
Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2802-missing-workspace-new-pricing-config-from-the-helm-chart
2025-03-10 11:05:58 +01:00
Alessandro Magionami
61736f7ee3
chore(gatekeeper): remove console.log
2025-03-10 10:14:57 +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
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
Alessandro Magionami
e10ffac30c
chore(gatekeeper): fix test type
2025-03-06 10:47:24 +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
bcdb5ed0b0
feat(gatekeeper): new checkout flow
2025-03-05 17:35:28 +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
Iain Sproat
47556d68c7
chore(server/scheduled tasks): should log task name and unique task Id ( #4094 )
2025-03-03 15:12:11 +00:00
Iain Sproat
6f0133a39b
chore(server/observability): logging of resolver to create checkout session ( #4067 )
2025-02-28 15:42:12 +00:00
Iain Sproat
ce08e5e02d
refactor(server): logging directory renamed to observability ( #4077 )
2025-02-28 08:43:54 +00: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
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
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
Iain Sproat
c59e6043bb
fix(server/errors): derive errors from BaseError ( #3918 )
2025-01-30 18:15:56 +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
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
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
Benjamin Ottensten
8afe68e1c5
Change trial email copy
2024-12-17 23:59:54 +01: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
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
2ba2ef28dc
feat(gatekeeper): lower checkout session expiry ( #3626 )
2024-12-04 11:52:33 +01:00
Mike
b2cebea7eb
Fix: Various billing fixes ( #3569 )
2024-11-28 20:24:05 +01:00
Gergő Jedlicska
ec02e63707
feat(gatekeeper): upgrade workspace plan ( #3572 )
2024-11-28 11:15:32 +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
80cf6b3904
fix(gatekeeper): fix the checkout session cancellation logic ( #3553 )
...
* fix(gatekeeper): fix the checkout session cancellation logic
* Updated FE
* Remove debug
* Add error toast
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2024-11-26 16:30:55 +01:00
Gergő Jedlicska
83a991bfac
feat(gatekeeper): rename workspace plans ( #3533 )
...
* feat(gatekeeper): rename workspace plans
* Updated plans in FE
* feat(gatekeeper): stripe redirect to workspace dashboard
* test(gatekeeper): fix tests
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2024-11-22 05:50:16 +01:00
Gergő Jedlicska
f210d9b749
gergo/web 2109 project region based db connection selector ( #3434 )
...
* feat(projects): add project regions, default to null
* feat(multiregion): add projectRegion Db client lookup logic
* feat(multiregion): add project region repositories and caching
* feat(multiRegion): db initialization and get project db client
* feat(docker-compose): add second db for regions testing
* feat(multiRegion): initialize region with pubs and subs working
* fix(multiRegion): get region client even if it was registered in another pod
* feat(workspaces): create workspace resolver split
* feat: update server region metadata
* feat(projects): rewrite project creation
* feat(multiRegion): getRegionDb
* fix(workspaces): get projects now can retur null
* feat(multiRegion): make local multi region DB-s work
* feat: set d efault workspace region
* CR changes
* tests
* feat(multiRegion): bind region properly
* fe update
* test fixes
* feat(multiRegion): automatically create aiven extras plugin
* ci(postgres): use published postgres with aiven extras
* fix(multiRegion): roll back the aiven extras migration, there is a better way
* tests fix
* fix(billing): we do not need to add a seat, if the workspace is on a plan, but has no sub
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2024-11-06 17:29:08 +01:00
Gergő Jedlicska
8e239ec744
feat(gatekeeper): feature access functions
2024-10-30 09:00:00 +01:00
Gergő Jedlicska
edc70b76bc
fix(gatekeeper): do not update subscription to canceled subs
2024-10-29 20:44:13 +01:00
Gergő Jedlicska
81c20dbdf3
feat(gatekeeper): manage subscription downscale
2024-10-29 20:17:19 +01:00
Gergő Jedlicska
c0808e5577
feat(gatekeeper): manage subscription downscale
2024-10-29 16:52:00 +01:00
Gergő Jedlicska
d6dad6609a
feat(gatekeeper): shedule subscription downscale
2024-10-28 18:58:13 +01:00
Gergő Jedlicska
81b923cf67
feat(gatekeeper): upsize subscription on workspace role change
2024-10-24 10:03:08 +02:00
Gergő Jedlicska
50fff10acd
feat(gatekeeper): handle cancelation and subscription updates
2024-10-22 23:17:22 +02:00
Gergő Jedlicska
ee3b67a3a9
feat(gatekeeper): handle existing checkout sessions, when trying to create a new one
2024-10-21 19:18:22 +02:00