Commit Graph

189 Commits

Author SHA1 Message Date
Daniel Gak Anagrov c7d97eb25c feat(activity): cronjob to backfill workspace seats, plans and subcriptions and project acl activity (#5027)
* feat: backfill as a scheduled execution
2025-07-14 16:28:04 +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 ba3d9ade22 feat(activity): moved project roles to activity (#5019)
* feat: moved project roles to activity
* fix: added previous project role filed on activity
* fix: remvoke does not get logged as an actvity for every project in a workspace when removed from workspace
* fix: on delete user account, emit also seat and project event

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-07-10 11:44:54 +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 506bf9a07a feat(stream_activity): add index on actionType for stream_activity (#4947) 2025-06-23 10:03:46 +02:00
Kristaps Fabians Geikins 9998ed2586 feat: personal project limits (#4759)
* base limits cleanup

* history limit tests

* canCreatePersonal & tests

* canInvite block

* WIP model check

* fix tests

* shared tests fix

* lodash import fix

* lint fix

* help update

* hopefully fixing test

* CR comment
2025-05-20 14:56:05 +03:00
Kristaps Fabians Geikins c6dcf18bdb feat(server): workspace project invite auto-accept (for existing wp members) (#4622)
* WIP ts

* DI fix & tests moved to TS

* auto-accept seems to work

* CR comments
2025-04-30 17:39:07 +03: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 5655b3e758 fix(metrics): pass registry in to modules (#4113)
- ensure metrics are added to the correct registry
2025-03-06 08:37:05 +00:00
Iain Sproat 5dbbe7f78a fix(server/types): GetUserActivity actionType is optional (#4093)
- https://github.com/specklesystems/speckle-server/blob/04f84c31f36da3d8eb828c7262a040e4c5ecee2e/packages/server/modules/activitystream/repositories/index.ts#L213
2025-03-04 21:13:43 +00:00
Iain Sproat 47556d68c7 chore(server/scheduled tasks): should log task name and unique task Id (#4094) 2025-03-03 15:12:11 +00:00
Iain Sproat ce08e5e02d refactor(server): logging directory renamed to observability (#4077) 2025-02-28 08:43:54 +00:00
Kristaps Fabians Geikins 6051917b59 chore(server): refactor activityStream invocations - batch #7 - streams (#4014)
* chore(server): refactor activityStream invocations - batch #7 - streams

* test fix

* more test fixes

* CR comment fix
2025-02-24 12:34:56 +02:00
Kristaps Fabians Geikins b4260a3885 minor adjustment 2025-02-17 15:23:25 +02:00
Kristaps Fabians Geikins 4b7740eb17 Merge branch 'main' into fabians/web-2415-6 2025-02-17 15:15:52 +02:00
Kristaps Fabians Geikins 6c5da56650 Merge branch 'main' into fabians/web-2415-5 2025-02-17 14:56:51 +02:00
Kristaps Fabians Geikins f51d632ef7 Merge branch 'main' into fabians/web-2415-4 2025-02-17 14:23:33 +02:00
Kristaps Fabians Geikins 4278e20467 chore(server): refactor activityStream invocations - batch #3 - branches 2025-02-17 13:55:43 +02:00
Kristaps Fabians Geikins 34b11cf8d0 Merge branch 'main' into fabians/web-2415-2 2025-02-17 13:50:18 +02:00
Gergő Jedlicska c4a6da410b feat(core): drop the closure table pls (#3900)
* feat(core): drop the closure table pls

* feat(core): remove closures feature flag

* feat(core): remove more closure stuff

* feat(core): only drop closure table if it exists
2025-02-07 14:06:53 +01:00
Kristaps Fabians Geikins 9b46747815 chore(server): refactor activityStream invocations - batch #6 - project invites 2025-01-24 18:35:21 +02:00
Kristaps Fabians Geikins b6871a61cc chore(server): refactor activityStream invocations - batch #5 - comments 2025-01-24 17:54:16 +02:00
Kristaps Fabians Geikins ac88c503e3 chore(server): refactor activityStream invocations - batch #4 - commits 2025-01-24 16:57:15 +02:00
Kristaps Fabians Geikins 8ff0ae91ca chore(server): refactor activityStream invocations - batch #3 - branches 2025-01-23 12:06:54 +02:00
Kristaps Fabians Geikins 90e94d9cd7 chore(server): refactor activityStream invocations - batch #2 - accessRequest 2025-01-22 15:41:45 +02:00
Kristaps Fabians Geikins a2bc9ffbcb chore(server): refactor activityStream invocations - batch #1 - user (#3845)
* chore(server): refactor activityStream invocations - batch #1 - user

* minor cleanup

* test fix + swap to TS

* move listeners to new loc
2025-01-21 09:48:02 +01:00
Kristaps Fabians Geikins 0b81f9979e chore(server): event bus refactor - access req emitter - batch #3 2025-01-13 11:03:58 +02:00
Kristaps Fabians Geikins f403d51330 replaced user event bus 2025-01-07 11:24:07 +02:00
Kristaps Fabians Geikins 7ce306569f got rid of projects emitter + added tests 2025-01-06 17:42:24 +02:00
Kristaps Fabians Geikins ab9e8bbb00 feat(server): ProjectVersionsUpdatedMessage.modelId always filled (#3754) 2025-01-06 10:37:54 +02:00
Kristaps Fabians Geikins 8d0cbad8b6 feat(server): multi region blob support (#3653)
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2024-12-10 09:05:18 +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 ef043ee234 gergo/web 2158 previews module multi region (#3492)
* feat(previews): multi region previews module

* feat(preview-service): talk multi region

* fix(preview-service): test helper await

* fix(preview-service): remove linting issue, this prob makes it worse
2024-11-19 16:35:39 +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 6038611974 feat(webhook-service): learn to speak multi region (#3473)
* feat(webhook-service): learn to speak multi region

* refactor(webhook-service): remove unnecesary factories

* docs(activities): brain dump

* fix(shared): need to add knex as a dev dep

* fix(shared): align dev dep
2024-11-11 17:10:29 +01:00
Gergő Jedlicska 153b1c3802 feat(version): require project id in version mutations 2024-11-11 09:57:22 +01:00
Gergő Jedlicska 1c19f67dd2 feat(models): support streamId, branchId in models 2024-11-11 06:09:53 +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
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 f690f1016a branchDeleted 2024-10-25 13:57:58 +03:00
Kristaps Fabians Geikins 64d2888506 branchUpdated sub 2024-10-25 13:55:26 +03:00
Kristaps Fabians Geikins cedc1beb6c branchCreated sub 2024-10-25 13:50:01 +03: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
Alessandro Magionami 8502ac5db4 chore(activitystream): add missing deps 2024-10-21 17:58:16 +02:00
Alessandro Magionami 59663a81f9 chore(activitystream): addReplyAddedActivity refactor multiregion 2024-10-21 17:52:09 +02:00
Alessandro Magionami 4b4963a75e chore(activitystream): addCommentArchivedActivity refactor multiregion (#3343) 2024-10-21 11:47:31 +03:00
Alessandro Magionami 8e794a78c0 Merge pull request #3340 from specklesystems/alessandro/web-943-add-comment-created-activity
Activitystream IoC 1 addCommentCreatedActivity
2024-10-21 10:46:02 +02:00
Alessandro Magionami 221904756d Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-943-add-comment-created-activity 2024-10-18 16:00:46 +02:00