Commit Graph

2424 Commits

Author SHA1 Message Date
Gergő Jedlicska 01bb883bc4 fix(gatekeeper): add missing feature from access check api 2025-06-19 16:15:29 +02:00
Iain Sproat d7d564d0d4 feat(file imports): next gen allows multiple file types (#4953) 2025-06-19 08:50:42 +01:00
andrewwallacespeckle c89fe339ec refactor: fix pagination with stable resolveKey, use reactive default… (#4951)
* refactor: fix pagination with stable resolveKey, use reactive defaultRoles, and remove email permission check

* Changes from call

* More changes from call

* WIP fixing team composite cursor

* paginated items fix

* minor rename

* composite cursor tools improved

* fe undoing debugging stuff

* extra fixes

* invitable collabs fix

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-06-19 10:28:31 +03:00
Gergő Jedlicska 794bd7c7e9 gergo/web 3616 add auth policy for turning on the exclusive workspace (#4956)
* feat(shared): rename user workspaces loader

* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* refactor(shared): extract user is workspace admin to an auth fragment

* feat(shared): add can createWorkspacePolicy

* feat(workspaces): WIP block workspace creation

* feat(server): add can create workspace checks

* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation

* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace

* test(shared): use test fake properly

* fix(server): eligble workspace typing fixes

* test(shared): fix more workspace fakes

* fix(workspacesCore): add missing loader

* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening

* feat(shared): introduce workspacePlanHasAccessToFeature function with tests

* chore(workspaces): fix more PR comments

* fix(workspaces): naming

* fix(workspaces): some more

* feat(shared): generalize workspace feature access policy

* feat(workspaces): allow toggling the isExclusive option for workspace
update
2025-06-18 12:43:27 +02:00
Gergő Jedlicska 4a2d85d68c feat(server): web 3485 prevent accounts from creating new workspaces (#4913)
* feat(shared): rename user workspaces loader

* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* refactor(shared): extract user is workspace admin to an auth fragment

* feat(shared): add can createWorkspacePolicy

* feat(workspaces): WIP block workspace creation

* feat(server): add can create workspace checks

* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation

* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace

* test(shared): use test fake properly

* fix(server): eligble workspace typing fixes

* test(shared): fix more workspace fakes

* fix(workspacesCore): add missing loader

* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening

* feat(shared): introduce workspacePlanHasAccessToFeature function with tests

* chore(workspaces): fix more PR comments

* fix(workspaces): naming

* fix(workspaces): some more
2025-06-18 08:58:26 +01:00
Kristaps Fabians Geikins 2be1592341 feat: show historical model uploads (#4954)
* ensure modelId is always filled

* BE seems fine

* frontendd

* pagination fix

* table max height

* lint fix

* unset tiny limit

* test fix
2025-06-18 10:56:33 +03:00
Iain Sproat 4738b97091 feat(server/fileuploads): use a presigned url to upload large files (#4901) 2025-06-17 17:38:47 +01:00
Kristaps Fabians Geikins 441aa6e54d fix: create model before uploading file (#4942) 2025-06-16 10:17:17 +03:00
Daniel Gak Anagrov 2cd108c3ee feat(objects): Improve gql loading logic around limits (#4885) 2025-06-16 08:57:08 +02:00
Iain Sproat 9021f4ed0e fix(file importer): add profile:read scope to token (#4941) 2025-06-13 13:30:06 +01:00
Kristaps Fabians Geikins f30ef2f9fa feat: set model name/description on file upload (#4937)
* WIP except description

* description implemented

* added defaultTo to migration
2025-06-13 13:44:40 +03:00
Kristaps Fabians Geikins cfa0b249d1 feat: seat type selection in invite flows (#4908)
* backend seems to work

* bigger menu support

* FE nearly done

* merge fix

* ui changes

* workspace invite disclaimer

* project disclaimer

* project invite viewer -> editor flow

* extra minor fixes

* Change project role input label

* extra test assertions

---------

Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2025-06-13 09:45:58 +03:00
Daniel Gak Anagrov 32f1700f37 fix(workspaces): switch property seats and viewers count (#4934) 2025-06-12 11:20:57 +02:00
Iain Sproat 5db8d41d13 fix(tests): typo (#4911) 2025-06-10 11:58:11 +01:00
Chuck Driesler 85e600aa98 feat(viewer): include selected object application ids in viewer state (#4802)
* feat(viewer): include selected object application ids in viewer state

* fix(viewer): selected object application ids as map

* fix(viewer): drop legacy key
2025-06-09 17:10:28 +01:00
Iain Sproat d20cde3a68 feat(fileimport): provide admin dashboard for queue (#4904)
* feat(fileimport): provide admin dashboard for queue

* mitigate deprecation warning

* fix typo in GitHub Action
2025-06-09 13:36:43 +02:00
Daniel Gak Anagrov 11948b40de feat(gatekeeper): track seat updates (#4865) 2025-06-05 12:41:05 +02:00
Gergő Jedlicska 72ecb9197b feat(gatekeeper): intoduce the enterprise plan (#4882)
* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* test(shared): fix plan tests with enterprise case

* Small change to format plan name

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-06-05 11:07:59 +02:00
Daniel Gak Anagrov 460245a71b fix(versions): object history hidden when quering by project (#4884) 2025-06-04 10:44:08 +02:00
Iain Sproat dae238f705 feat(fileimport service): allow dedicated Redis server for queue (#4858) 2025-06-03 08:55:54 +01:00
Daniel Gak Anagrov ae8e4dbd10 feat(workspaces): added cron job to delete stale workspaces (#4665) 2025-06-03 09:22:03 +02:00
Daniel Gak Anagrov 23b61769b7 feat(fileupload): added eventBus and mixpanel monitoring 2025-06-02 08:22:20 +02:00
Gergő Jedlicska 8f37710c9e feat(workspaces): expose the can read memeber email policy (#4863) 2025-05-30 17:07:07 +02:00
Chuck Driesler 0eb8d1f352 feat(workspaces): add workspace level default seat property (#4851)
* feat(workspaces): default workspace seat field

* chore(workspaces): add tests for default seat type
2025-05-30 12:30:20 +01:00
Gergő Jedlicska c76ed87580 feat(workspaces): allow reading emails of invited users (#4828)
* feat(workspaces): allow reading emails of invited users

* feat(workspaces): expose workspace member email in workspace team query
to ws admins

* feat(workspaces): add email to join requests view for admins

* chore(workspaces): fix join request type
2025-05-30 11:01:06 +02:00
Daniel Gak Anagrov def1ce71d3 feat(workspaces): add lastSyncAt to workspaces 2025-05-30 08:31:22 +02:00
Kristaps Fabians Geikins bfe6688989 chore(server): extra logging to debug Query.project nullability issue (#4847) 2025-05-29 16:11:32 +03:00
andrewwallacespeckle 71e732b52e Throw WorkspacesModuleDisabledError when FF is off 2025-05-29 14:11:45 +02:00
Daniel Gak Anagrov 3e9f87177d feat(workspaces): Delete, Cancel, CancelSheduled mixpanel BE events 2025-05-29 11:15:06 +02:00
Iain Sproat 1f8e1a522d fix(automate): better handle trigger definition errors (#4845) 2025-05-29 10:08:43 +01:00
Daniel Gak Anagrov fedcf05497 fix(workspace): create event relationship to user (#4841) 2025-05-28 18:47:57 +02:00
Daniel Gak Anagrov 0b04719834 feat: moved workspaces Create and Upgrade mixpanel events to backend (#4816) 2025-05-28 13:30:55 +02:00
Iain Sproat 33e480185e fix(passport): google strategy handle invalid grant errors (#4742) 2025-05-28 09:41:26 +01:00
Iain Sproat 1349ea714e fix(server): ensure object IDs are like MD5 hashes; 32 character hexadecimal (#4392) 2025-05-28 08:43:31 +01:00
Iain Sproat 15274d13cf chore(/auth/token): make thrown error more specific about message (#4830) 2025-05-27 17:47:28 +01:00
Chuck Driesler b4d2c61374 chore(apps): add workspace scopes to BI and Excel (#4823) 2025-05-27 10:25:37 +02:00
Daniel Gak Anagrov 06e19fbd50 feat(gatekeeper): add updatedAt field to workspace plans (#4786)
* feat(gatekeeper): add updatedAt field to workspace plans

* fix: lint error

* fix: added updatedAt test

* fix: shared test
2025-05-26 11:35:53 +02:00
Chuck Driesler 22c596e985 chore(sso): logs related to grant types (#4806) 2025-05-23 15:49:27 +01:00
Gergő Jedlicska 2e86a723c6 feat(fileimport-service): add next gen file importer (#4697)
* feat(fileimport-service): add next gen file importer

* feat(fileimports): integrate server and fileimporter

* chore(dui3): remove leftover artifacts

* fix(server): test typing fixes

* fix(fileimports): test and pr comment fixes

* feat(fileimports: moare test fixes

* fix(fileimports): tests and yarn dedupe
2025-05-23 10:27:00 +02:00
Chuck Driesler 70f07fc725 fix(embed): use correct id (#4798) 2025-05-22 15:35:44 +01:00
Chuck Driesler 780d001a1e feat(embed): expose embed feature access at project level (#4796)
* feat(embed): expose embed feature access at project level

* fix(embeds): use switch
2025-05-22 12:22:06 +01:00
Chuck Driesler 0f5c22329b Chuck/web 3465 auto join discoverable workspace setting (#4791)
* feat(workspaces): enable toggle for auto-join discoverable workspaces

* fix(workspaces): include auto-join flag on LimitedWorkspace

* chore(workspaces): gqlgen
2025-05-22 10:11:05 +01:00
andrewwallacespeckle a4278e5863 Merge branch 'main' into andrew/specklecon-banner-dismissable 2025-05-21 11:40:40 +02:00
Chuck Driesler 9724a3daef feat(workspaces): sort discoverable workspaces by member count (#4779)
* fix(workspaces): order discoverable workspaces by team size

* fix(workspaces): emit workspace admins from LimitedWorkspace

* chore(workspaces): drop some comments
2025-05-21 10:04:44 +01:00
andrewwallacespeckle 6a1d277b16 fix(server): Add user to mailchimp onboarding audience if they are not in it
fix(server): Add user to mailchimp onboarding audience if they are not in it
2025-05-20 14:30:10 +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
andrewwallacespeckle c571d51d27 feat: add speckleConBannerDismissed to activeUser.meta 2025-05-20 13:55:32 +02:00
Kristaps Fabians Geikins d2f2d95bb5 chore(server): migrate remaining tests to TS (#4772)
* auth tests migrated

* core tests

* pwdreset

* authz tests
2025-05-20 14:24:48 +03:00
andrewwallacespeckle 38efa75bb8 Merge branch 'main' into andrew/fix-mailchimp-user-not-found-error 2025-05-20 12:46:32 +02:00
Iain Sproat eabfab2555 chore(feature flags): defaults all to false, and additional commentary on expected permanence, dependencies, & licensing (#4124) 2025-05-20 11:45:25 +01:00