Commit Graph

280 Commits

Author SHA1 Message Date
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
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
Iain Sproat a1ee8a89a7 chore(server): graceful shutdown (#3125)
* chore(server): graceful shutdown
- stop() on the apollo server should be called

* chore(server): gracefully drain apollo server

* Allow grace period to be configured

* Terminus manages the readiness and liveness endpoints

* terminus is responsible for stopping the graphql server

* remove logging on shutdown

* Remove redundant parameter

* move healthchecks out of business modules to top-level directory
- terminus can only handle readiness check, not liveness
- app needs to return readiness handler, so that server terminus can use it

* fix tests

* Fix broken merge

* fix broken merge

* incorporate review comments

* fix invalid merge

* fix readinesscheck not being passed as parameter
2024-11-19 11:08:38 +01:00
Gergő Jedlicska c23da67313 fix(commits): add streamId to legacyCommitsQuery (#3512) 2024-11-19 10:46:07 +01:00
Gergő Jedlicska 73cc7e67d3 gergo/webhookRegions (#3459)
* feat(webhooks): multi region webhook resolver

* feat(webhooks): multi region webhook cleanup

* fix(webhooks): DI fixes

* feat(activitystream): region aware save activity

* feat(accessrequests): multi region

* feat(cli): allow multi region project and commit download

* feat(postgres): make docker postgres 0 day multi region ready

* feat(cli): allow multi region project and commit download properly

* fix(cross-server-sync): di fix

* feat(activitystream): non region aware activities, they are not project data

* fix(webhooks): triggers need to be included

* feat(stream/projectCreate): activity save is not needed any more, its all event based

* feat(multiRegion): get all registered db clients

* fix(regions): test equal in any order

* fix(projectDownload): need to await
2024-11-08 10:45:39 +01:00
Kristaps Fabians Geikins 69ff3864af feat(server): multi region support in dataloaders 2024-11-07 09:57:43 +02: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 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 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
Kristaps Fabians Geikins 11fec3222a cjs doesnt like knex default export 2024-10-28 11:35:20 +02:00
Alessandro Magionami 2cf9bee7e4 Merge pull request #3366 from specklesystems/alessandro/web-943-add-branch-deleted-activity
Activitystream IoC 4 addBranchDeletedActivity
2024-10-23 09:33:30 +02:00
Kristaps Fabians Geikins c90521f8d0 Merge pull request #3365 from specklesystems/alessandro/web-943-add-branch-updated-activity
Activitystream IoC 3 addBranchUpdatedActivity
2024-10-22 09:09:56 +01:00
Kristaps Fabians Geikins 88c714392c Merge pull request #3364 from specklesystems/alessandro/web-943-add-branch-created-activity
Activitystream IoC 2 addBranchCreatedActivity
2024-10-22 09:09:30 +01:00
Alessandro Magionami b701a3361c chore(activitystream): addBranchDeletedActivity refactor multiregion 2024-10-22 10:07:24 +02:00
Alessandro Magionami 282af83bd8 chore(activitystream): addBranchUpdatedActivity refactor multiregion 2024-10-22 09:53:36 +02:00
Alessandro Magionami a2e9693a6a chore(activitystream): addBranchCreatedActivity refactor multiregion 2024-10-22 09:52:47 +02:00
Kristaps Fabians Geikins 960fe33f69 chore(server): core IoC #96 - delete getObjects 2024-10-21 17:49:02 +03:00
Kristaps Fabians Geikins dee1479a7c chore(server): core IoC #95 - getObjectChildrenQueryFactory 2024-10-21 17:21:49 +03:00
Kristaps Fabians Geikins 7617c94622 chore(server): core IoC #94 - getObjectChildrenFactory 2024-10-18 17:08:09 +03:00
Kristaps Fabians Geikins 35ddd6501e chore(server): core IoC #93 - getObjectChildrenStreamFactory 2024-10-18 16:43:02 +03:00
Kristaps Fabians Geikins 4cf520be06 chore(server): core IoC #92 - getFormattedObjectFactory 2024-10-18 16:14:45 +03:00
Kristaps Fabians Geikins ae1b2b2631 cleanup 2024-10-18 16:14:01 +03:00
Kristaps Fabians Geikins eea31a2e93 chore(server): core IoC #91 - createObjectsFactory 2024-10-18 16:14:01 +03:00
Kristaps Fabians Geikins 3b7d53268e adjustmenttttt 2024-10-18 16:13:25 +03:00
Kristaps Fabians Geikins f33dcb0849 chore(server): core IoC #88 - createObjectFactory 2024-10-18 16:13:15 +03:00
Kristaps Fabians Geikins c0ab867e05 chore(server): core IoC #87 - getPaginatedStreamBranchesFactory 2024-10-18 16:12:58 +03:00
Kristaps Fabians Geikins c35fb98d20 chore(server): core IoC #86 - remaining commits.js service 2024-10-18 16:12:47 +03:00
Kristaps Fabians Geikins 8bd5980889 chore(server): core IoC #85 - legacyGetPaginatedStreamCommits 2024-10-17 14:22:10 +03:00
Kristaps Fabians Geikins 98f045662e chore(server): core IoC #84 - legacyGetPaginatedUserCommits(Page|TotalCount)Factory 2024-10-17 14:09:13 +03:00
Kristaps Fabians Geikins f27f289dc6 chore(server): core IoC #78 - getServerInfoFactory 2024-10-17 12:37:43 +03:00
Kristaps Fabians Geikins fe1997b86d chore(server): core IoC #76 - validateTokenFactory 2024-10-16 17:43:26 +03:00
Kristaps Fabians Geikins 8364267cd8 chore(server): core IoC #75 - revokeUserTokenByIdFactory 2024-10-16 17:26:35 +03:00
Kristaps Fabians Geikins f29042ebbb chore(server): core IoC #73 - getUserPersonalAccessTokensFactory 2024-10-16 17:18:13 +03:00
Kristaps Fabians Geikins da88f5925c chore(server): core IoC #72 - createPersonalAccessTokenFactory 2024-10-16 17:13:03 +03:00
Kristaps Fabians Geikins 8abc801bae chore(server): core IoC #71 - createAppTokenFactory 2024-10-16 16:59:54 +03:00
Kristaps Fabians Geikins 554b2fa386 chore(server): core IoC #66 - markUserAsVerifiedFactory 2024-10-16 12:03:19 +03:00
Kristaps Fabians Geikins 7350443d06 chore(server): core IoC #65 - adminUserListFactory 2024-10-16 11:36:20 +03:00
Alessandro Magionami b4bf1b917b chore(activitystream): addCommitDeletedActivity refactor multiregion (#3284) 2024-10-16 11:04:20 +03:00
Kristaps Fabians Geikins d75141eb69 chore(server): core IoC #65 - searchUsersFactory 2024-10-15 14:50:19 +03:00
Kristaps Fabians Geikins 06f30275ce chore(server): core IoC #64 - changeUserRoleFactory 2024-10-15 14:44:54 +03:00
Kristaps Fabians Geikins 86e8fd4e66 chore(server): core IoC #63 - getUserRoleFactory 2024-10-15 14:31:08 +03:00
Kristaps Fabians Geikins 766a189465 chore(server): core IoC #62 - deleteUserFactory 2024-10-15 14:22:06 +03:00
Kristaps Fabians Geikins 66d09808a8 chore(server): core IoC #61 - changePassword & validateUserPassword 2024-10-15 13:58:36 +03:00
Kristaps Fabians Geikins d40d2cb947 chore(server): core IoC #60 - updateUserAndNotifyFactory 2024-10-15 13:39:20 +03:00
Kristaps Fabians Geikins a0c8dd8142 chore(server): core IoC #59 - legacyGetPaginatedUsersCount rename fix 2024-10-15 13:28:38 +03:00
Kristaps Fabians Geikins abcbe0e2b8 chore(server): core IoC #58 - legacyGetUserByEmailFactory 2024-10-15 13:26:49 +03:00
Kristaps Fabians Geikins 781ee2cc2d chore(server): core IoC #57 - getUserByEmailFactory 2024-10-15 13:17:34 +03:00
Kristaps Fabians Geikins 00d2402a8e chore(server): core IoC #56 - findOrCreateUserFactory 2024-10-15 13:10:38 +03:00
Kristaps Fabians Geikins 573970fc6c chore(server): core IoC #55 - createUserFactory 2024-10-15 12:55:33 +03:00