Commit Graph

223 Commits

Author SHA1 Message Date
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
Chuck Driesler fd5f316af0 fix(automate): automate module multi region (#3531)
* refactor(automate): logs api can get the projectId from the path

* fix(automate): multiregion gql resolvers

* fix(automate): multiregion event listeners

* fix(automate): drop automationCount

* fix(automate): multiregion run status

* fix(automate): correctness

* fix(automate): actually finish event listeners

* chore(automate): fix tests fix tests

* fix(automate): fix tests but make it multiregion flavor

* fix(automate): logs endpoint

* chore(automate): globalDb to db

* fix(automate): inject projectid correctly

* fix(automate): debug log fetch failure

* chore(automate): fix tests for new message

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-11-27 15:26:09 +00:00
Kristaps Fabians Geikins a90bc3a1ed fix(fe2): workspace region settings broken if non-admin + Workspace.subscription errors (#3567)
* regions fix

* skip logging subscription error

* added default region set mp track

* removed no longer necessary test
2024-11-27 16:42:58 +02:00
andrewwallacespeckle b4ecb30789 fix(fe2): Update delete sso provider composable (#3568)
* Update delete composable. Check role in Wrapper

* Use CommonCard

* Tooltip for non-admin users
2024-11-27 14:33:26 +00:00
andrewwallacespeckle 7a652fd780 feat(fe2): Update isSsoAuthenticated composable (#3566)
* Update isSsoAuthenticated composable

* remove session id

* Update graphql.ts
2024-11-27 14:19:25 +00:00
Kristaps Fabians Geikins 1800dbbdbd feat(server): improved subscription testing DX + tests for common subs + new subs (#3554)
* userProjectsUpdated.added test

* multi region support

* userStreamAdded

* commit subs tested

* fix for proj workspace assignment

* undo commitHelper main changes

* disable all ffs mode

* createTestWorkspace support when workspaces arent enabled

* project create fix

* workspace projects updated subscription

* WIP new workspace sub

* updated workspaceCreated

* updated workspaceUpdated

* BE for workspace updated sub

* workspace updated sub

* ts err fix
2024-11-27 15:41:04 +02: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
Mike afb0cf353f Feat: Disable SSO if not in plan (#3547) 2024-11-26 12:46:14 +01:00
Kristaps Fabians Geikins 35819f4756 feat(fe2): updated workspace data residency settings (#3543)
* WIPP

* remaining shii
2024-11-22 19:49:59 +01:00
Gergő Jedlicska 01b222ced8 gergo/web 2155 gendo module multi region (#3528)
* fix(workspaces): allow workspace delete for paid workspaces

* feat(gendo): multi region gendo with new api integration and limits

* feat(gendo): user credits

* feat: adds limits to gendo panel, and terms and conditions link

* fix: reworks setting back camera view

* feat(gendo): webhook signature verification

* fix(gendo): nullability

* test(blobstorage): fix test dependency injection

---------

Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2024-11-22 16:43:31 +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
Mike a37a7fc88a Fix: Invite banners borders (#3539) 2024-11-21 15:32:13 +01:00
andrewwallacespeckle d3931f1855 feat(fe2): Frontend SSO Integration (#3464)
* Readd work from old branch

* Improved Login.vue

* Replace watch with onResult

* Server: Error improvement

* FE Middleware

* Update style

* Delete Sso. Mixpanel events

* Updates

* Improved loading state

* Invites. Register sso page

* Middleware improvements. Session error no logout

* Changes from deisgns

* Swap button to LayoutMenu

* Improve middleware

* Remove typo

* Fix errormessage

* Remove edit functionality

* New composable file for sso

* Improved names for composables. Tidyups

* Reactive errors

* Reorder Login.vue

* Improved Typeguard

* Enum

* Comments from Mike

* Add error toast

* Remove FormButton from LoginButtonBase

* Use linkComponent prop

* Move workspace select to new component

* Fragmentation

* Fix loading useFetch

* use WorkspaceAvatar

* Feature flag sso button

* Update fragment name

* Skip middleware during auth flow

* Add rules to Workspace Selector

* Reactive useWorkspacePublicSsoCheck

* AuthRegisterNewsletter types

* v-bind on Select

* Fragment WrapperSecurity

* Remove useForm from Form.vue

* Reactive values in composables

* Prevent infinite loading when no invite found

* useWorkspaceSsoValidation maybeRef

* Added comment to requireSsoEnabled

* Bugfix

* Update Button.vue

* Fix form

* Update valid model middleware

* Update LoginButtonBase.vue

* NewsletterConset ref

* use setFieldValue

* Update Login.vue

* Swap mayberef to ref

* Comments from PR

* Changes from call with Fabs

* Fix session-error bug

* Fix circleci

* Small fix to index
2024-11-21 12:50:57 +00:00
Mike a0fb2edc2b Feat: Add mobile pricing plan (#3509) 2024-11-20 13:10:36 +01:00
Mike 8c8f3d8a90 Added billig mixpanel events (#3521) 2024-11-20 09:05:42 +01:00
Mike 065644b31d Fix: Remove remaining billing query (#3517)
* Fix: Remove remaining billing query

* fix types
2024-11-19 18:42:18 +01:00
Alessandro Magionami 146060355f Alessandro/web 2161 commits (#3511)
* chore(multiregion): commits resolvers multiregion

* chore(multiregion): fix tests
2024-11-19 16:00:45 +01:00
Kristaps Fabians Geikins 42db2f6b82 feat(server): comments module multiregion support (#3493)
* prepwork

* more prep for testing

* tests/linting seems fine

* a couple of query fixes

* fix up notifications for multiregion

* test fixes?

* wal_level issue fix?

* fileupload test fix

* anotha test fix

* undo unnecessary changes

* streamActivity -> main DB
2024-11-19 12:15:43 +02:00
Mike 32fed39fb1 Feat: Update billing summary/add pricing table (#3506) 2024-11-18 14:47:48 +01:00
Chuck Driesler 566bec59a5 Revert "fix(automate): drop specklecon function templates (#3503)" (#3504)
This reverts commit adeb529826.
2024-11-16 19:57:04 +00:00
Mike 423350eb64 Feat: Add cancel billing sessions, billing alerts, assume no plan is trial plan (#3467) 2024-11-16 20:33:03 +01:00
Chuck Driesler adeb529826 fix(automate): drop specklecon function templates (#3503) 2024-11-16 13:06:51 +00:00
Chuck Driesler be08246d4d SpeckleCon Templates (#3497)
* fix(specklecon): add specklecon function templates

* fix(specklecon): more templates

* Update executionEngine.ts

* Update functionManagement.ts
2024-11-14 14:47:51 +00:00
Chuck Driesler 4159a2277a fix(specklecon): add specklecon function templates (#3491) 2024-11-13 16:13:02 +01:00
Gergő Jedlicska ebce930b9c feat(frontend2): pass projectId props where needed 2024-11-11 09:58:07 +01:00
Mike 5260111f8c Feat: Add billing summary (#3456)
* Feat: Add billing summary

* Update linting

* Fix workspacePricingPlanInformation include info object

* Fix typing

* Cleanup

* Update seat prices

* Fix casing

* Remove old billing logic
2024-11-08 11:28:23 +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
Kristaps Fabians Geikins 1c0482b48a feat: update server region metadata (#3433) 2024-11-05 13:29:51 +01:00
Chuck Driesler b195df37d6 feat(sso): active user sso information (#3432)
* 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

* fix(sso): simplify gql resolver structure

* chore(sso): gqlgen

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-11-05 12:27:46 +00:00
Mike 693f751e38 Feat: Remove version limit counters (#3424) 2024-11-01 12:19:19 +01:00
Chuck Driesler e6e65a2f7d feat(sso): list sso associations by user email (#3420)
* 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): expose search via gql

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-11-01 11:27:12 +01:00
Kristaps Fabians Geikins 5df716bf1c feat: add & list server regions (#3423)
* WIP create modal

* babababa

* create dialog looks ok

* FE largely there

* workss

* cleanup

* fixed up test plumbing to avoid deadlocks and simplify GQL calls

* test fix

* added all tests

* CI fix
2024-10-31 16:08:50 +01:00
Gergő Jedlicska 3184855aa7 gergo/checkoutGqlResolver (#3405)
* feat(gatekeeper): add all plan statuses

* chore(gatekeeper): gqlgen
2024-10-28 18:10:31 +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
Kristaps Fabians Geikins 6d53308fd8 chore(server): gendo IoC #1 - prep/cleanup before getting started 2024-10-24 15:39:41 +03:00
Chuck Driesler dc9519f141 fix(workspaces): emit slug with discoverable workspaces (#3361)
* fix(workspaces): emit slug with discoverable workspaces

* chore(workspaces): gql lint
2024-10-23 09:50:08 +01: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
Kristaps Fabians Geikins 5016fad919 feat(server): make Project.version query throw if version not found (#3336) 2024-10-18 15:32:58 +03:00
andrewwallacespeckle 922f6a2b5b fix(fe2): Add Validation for Slugs (#3255)
* Don't close dialog on invalid slug

* Custom error message on textInput

* Query backend to validate slug

* Updated loading spinner

* Update to error in Create Dialog

* Add to edit. Debounce input

* GQL

* Update CreateDialog.vue

* Update Edit Dialog

* Fix typo

* Update reset to avoid error on submit

* Temporary replacement until we swap to WebFlow API

* Update Icon.vue

* Fix build!
2024-10-17 14:41:31 +01:00
andrewwallacespeckle efaa6970cd Remove Banners component, have all invites in same location (#3304) 2024-10-16 17:22:18 +01:00
Iain Sproat ecab655719 chore(fe2): update graphql serverinfo to use new configuration object (#2741)
* feat(graphql/serverinfo): provide maximum object size in bytes

* Places config values in a ServerConfiguration object
- updates blobstorage to use ServerConfiguration, while retaining backwards compatibility

* chore(fe2): update graphql serverinfo to use new configuration object

* Update gqlgen and remaining changes
2024-10-15 13:52:43 +01:00
andrewwallacespeckle 0c3ce07146 feat(fe2): Show model and version count in move projects to workspace dialog (#3240)
* Show model/version count in moveprojectsdialog. Update copy

* Add truncate

* Add truncate

* Change copy and text styling

* Add model and version count to fragment

* Fix gql

---------

Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2024-10-11 14:53:03 +01:00
Mike acf38e7c81 Fix: Re-enable count on member settings (#3247) 2024-10-11 14:38:29 +02:00
Mike 1fba35a7de Fix: Various bugfixes (#3245) 2024-10-10 23:54:08 +02:00
andrewwallacespeckle 95b7ec51d1 fix(fe2): Use workspace slug for navigate-on-success and copyWorkspaceLink (#3236)
* Fix navigate on success on workspace creations

* Update Workspace ID to Slugs

* Navigate to workspace home on deletion of workspace project

* Revert "Navigate to workspace home on deletion of workspace project"

This reverts commit fab0d3625a4d2842245e817343e2631d332ea39e.
2024-10-10 16:40:28 +01:00
andrewwallacespeckle bd31605183 feat(fe2): Redirect to workspace home on deletion of workspace project (#3238)
* Fix navigate on success on workspace creations

* Update Workspace ID to Slugs

* Navigate to workspace home on deletion of workspace project

* Revert changes from other branch
2024-10-10 16:40:09 +01:00
Mike df7a5ea2f2 Feat: add count to server members table (#3230) 2024-10-10 17:27:37 +02:00
Mike f2ba2dd084 Feat: Add SSO settings (#3186) 2024-10-10 16:07:14 +02:00
Mike 2005067a6a Feat: Add role descriptions to select inputs (#3217) 2024-10-10 15:26:14 +02:00