Commit Graph

504 Commits

Author SHA1 Message Date
Chuck Driesler 9f83d1f74e feat(regions): trigger project move with job (#4010) 2025-03-07 09:18:12 +00:00
Alessandro Magionami 66ddb1eb34 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2774-upgrade-from-free-to-paid-plan 2025-03-05 19:29:44 +01:00
Alessandro Magionami 1e3d06c121 feat(gatekeeper): add new plans in graphql 2025-03-05 17:31:06 +01:00
Kristaps Fabians Geikins 954b1a9f11 feat: plan prices accurately read from Stripe (#4104)
* WIP prices + new caching utils

* cached workspace plan prices

* GQL API done

* integrated in frontend

* fixed missing FF

* CR fixes

* integration tests

* removed non-existant team yearly env var
2025-03-05 12:23:38 +02:00
Mike ad899a8fd7 Feat: Add isEmailsEnabled to serverInfo (#4109) 2025-03-04 15:54:06 +01:00
Iain Sproat 5e4a6c5635 fix(server/prometheus): ensure consistent Prometheus registry is used (#4106)
* fix(server/prometheus): ensure consistent Prometheus registry is used
- there was a conflicting dependency between Metrics initialization and Modules initialization; resolved by separating registry initialization from metrics initialization
- pass in the registry to prevent implicit dependency being broken
- when registering a metric, first attempt to remove any of existing metrics with same name to prevent errors
- to prevent sneaky uses of the implicit registry, replace default import with explicit import so it is clearer when prometheusClient.registry is used

* Add tests for registering metrics
2025-03-04 08:41:53 +00:00
Chuck Driesler 063750cac7 feat(workspaces): track last visited workspace and project (#4086)
* feat(workspaces): track last visited workspace and project

* fix(workspaces): some renaming

* fix(workspaces): appease ts

* fix(tests): repair meta tests
2025-03-03 22:35:01 +00:00
Iain Sproat 04f84c31f3 fix(server/automate): logger should have request context and request ID sent to execution engine (#4092)
* fix(server/automate): logger should have request context

* WIP - pass in request Id

* WIP

* fix(automate): better logging for automate processes

* chore(automate): slight log improvement

* fix(automate): just in case

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-02-28 18:22:00 +00:00
Chuck Driesler 3cc68bb0e2 feat(automate): use updated hybrid function search (#4085)
* fix(automate): use new function query for workspace functions

* fix(automate): include workspace resource claims in auth flow

* chore(automate): do not use btoa
2025-02-28 16:03:34 +00:00
Iain Sproat ce08e5e02d refactor(server): logging directory renamed to observability (#4077) 2025-02-28 08:43:54 +00:00
andrewwallacespeckle 8c69f22e27 feat: Update user tags in Mailchimp when user completes onboarding questions (#4000)
* Add new updateMailchimpMemberTags function and use it in FE

* Pass tag data from FE

* Plan > Use case

* move onboarding types to shared package

* Check newsletter consent

* Changes from PR

* GQL
2025-02-27 11:29:00 +00:00
Kristaps Fabians Geikins ec092fb042 chore: move common workspace plan/feature config to @speckle/shared (#4064)
fix: gqlgen regenerated
2025-02-27 11:18:30 +02:00
Mike 2ecb98146a Feat: prevent non work emails (#3993) 2025-02-26 10:55:02 +01:00
Alessandro Magionami a9dd835de9 feat(workspaces): team resolver for limited workspace (#4040) 2025-02-25 12:19:50 +01:00
Alessandro Magionami fd68c6ef2a feat(workspaces): user workspace join requests (#4023)
* feat(workspaces): user workspace join requests

* chore(workspaces): return limited workspace

* chore(workspaces): fix tests

* chore(workspaces): add index for userId

* chore(shared): fix totalcount on getpaginateditems

* chore(workspaces): add workspace core resolvers to throw specific error
2025-02-25 12:19:21 +01: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
Chuck Driesler 9cfa91eded fix(automate): defer showing header until tab query finishes (#4051) 2025-02-24 09:37:58 +00:00
Kristaps Fabians Geikins 1d2a594f0a chore: upgrade TS 5.2 -> 5.7.3 & ESLint to 9.20.1 (#4032)
* chore: upgrade TS 5.2 -> 5.7.3

* vite dts fix

* lint fix

* resolutions fix

* ui comp build fix

* precommit fix?

* latest eslint version

* autoloader fix

* undo unnecessary viewer change

* eslint fixes fe2 + trying disabled type linting

* lint fixes
2025-02-20 14:18:18 +02:00
Chuck Driesler 86c113b29b feat(regions): move project automations (#3925)
* feat(regions): repo functions for copying project branches and commits

* chore(regions): wire up move to resolver

* chore(regions): successful basic test of project region change

* fix(regions): sabrina carpenter please please please

* fix(regions): repair multiregion test setup

* chore(regions): appease ts

* chore(multiregion): update test multiregion config

* chore(multiregion): fix test docker config and test

* chore(multiregion): use transaction

* chore(multiregion): maybe this will work

* fix(multiregion): drop subs synchronously

* chore(multiregion): desperate test logs

* chore(multiregion): somehow that worked?

* chore(multiregion): add load-bearing log statement

* chore(multiregion): move services

* fix(multiregion): test drop waits

* chore(regions): fix import

* chore(regions): make test a bit more thorough for good measure

* fix(regions): move project objects

* chore(regions): add tests for object move

* feat(regions): move project automations

* chore(regions): add tests for moving automations

* chore(regions): more tests for moving automate data

* fix(regions): speed up inserts

* fix(regions): simplify postgres usage

* chore(regions): repair build

* fix(regions): improve queries

* chore(regions): again
2025-02-18 15:48:00 +00:00
Kristaps Fabians Geikins 4b7740eb17 Merge branch 'main' into fabians/web-2415-6 2025-02-17 15:15:52 +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 4dcfbb251b chore(server): moving out branch sub reporting to separate listeners 2025-02-17 13:56:02 +02:00
Kristaps Fabians Geikins 4278e20467 chore(server): refactor activityStream invocations - batch #3 - branches 2025-02-17 13:55:43 +02:00
Mike f376cfcc46 Fix: Always force email verification (#3990) 2025-02-15 08:30:57 +01:00
Chuck Driesler c382064585 feat(regions): move project branches and commits (#3843)
* feat(regions): repo functions for copying project branches and commits

* chore(regions): wire up move to resolver

* chore(regions): successful basic test of project region change

* fix(regions): sabrina carpenter please please please

* fix(regions): repair multiregion test setup

* chore(regions): appease ts

* chore(multiregion): update test multiregion config

* chore(multiregion): fix test docker config and test

* chore(multiregion): use transaction

* chore(multiregion): maybe this will work

* fix(multiregion): drop subs synchronously

* chore(multiregion): desperate test logs

* chore(multiregion): somehow that worked?

* chore(multiregion): add load-bearing log statement

* chore(multiregion): move services

* fix(multiregion): test drop waits

* chore(regions): fix import

* chore(regions): make test a bit more thorough for good measure

* fix(regions): speed up inserts

* fix(regions): ignore workspace conflict on move
2025-02-13 14:39:23 +00:00
andrewwallacespeckle 967eec9db4 Sanitize model names in server (#3970) 2025-02-12 16:50:02 +01: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
Iain Sproat ebc0f84c96 fix(server): previewUrl assumed project would always be found (#3947)
- adds guard against null project
2025-02-06 17:50:04 +00:00
Iain Sproat 0ce23be6f3 chore(logging): log messages related to a request should include request ID (#3945)
- this requires passing the request logger through to the method invoking the logger
2025-02-06 16:04:51 +00:00
Chuck Driesler 35b59ca4f2 chore(workspaces): drop defaultLogoIndex (#3898) 2025-01-28 08:56:13 +01:00
Alessandro Magionami 57751db6d7 fix(workspaces): make adminWorkspaceJoinRequests field nullable for non admin users (#3899) 2025-01-27 17:46:04 +01:00
Alessandro Magionami 276c3a761c fix(emails): add ff for new email verification flow (#3893)
* fix(emails): add ff for new email verification flow

* test(emails): disable test with ff off
2025-01-24 19:39:55 +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 9775c488a1 chore(server): moving out version sub reporting to separate listeners 2025-01-24 17:52:34 +02:00
Gergő Jedlicska a282220a72 chore(server): fix nullable type for model author (#3883)
* chore(server): fix nullable type for model author

* updated fe2 gql types

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-01-24 16:40:25 +01:00
Kristaps Fabians Geikins ac88c503e3 chore(server): refactor activityStream invocations - batch #4 - commits 2025-01-24 16:57:15 +02:00
Kristaps Fabians Geikins d9bdc54599 chore(server): moving out branch sub reporting to separate listeners 2025-01-24 16:49:55 +02:00
Alessandro Magionami 384cd116a4 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2488-create-email-verification-mutation 2025-01-24 14:34:47 +01:00
Kristaps Fabians Geikins b074a4a13a feat(server): greatly optimizing Branch.commits & Query.streams, when limit=0 (#3863)
* fix(server): optimize Branch.commits resolver

* feat(server): optimizing Query.streams a bit too

* fix(server): gql error req duplicate entries logged
2025-01-23 18:54:15 +01:00
Kristaps Fabians Geikins 8ff0ae91ca chore(server): refactor activityStream invocations - batch #3 - branches 2025-01-23 12:06:54 +02:00
Alessandro Magionami 7fbd32dd43 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2488-create-email-verification-mutation 2025-01-23 10:51:30 +01:00
Alessandro Magionami 3a197792b3 chore(workspaces): create id resolver for workspace join request 2025-01-21 17:03:23 +01:00
Alessandro Magionami cea2da2987 chore(emails): new email verification flow 2025-01-21 16:08:18 +01: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
Alessandro Magionami 7d23f5a04c Merge pull request #3836 from specklesystems/alessandro/web-2364-deny-workspace-join-request
Deny workspace join request
2025-01-20 11:02:33 +01:00
Kristaps Fabians Geikins 2e8863eb64 fix(server): dataloader batching being broken (#3838)
* fix(server): dataloader batching being broken

* feat(server): optimized stream collaborator retrieval

* test fix
2025-01-17 12:41:58 +02:00
Gergő Jedlicska 7b295ba408 gergo/web 2428 academia should be free business (#3842)
* feat(server): workspace shoul equal unpaid business

* feat(server): add free workspace plans

* feat(gatekeeper): rename plans to invoiced

* chore(gatekeeper): regen gql

* feat(gatekeeper): calculate workspace plan payment method

* fix(fe2): add missing workspace plans
2025-01-16 18:14:33 +01:00
Alessandro Magionami 8cd060f869 chore(workspaces): use commandFactory in deny workspace join request 2025-01-16 16:55:22 +01:00
Alessandro Magionami 6d0f08b7b5 feat(workspaces): approve join request (#3833)
* feat(workspaces): approve join request

* chore(workspaces): add missing dep to resolver call

* chore(workspaces): use commandFactory
2025-01-16 16:46:59 +01:00
Gergő Jedlicska 35bc6918cb gergo/web 2428 academia should be free business (#3831)
* feat(server): workspace shoul equal unpaid business

* feat(server): add free workspace plans

* feat(gatekeeper): rename plans to invoiced
2025-01-16 10:21:59 +01:00