Commit Graph

147 Commits

Author SHA1 Message Date
Gergő Jedlicska f501cc4ad5 gergo/web 2888 workspace project cancreate (#4294)
* WIP can create project

* WIP can create project more work

* complete body, stencil tests

* feat(shared): move workspace plan types into shared

* test progress wip

* feat(shared): add more logic to canCreateWorkspaceProject

* a few more tests, as a treat

* chore(authz): round out tests

* fixed loaders, new GQL checks, dataLoaders in auth loaders

* fix(authz): get workspace limits loader

* chore(authz): update loaders

* frontend fixed up to snuff

* fix(authz): fix workspace plans for tests

* fix(authz): classic

* fix(authz): 0 counts

---------

Co-authored-by: Chuck Driesler <chuck@speckle.systems>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-04-01 16:38:20 +01:00
Gergő Jedlicska a523765524 fix(shared): workspace sso fragment must be able to load limited workspace data (#4281)
* fix(shared): workspace sso fragment must be able to load limited workspace data

* fix(shared): workspace loader already has the sso error deatails needed
2025-03-28 14:25:45 +01:00
Jedd Morgan 468eaccdfa feat(fileimport-service): Make .NET parser default (#4272)
* first pass removing the FF

* legacyimporter

* removed unused import
2025-03-27 18:24:04 +00:00
Kristaps Fabians Geikins c54d15fd93 feat: authz frontend foundation + reworked errors (#4275)
* feat: authz frontend foundation + reworked errors

* lint fixes

* test fix

* fixed noCache() util
2025-03-27 16:13:35 +02:00
Mike 298e379791 Feat: Implement updated project collaborators page (#4274) 2025-03-27 12:20:00 +01:00
Gergő Jedlicska 4c28697d0c feat(shared): rework policy internals to work with loader errors in checks and policy fragments (#4276)
* feat(shared): rework policy internals to work with loader errors in checks and policy fragments

* fix(server): auth reintegration
2025-03-27 11:30:54 +01:00
Kristaps Fabians Geikins a6a4ceee86 feat: true-myth result structures & other auth policy improvements (#4262)
* fixing up typing

* better dynamic loader mechanism

* buildReqLoaders cleanup

* added caching to loaders

* ensuring all loaders are async

* fe2 plugins error handling fix

* feat(shared): true-myth result structures & other auth policy improvements

* moving workspaceCore loaders to correct place
2025-03-25 17:49:02 +01:00
Gergő Jedlicska b7656c1a13 tests(shared/authz): (#4250)
* test(shared): add more tests to auth policies

* test(shared): add more tests to auth policies

* chore(authz): fix export

* chore(authz): test env fix

* chore(authz): more test fixes

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-03-24 16:03:22 +01:00
andrewwallacespeckle 5329d804b0 Merge branch 'main' into andrew/web-2567-update-members-and-guests-settings-pages 2025-03-24 09:43:09 +00:00
Mike 751aece587 Fix: Various pricing plan fixes (#4244) 2025-03-21 21:49:12 +01:00
Gergő Jedlicska 968d2f2520 auth/lib (#4242)
* wip

* wip

* feat(authz): wip policy shape

* wip

* fix(authz): canReadProject with latest pattern

* wip

* feat(shared): simplify authz checks and policies

* feat(shared): port role weights into shared

* test(shared): some more tests for authz

* test(shared): more query project tests

* typo!

* feat(shared): ff loading refinements

* feat(shared): example authorization policy integration

* authz loaders init

* chore(authz): naming etc

* wip

* fix(authz): authz error objects

Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com>

* fix(authz): use correct role weights

* chore(authz): use codes from errors in tests

* chore(authz): wow

* chore(authz): fix more tests, add more tests

* chore(authz): fix some tests, add some tests (again)

* fix(authz): fix tests again

* fix(server): you need to await !!!! otherwise it crashes the server.

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com>
2025-03-21 16:37:36 +01:00
andrewwallacespeckle 46020ea8b7 Merge branch 'main' into andrew/web-2567-update-members-and-guests-settings-pages 2025-03-21 15:18:23 +00:00
Chuck Driesler 66da283a79 Revert "feat(authz): shared authz pipeline (#4151)" (#4241)
This reverts commit cb8aa31b66.
2025-03-21 15:41:17 +01:00
andrewwallacespeckle 6d1587c4da Merge branch 'main' into andrew/web-2567-update-members-and-guests-settings-pages 2025-03-21 14:22:07 +00:00
andrewwallacespeckle 532e0edb57 Comments from PR 2025-03-21 13:57:25 +00:00
Chuck Driesler cb8aa31b66 feat(authz): shared authz pipeline (#4151)
* wip

* wip

* feat(authz): wip policy shape

* wip

* fix(authz): canReadProject with latest pattern

* wip

* feat(shared): simplify authz checks and policies

* feat(shared): port role weights into shared

* test(shared): some more tests for authz

* test(shared): more query project tests

* typo!

* feat(shared): ff loading refinements

* feat(shared): example authorization policy integration

* authz loaders init

* chore(authz): naming etc

* wip

* fix(authz): authz error objects

Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com>

* fix(authz): use correct role weights

* chore(authz): use codes from errors in tests

* chore(authz): wow

* chore(authz): fix more tests, add more tests

* chore(authz): fix some tests, add some tests (again)

* fix(authz): fix tests again

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Gergő Jedlicska <gjedlicska@users.noreply.github.com>
2025-03-21 14:45:36 +01:00
Iain Sproat 91c61682cb Include punctuation 2025-03-12 11:51:32 +00:00
Iain Sproat 7d179845a3 incorporate PR comments 2025-03-12 11:50:21 +00:00
Iain Sproat 0ac69bc54b fix(shared): ensureError should not bury original message
- if 'e', the original cause, is not an Error, it is buried by the fallback message.
- this PR ensures that the original cause is included in the error message
2025-03-12 11:31:25 +00:00
Iain Sproat e9a90717a4 Observe load and render times in metrics
- makes new durations optional (so requests in flight aren't dropped during deployment)
- Adds durations as a label to existing metric
- Attempt to produce durations in error cases (so we can see long load times etc..)
2025-03-11 12:56:21 +00:00
Gergő Jedlicska 3fc61c2dbd feat(preview-service): add load and render duration calculation to preview service 2025-03-11 12:59:50 +01:00
andrewwallacespeckle 4699c99c8d Update labels of Onboarding Plans to align with marketing site (#4138) 2025-03-07 15:50:33 +00:00
Gergő Jedlicska 61609de97e gergo/previews (#3765)
* feat(preview-generator): add new preview generator webapp

* wip(preview-service): reworking the preview service backend

* feat(previews): logging

* feat(preview-service): streamline payloads

* fix(preview-service): do not log the full payload

* feat(preview-service): build new preview service

* feat(preview-service): add separate response queue

* feat(previews): integrate preview queues with the server

* feat(previews): use module alias

* chore(previews): remove old preview service code

* feat(previews): log stuff on job statuses

* fix(previews): add missing deps and scripts

* fix(previews): package deps fix

* fix(server): moar typing fixes

* Metrics related to jobs: total count, request failures, response errors & durations

* duration should include unit.
- histogram metric should be summary
- error responses include duration in seconds
- attempt to remove metric before adding it (prevent errors with duplicate metrics)

* fix(server, frontend): some ts fixes

* fixes

* fix(frontend): remove unneeded ts-expect-error

* chore(preview-service): eslint

* TS fix

* feat(previews): more smoal fixes

* fix(preview-service): alias loading

* feat(helm): updates for new preview service queue setup

* feat(preview-service): launch new browser for each job

* feat(preview-service): add timeout, fix liveliness

* fix(helm): add access to new secret in service accounts

* tidy metrics into a separate file

* Remove broken preview service acceptance test

* fix broken import

* Add metrics to test

* feat(preview-service): handle preview service shutdown properly

* fix(previews): merge bork

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-03-06 14:26:56 +01:00
Mike a13145332b Feat: Base for new billing settings (#4115) 2025-03-05 18:16:05 +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
andrewwallacespeckle c384996978 refactor(fe): New workspace actions route to avoid slug conflicts (#4107)
* Remove blockedSlugs

* Update workspace action routes to use /actions

* Re-add blockedWords
2025-03-04 14:43:07 +00:00
andrewwallacespeckle 29c464f4c3 Update validateWorkspaceSlug (#4102) 2025-03-03 14:38:00 +00:00
Alessandro Magionami 01fb463a7c Merge pull request #4052 from specklesystems/alessandro/web-2728-full-seat-products-for-new-paid-plans
chore(gatekeeper): rename workspace plans
2025-02-28 10:23:08 +01:00
Iain Sproat 51087d53fc refactor(shared/logging): tidy up logger constructor (#4081) 2025-02-28 08:48:09 +00:00
Alessandro Magionami ee92b254bc Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2728-full-seat-products-for-new-paid-plans 2025-02-28 09:37:57 +01: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
Kristaps Fabians Geikins daec5f6b26 feat(fe2): add extra metadata to seq logs for improved observability (#4073) 2025-02-26 14:29:55 +02:00
Mike 2ecb98146a Feat: prevent non work emails (#3993) 2025-02-26 10:55:02 +01:00
Alessandro Magionami df28c3d8f8 chore(gatekeeper): ignore new plans if ff is disabled 2025-02-25 11:05:57 +01:00
Kristaps Fabians Geikins eb050bb649 feat(server): new plans + disabled checkout/upgrade/sidegrade (#4057)
* feat(server): new plans + disabled checkout/upgrade/sidegrade

* pushed in CR fixes
2025-02-25 09:46:46 +01:00
Gergő Jedlicska 5b0bb3b65d gergo/web 2635 set up new plans in the backend (#4031)
* feat(gatekeeper): add new free plan option as an unpaid workspace plan

* feat(workspaces): add feature flag for new plans

* feat(gatekeeper): add free plan option to workspace plans

* Added button in FE

* Make button more beautifuller

* feat(gatekeeper): enable creating workspaces on a free plan

* Fix

* Fix FE linting

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-02-21 14:49:04 +01: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
Mike 45d138e682 Fix: Typo in slug error (#4035) 2025-02-20 11:45:14 +01:00
Mike 6c254a8c65 Fix: Short ID generation + error (#4034) 2025-02-20 09:36:57 +01:00
Kristaps Fabians Geikins 49438f089d chore: all CI server test jobs have all FFs on by default (#4016) 2025-02-18 14:23:15 +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
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 55315feb59 fix(server/diffdownload): fix the bug where client connection close events were not propogated to the database stream connection (#3921)
* WIP: trying to catch a bug

* great success

* reinstate gzip

* Remove feature flag

* remove stream-chain dependency

* remove superfluous logging lines

* re-align with original where possible

* re-align package.json

* More re-alignment with main branch before the previous 'fix'

* A smaller failing example
2025-02-04 11:09:53 +01:00
Björn Steinhagen 3c7b6e2626 style: changing etabs short to edb (#3910) 2025-01-29 13:45:30 +00:00
Iain Sproat 32c310f849 fix(server/objects): solves database connection resource leak when client connections are prematurely closed (#3889) 2025-01-28 15:56:21 +01:00
andrewwallacespeckle fc634ebfe5 Add force onboarding FF (#3897) 2025-01-28 10:04:54 +01:00
andrewwallacespeckle e68e3173a8 Add FF_FORCE_EMAIL_VERIFICATION (#3866) 2025-01-22 13:40:57 +00:00
Kristaps Fabians Geikins 347fa4b462 feat(server): improving knex query stack traces (#3855)
* feat(server): improving knex query stack traces

* minor cleanup

* more improvements
2025-01-21 10:59:09 +01:00