Commit Graph

98 Commits

Author SHA1 Message Date
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 3e7e11b8a1 feat(gatekeeper): add error log on seat mismatch (#5004)
* feat: added a specific errors on downscale issues
2025-07-07 12:28:59 +02:00
Daniel Gak Anagrov 7de0229b76 fix: avoid workpaces to turn free when susbscription is present (#5015) 2025-07-01 13:08:24 +02: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 2e0dcade5c fix: removed duplicated event (#4981) 2025-06-25 09:18:19 +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
Gergő Jedlicska 01bb883bc4 fix(gatekeeper): add missing feature from access check api 2025-06-19 16:15:29 +02:00
Daniel Gak Anagrov 11948b40de feat(gatekeeper): track seat updates (#4865) 2025-06-05 12:41:05 +02:00
Gergő Jedlicska 72ecb9197b feat(gatekeeper): intoduce the enterprise plan (#4882)
* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* test(shared): fix plan tests with enterprise case

* Small change to format plan name

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-06-05 11:07:59 +02:00
Daniel Gak Anagrov 3e9f87177d feat(workspaces): Delete, Cancel, CancelSheduled mixpanel BE events 2025-05-29 11:15:06 +02:00
Daniel Gak Anagrov 0b04719834 feat: moved workspaces Create and Upgrade mixpanel events to backend (#4816) 2025-05-28 13:30:55 +02:00
Daniel Gak Anagrov 06e19fbd50 feat(gatekeeper): add updatedAt field to workspace plans (#4786)
* feat(gatekeeper): add updatedAt field to workspace plans

* fix: lint error

* fix: added updatedAt test

* fix: shared test
2025-05-26 11:35:53 +02:00
Iain Sproat 853aa6f1e9 Merge pull request #4626 from specklesystems/iain/web-3198-payment-failed-leads-to-404-on-missing-subscription
fix(server/billing): better handle incomplete checkout
2025-05-19 18:07:57 +01:00
Kristaps Fabians Geikins 5ff030224b fix(server): fallback to viewer if no seat found (#4748) 2025-05-15 12:04:56 +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
Iain Sproat bdd902a578 fix(server/billing): better handle incomplete checkout 2025-04-29 11:59:21 +01:00
Iain Sproat bcd99b634e Merge branch 'main' into iain/disable-plan-migration-scheduler 2025-04-23 12:17:50 +01:00
Kristaps Fabians Geikins 11e1fcd85c fix(server): workspace migration failing for userless workspaces (#4569) 2025-04-23 13:14:02 +03:00
Chuck Driesler 968859e061 fix(billing): update db subcription expiry date on upgrade (#4544) 2025-04-22 17:15:15 +01:00
Iain Sproat 920099c39f chore(readable code): use TIME_MS for readable durations
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00
Iain Sproat dc6824f839 chore(server/migrations): disable workspace plan migrations 2025-04-17 16:46:49 +01:00
Kristaps Fabians Geikins 0cc19dbdf5 fix(fe2): not being able to remove member from workspace (#4468)
* fix(fe2): not being able to remove member from workspace

* minor comment

* withTransaction refactor
2025-04-17 10:44:55 +03:00
Gergő Jedlicska c33052e697 fix(gatekeeper): accept workspace project invite fixes (#4426)
* fix(gatekeeper): accept workspace project invite fixes

* chore(gatekeeper): remove old subscription event handler
2025-04-17 05:21:23 +01:00
Iain Sproat 225af5d251 fix log reference 2025-04-16 12:57:13 +01:00
Iain Sproat b0bdeb9768 chore(logging): improve logs & error messages for workspace migration 2025-04-16 12:52:03 +01:00
Gergő Jedlicska 30e39ccb01 fix(gatekeeper): fix subscription upgrades (#4411) 2025-04-15 08:55:33 +02:00
Gergő Jedlicska bf454bc003 fix(gatekeeper): fix yearly upgrade not working (#4393) 2025-04-14 06:24:20 +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
Gergő Jedlicska 5fce827ad7 feat(gatekeeper): calculate available seats from purchased and used (#4362) 2025-04-09 19:51:02 +02:00
Gergő Jedlicska 4a7e8ae5f4 temp disable workspace plan migrations (#4349)
* 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

* WIP workspace migration

* feat(gatekeeper): migrate old workspace plans to new

* feat(gatekeeper): add more logs to plan migrations

* fix(ci): do not remove the stripe context

* fix(gatekeeper): handle migration errors

* fix(gatekeeper): temp disabling migrations until they can be fixed
2025-04-08 16:58:22 +02:00
Gergő Jedlicska f217f5b17f Gergo/web 2930 workspace migration script (#4333)
* 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

* WIP workspace migration

* feat(gatekeeper): migrate old workspace plans to new

* feat(gatekeeper): add more logs to plan migrations

* fix(ci): do not remove the stripe context

* fix(gatekeeper): handle migration errors
2025-04-08 16:00:38 +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
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 f433e3016c chore(workspaces): fix build 2025-03-26 09:36:42 +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 ddae24eedf chore(workspaces): add test and make product selection more robust 2025-03-25 17:40:09 +01:00
Alessandro Magionami 194a1fe607 feat(gatekeeper): downscale new plans 2025-03-20 16:29:32 +01: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
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