Gergő Jedlicska
6982023dca
feat(gatekeeper): add per workspace feature flags ( #5303 )
...
* feat(gatekeeper): add per workspace feature flags
* feat(workspaces): add admin api for granting and removing access to
workspace features
* fix(workspaces): use the correct constant name
* fix(workspaces): more test type fixes
* fix(shared): fix tests and types
* fix(workspaces): properly use exhaustive switch statement
* fix(workspaces): add new workspace plan feature to switch
* fix(workspaces): use regular integer, its fine for now...
* fix(workspaces): feature flag retention post checkout
* fix(gatekeeper): fix upsert plan tests
2025-08-26 10:23:02 +01:00
Kristaps Fabians Geikins
4b06f42db7
chore(server): run TS files directly (no compilation) ( #5134 )
...
* sort of works
* type fixes
* added option to run old way too
2025-07-23 11:20:40 +02: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
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
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
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
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
Alessandro Magionami
800547309a
chore(workspaces): create table helper for subscriptions table
2025-03-24 15:42:54 +01:00
Alessandro Magionami
194a1fe607
feat(gatekeeper): downscale new plans
2025-03-20 16:29:32 +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
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
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
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
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
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
da7f0dda0e
gergo/web 2047 user joins the workspace event ( #3412 )
...
* feat(gatekeeper): add gatekeeper module feature flag
* feat(gatekeeper): add workspace pricing table domain
* feat(gatekeeper): add checkout session creation
* feat(gatekeeper): verify stripe signature
* wip(gatekeeper): checkout callbacks
* feat(gatekeeper): add unlimited and academia plan types
* refactor(envHelper): getStringFromEnv helper
* chore(gatekeeper): add future todos
* feat(gatekeeper): add productId to the subscription domain
* feat(gatekeeper): add in memory repositories
* feat(gatekeeper): add more errors
* feat(gatekeeper): complete checkout session service
* feat(gatekeeper): add stripe client implementation
* feat(gatekeeper): add checkout session completion webhook callback path
* feat(gendo): fix not needing env vars if gendo module is not enabled
* feat(gatekeeper): require a license for billing
* chore(gatekeeper): cleanup before testing
* feat(gatekeeper): subscriptionData parsing model
* ci: add billing integration and gatekeeper modules to test config
* test(gatekeeper): add checkout service tests
* feat(gatekeeper): make completeCheckout callback idempotent properly
* feat(gatekeeper): move to knex based repositories
* test(gatekeeper): billing repository tests
* feat(gatekeeper): add yearly billing cycle toggle
* feat(ci): add stripe integration context to test job
* feat(billingPage): conditionally render the checkout CTAs
* fix(gatekeeper): remove flaky test condition
* feat(helm): add billing integration feature flag
* WIP billing gql api
* feat(gatekeeper): cancel checkout session api
* feat(gatekeeper): handle existing checkout sessions, when trying to create a new one
* feat(gatekeeper): add workspace plans gql api
* feat(gatekeeper): handle cancelation and subscription updates
* fix(gatekeeper): scope initialization
* fix(gatekeeper): eliminate stripe client import sideeffect
* fix(gatekeeper): eliminate stripe client import sideeffect 2
* feat(gatekeeper): upsize subscription on workspace role change
* feat(shared): add command pattern implementation
* refactor(eventBus): remove return capabilities from the event bus
* refactor(workspaces): use new commandFactory in workspace resolver
* feat(core): facelift taskLock
* feat(gatekeeper): shedule subscription downscale
* feat(gatekeeper): manage subscription downscale
* feat(gatekeeper): get workspace subscriptions, that are about to expire
* feat(gatekeeper): manage subscription downscale
* fix(gatekeeper): do not update subscription to canceled subs
* ci: bump postgres and max connections
* feat(workspaces): fix command factory event bugs
2024-10-30 15:51:40 +01:00
Gergő Jedlicska
af3857a209
gergo/web 2038 billing graphql api ( #3379 )
...
* feat(gatekeeper): add gatekeeper module feature flag
* feat(gatekeeper): add workspace pricing table domain
* feat(gatekeeper): add checkout session creation
* feat(gatekeeper): verify stripe signature
* wip(gatekeeper): checkout callbacks
* feat(gatekeeper): add unlimited and academia plan types
* refactor(envHelper): getStringFromEnv helper
* chore(gatekeeper): add future todos
* feat(gatekeeper): add productId to the subscription domain
* feat(gatekeeper): add in memory repositories
* feat(gatekeeper): add more errors
* feat(gatekeeper): complete checkout session service
* feat(gatekeeper): add stripe client implementation
* feat(gatekeeper): add checkout session completion webhook callback path
* feat(gendo): fix not needing env vars if gendo module is not enabled
* feat(gatekeeper): require a license for billing
* chore(gatekeeper): cleanup before testing
* feat(gatekeeper): subscriptionData parsing model
* ci: add billing integration and gatekeeper modules to test config
* test(gatekeeper): add checkout service tests
* feat(gatekeeper): make completeCheckout callback idempotent properly
* feat(gatekeeper): move to knex based repositories
* test(gatekeeper): billing repository tests
* feat(gatekeeper): add yearly billing cycle toggle
* feat(ci): add stripe integration context to test job
* feat(billingPage): conditionally render the checkout CTAs
* fix(gatekeeper): remove flaky test condition
* feat(helm): add billing integration feature flag
* WIP billing gql api
* feat(gatekeeper): cancel checkout session api
* feat(gatekeeper): handle existing checkout sessions, when trying to create a new one
* feat(gatekeeper): add workspace plans gql api
* feat(gatekeeper): handle cancelation and subscription updates
* fix(gatekeeper): scope initialization
* fix(gatekeeper): eliminate stripe client import sideeffect
* fix(gatekeeper): eliminate stripe client import sideeffect 2
* fix(mainConstants): fitler gatekeeper scopes with feature flag
2024-10-25 10:46:09 +02:00
Gergő Jedlicska
8cba7eb6f7
gergo/web 1968 add features list ( #3332 )
...
* feat(gatekeeper): add gatekeeper module feature flag
* feat(gatekeeper): add workspace pricing table domain
* feat(gatekeeper): add checkout session creation
* feat(gatekeeper): verify stripe signature
* wip(gatekeeper): checkout callbacks
* feat(gatekeeper): add unlimited and academia plan types
* refactor(envHelper): getStringFromEnv helper
* chore(gatekeeper): add future todos
* feat(gatekeeper): add productId to the subscription domain
* feat(gatekeeper): add in memory repositories
* feat(gatekeeper): add more errors
* feat(gatekeeper): complete checkout session service
* feat(gatekeeper): add stripe client implementation
* feat(gatekeeper): add checkout session completion webhook callback path
* feat(gendo): fix not needing env vars if gendo module is not enabled
* feat(gatekeeper): require a license for billing
* chore(gatekeeper): cleanup before testing
* feat(gatekeeper): subscriptionData parsing model
* ci: add billing integration and gatekeeper modules to test config
* test(gatekeeper): add checkout service tests
* feat(gatekeeper): make completeCheckout callback idempotent properly
* feat(gatekeeper): move to knex based repositories
* test(gatekeeper): billing repository tests
* feat(gatekeeper): add yearly billing cycle toggle
* feat(ci): add stripe integration context to test job
* feat(billingPage): conditionally render the checkout CTAs
* fix(gatekeeper): remove flaky test condition
* feat(helm): add billing integration feature flag
2024-10-20 15:40:31 +02:00