Chuck Driesler
0ab53111a9
fix(sso): gatekeeper ( #3442 )
...
* feat(workspaces): add workspace sso feature flag
* feat(workspaceSso): wip validate sso
* feat(workspaces): validate and add sso provider to the workspace with user sso sessions
* feat(workspaces): validate and add sso provider to the workspace with user sso sessions
* WIP
* fix(sso): restructure to handle all branches at end of flow
* fix(sso): add and validate emails used for sso
* fix(sso): park progress
* chore(workspaces): review sso login/valdate
* fix(sso): adjust validate url
* chore(sso): auth header puzzle
* fix(sso): happy-path config
* chore(gql): gqlgen
* fix(sso): almost almost
* fix(sso): auth endpoint
* a lil more terse
* fix(sso): light at the end of the tunnel
* fix(sso): improve catch block error messages
* fix(sso): session lifespan => validUntil
* fix(sso): I think we've got it
* feat(sso): limited workspace values for public sso login
* fix(sso): use factory functions
* fix(sso): til decrypt is single-use
* fix(sso): correct usage of access codes
* fix(sso): use finalize middleware in all routes
* chore(sso): cheeky tweak
* fix(sso): move some types around
* fix(sso): stencil final shape I'm sleepy
* fix(sso): more factories more factories
* fix(sso): on to final boss of factories
* fix(sso): needs a haircut but she works
* fix(sso): init rest w function, not side-effects
* fix(sso): /authn => /sso
* chore(sso): errors
* chore(sso): test test test
* chore(sso): test all the corners
* feat(sso): list workspace sso memberships
* chore(sso): tests, expose in rest
* fix(sso): sketch active user auth
* fix(sso): expose search via gql
* fix(sso): active user session information
* chore(sso): sso session test utils
* chore(sso): test sso session repo/services
* chore(sso): gqlgen
* feat(sso): throw error on missing or expired sso session
* chore(sso): tests for SSO access protection
* fix(sso): use gatekeeper to protect sso access
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com >
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2024-11-06 16:29:49 +00: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
3352fc4327
Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/gatekeeperFunctions
2024-11-05 06:44:03 +01:00
Gergő Jedlicska
ee514dc7b9
test: fix flaky tests ( #3422 )
2024-10-31 09:04:49 +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
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
796b1c23ed
feat(gatekeeper): get workspace subscriptions, that are about to expire
2024-10-29 17:44:43 +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
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
81b923cf67
feat(gatekeeper): upsize subscription on workspace role change
2024-10-24 10:03:08 +02:00
Gergő Jedlicska
f905c8f428
fix(gatekeeper): eliminate stripe client import sideeffect 2
2024-10-23 08:29:23 +02:00
Gergő Jedlicska
07be0e6b50
fix(gatekeeper): eliminate stripe client import sideeffect
2024-10-23 08:27:31 +02:00
Gergő Jedlicska
4ee7c4bc3d
fix(gatekeeper): scope initialization
2024-10-22 23:36:46 +02:00
Gergő Jedlicska
50fff10acd
feat(gatekeeper): handle cancelation and subscription updates
2024-10-22 23:17:22 +02:00
Gergő Jedlicska
b9682577d7
feat(gatekeeper): add workspace plans gql api
2024-10-22 10:31:56 +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
Gergő Jedlicska
e9cdb7e970
feat(gatekeeper): cancel checkout session api
2024-10-21 18:13:58 +02:00
Gergő Jedlicska
66fc9ca511
feat(gatekeeper): fail fast if the environment is misconfigured for billing ( #3357 )
2024-10-21 16:53:09 +02:00
Gergő Jedlicska
ff84fe13b0
Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/web-2038-billing-graphql-api
2024-10-21 14:20:30 +02:00
Gergő Jedlicska
b7fd1208f0
fix(gatekeeper): fix billing router initialization ( #3349 )
2024-10-21 13:48:25 +02:00
Gergő Jedlicska
709c472a54
WIP billing gql api
2024-10-21 10:33:26 +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
Gergő Jedlicska
ecfb7a1f69
fix(gatekeeper): remove flaky test condition
2024-10-19 16:01:50 +02:00
Gergő Jedlicska
8e923692c5
feat(gatekeeper): add yearly billing cycle toggle
2024-10-19 15:30:59 +02:00
Gergő Jedlicska
4770aaf83f
test(gatekeeper): billing repository tests
2024-10-19 14:59:18 +02:00
Gergő Jedlicska
cf5cf4b9c0
feat(gatekeeper): move to knex based repositories
2024-10-19 14:58:02 +02:00
Gergő Jedlicska
81d09dd07c
feat(gatekeeper): make completeCheckout callback idempotent properly
2024-10-18 12:39:51 +02:00
Gergő Jedlicska
7bb99df3bf
test(gatekeeper): add checkout service tests
2024-10-18 12:03:51 +02:00
Gergő Jedlicska
9118f1aa33
feat(gatekeeper): subscriptionData parsing model
2024-10-17 14:35:19 +02:00
Gergő Jedlicska
2ba5e75474
chore(gatekeeper): cleanup before testing
2024-10-17 14:19:30 +02:00
Gergő Jedlicska
49128192de
feat(gatekeeper): require a license for billing
2024-10-17 12:11:22 +02:00
Gergő Jedlicska
e7bfa387e8
feat(gatekeeper): add checkout session completion webhook callback path
2024-10-17 07:31:34 +02:00
Gergő Jedlicska
6ae4b5d2da
feat(gatekeeper): add stripe client implementation
2024-10-17 07:30:31 +02:00
Gergő Jedlicska
d7d9bce769
feat(gatekeeper): complete checkout session service
2024-10-17 07:29:48 +02:00
Gergő Jedlicska
d307a3db89
feat(gatekeeper): add more errors
2024-10-17 07:04:03 +02:00
Gergő Jedlicska
403c99ca6c
feat(gatekeeper): add in memory repositories
2024-10-17 07:02:35 +02:00
Gergő Jedlicska
5a80cfbbb3
feat(gatekeeper): add productId to the subscription domain
2024-10-17 06:55:08 +02:00
Gergő Jedlicska
8559dfb059
chore(gatekeeper): add future todos
2024-10-17 06:52:39 +02:00
Gergő Jedlicska
76a4fa8fdd
feat(gatekeeper): add unlimited and academia plan types
2024-10-15 09:07:04 +02:00
Gergő Jedlicska
ed543c5ecf
wip(gatekeeper): checkout callbacks
2024-10-14 10:35:44 +02:00
Gergő Jedlicska
43c57c4225
feat(gatekeeper): verify stripe signature
2024-10-11 21:57:22 +02:00
Gergő Jedlicska
0a9e1343d1
feat(gatekeeper): add checkout session creation
2024-10-11 21:06:15 +02:00
Gergő Jedlicska
eb32874c57
feat(gatekeeper): add workspace pricing table domain
2024-10-11 07:38:12 +02:00
Gergő Jedlicska
f8053c6091
feat(gatekeeper): add gatekeeper module feature flag
2024-10-09 10:42:47 +02:00
Alessandro Magionami
0ac36af93e
Alessandro/web 1659 workspace limits ( #2733 )
...
* chore(workspaces): billing version limit graphql schema
* chore(workspaces): billing member role required
* chore(core): test helper for random string
* chore(core): test helpers
* chore(workspaces): workspaces billing version resolver
* chore(workspaces): rename version to versionsCount
2024-08-26 17:53:34 +02:00
Gergő Jedlicska
35d394222d
feat(gatekeeper): allow license bypass in testing envs ( #2663 )
2024-08-19 20:22:37 +02:00
Gergő Jedlicska
5818a44e62
Gatekeeper ( #2572 )
...
* feat(gatekeeper): initial license validation
* test(gatekeeper): add license token to tests
* chore(gatekeeper): cleanup
* chore(gatekeeper): hide from circleci
* feat(helm): load license token from secrets
* chore(circleci): remove unused env var
2024-08-13 11:04:40 +02:00