Kristaps Fabians Geikins
4b06f42db7
chore(server): run TS files directly (no compilation) ( #5134 )
...
* sort of works
* type fixes
* added option to run old way too
2025-07-23 11:20:40 +02:00
Kristaps Fabians Geikins
e34a44bf66
fix(server): incorrectly dealing w/ different email casing ( #5131 )
...
* fix(server): incorrectly dealing w/ different email casing
* Cr comments
2025-07-23 10:19:46 +03:00
Daniel Gak Anagrov
e5fb1361c6
fix: getting all user projects on deletion and user filter ( #5112 )
...
* fix: getting all user projects on deletion and user filter
2025-07-21 10:07:46 +02:00
Kristaps Fabians Geikins
b29331705e
chore(server): get rid of duplicate gql TS types ( #5065 )
2025-07-14 11:31:12 +03: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
Kristaps Fabians Geikins
6b9e5d0925
fix(server): not emitting seat updated on role add ( #4998 )
2025-06-27 12:20:32 +03:00
Chuck Driesler
2f36e518a0
fix(multiregion): make move region job safe for replication ( #4907 )
...
* chore(multiregion): failing test for move project region
* fix(multiregion): unblock replication after regional move
* fix(regions): try-catch replication
* fix(regions): cache roles within job
* fix(regions): toggle region key in target db
2025-06-25 15:47:34 +01:00
Chuck Driesler
2ef38a3962
fix(regions): respect region during project move to workspace ( #4985 )
2025-06-25 12:54:24 +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
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
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
Daniel Gak Anagrov
11948b40de
feat(gatekeeper): track seat updates ( #4865 )
2025-06-05 12:41:05 +02: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
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
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
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
Daniel Gak Anagrov
d69b835ab9
refactor(workspaces): fixed minor comments ( #4764 )
...
* fixed minor comments
2025-05-20 10:31:23 +02:00
Daniel Gak Anagrov
fa5f2eb1f5
feat(workspaces): added GQL fitlering capabilities to activeUser workspaces
...
* added filtering mechanism for getWorkspaces completed or not completed workspaces
* added filtering mechanism to filter workspaces of active user by string hitting on slug or name
2025-05-19 16:30:56 +02:00
Chuck Driesler
969ca64a1b
feat(workspaces): toggle embedded viewer branding ( #4762 )
...
* feat(viewer): embedded viewer option to hide speckle branding
* chore(viewer): can edit embed options policy
* chore(embeds): tests for new policy and gql
2025-05-19 13:19:38 +01:00
Iain Sproat
08ffa1c10b
Merge pull request #4761 from specklesystems/iain/duplicate-workspace-join-request
...
fix(server/workspaces): gracefully handle duplicate workspace join requests
2025-05-19 12:22:24 +01:00
Iain Sproat
ae221df0b0
Incorporate PR comment
2025-05-19 11:00:36 +01:00
Daniel Gak Anagrov
e67c27914c
feat(workspaces): backfill workspace tracking ( #4749 )
...
* added a chron job that updates all workspaces properties to mixpanel
2025-05-19 11:54:52 +02:00
Iain Sproat
29c7e538cb
make it idempotent, not an error
2025-05-19 10:08:26 +01:00
Iain Sproat
765adeecd6
fix(server/workspaces): handle duplicate join request
2025-05-16 17:44:17 +01:00
Chuck Driesler
a8ae414bde
chore(workspaces): drop legacy join() ( #4752 )
...
* fix(workspaces): drop legacy discoverable workspace join
* fix(workspaces): one more reference
2025-05-15 13:22:42 +01:00
Kristaps Fabians Geikins
5ff030224b
fix(server): fallback to viewer if no seat found ( #4748 )
2025-05-15 12:04:56 +03:00
Kristaps Fabians Geikins
a25df23688
fix(server): seats sometimes not created on role create ( #4740 )
...
* core fix
* fix migration
* minor update
2025-05-14 15:45:14 +03:00
Kristaps Fabians Geikins
4db1531064
feat: "workspace" project visibility ( #4704 )
...
* WIP new visi
* test fixes
* visibility seems to work
* authz policies & authorizeResolver updated
* various test fixes
* users tests
* frontend changes
* minor adjustments
* shared test fix
* test fixes
* force rerun CI
2025-05-14 15:20:26 +03:00
Chuck Driesler
6d9f3645c4
fix(multiregion): zero !== undefined ( #4683 )
2025-05-07 16:47:49 +01:00
Chuck Driesler
318420aa95
fix(multiregion): repair counting for project region moves ( #4682 )
2025-05-07 15:00:03 +01:00
Kristaps Fabians Geikins
d995a9837e
Revert "Revert "feat(server): workspace project invites as implicit workspace invites"" ( #4672 )
...
* Revert "Revert "feat(server): workspace project invites as implicit workspace…"
This reverts commit 220015ece6 .
* fix invites leak
2025-05-07 14:08:40 +03:00
Chuck Driesler
ddd990508d
fix(multiregion): more logs for move region failure ( #4676 )
2025-05-06 18:11:45 +01:00
Kristaps Fabians Geikins
220015ece6
Revert "feat(server): workspace project invites as implicit workspace invites…" ( #4671 )
...
This reverts commit 22bd90d304 .
2025-05-06 16:21:12 +03:00
Kristaps Fabians Geikins
22bd90d304
feat(server): workspace project invites as implicit workspace invites ( #4634 )
2025-05-06 14:20:29 +03:00
Kristaps Fabians Geikins
211922b6a6
chore: get rid of all old workspace plan code ( #4624 )
...
* first batch of changes
* tests fix
* FE fixed
* renaming constants
* test fixes
* moar test fixes
* another test fix
* reenable app rover check
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com >
2025-04-30 19:18:32 +02: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
Kristaps Fabians Geikins
cf833a7719
fix(server): project role updates after workspace role/seat changes ( #4599 )
...
* fix(workspaces): workspace role sync
* role changes fixed + validated
* seat changes validated
* fix tests
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-04-29 10:49:37 +03:00
Kristaps Fabians Geikins
93bc55630b
fix(server): prevent creating project contributor invite to viewer se… ( #4462 )
...
* fix(server): prevent creating project contributor invite to viewer seat member
* undo regionConfig change
* moar cleanup
2025-04-17 05:00:33 +01:00
Gergő Jedlicska
443c9fc514
fix(workspaces): use the correct new plan check and seat rules ( #4445 )
2025-04-16 11:28:57 +02:00
Chuck Driesler
ea114fd394
fix(authz): only exempt empty main model ( #4358 )
2025-04-09 15:27:03 +01:00
Chuck Driesler
7cddc87deb
fix(workspaces): use new roles for project moves on new plans ( #4316 )
...
* chore(workspaces): move project role mapping in tests
* fix(workspaces): new world move project to workspace
* chore(workspaces): adjust move project tests
* fix(workspaces): that's on me
2025-04-08 15:32:05 +01:00
Chuck Driesler
cb7243cfbe
feat(authz): Project.canCreateModel and Project.canMoveToWorkspace policies ( #4342 )
...
* feat(authz): Project.canCreateModel policy
* feat(authz): Project.canMoveToWorkspace policy
* fix(authz): expose policies as permissions objects
* chore(authz): actually use the policies lol
* chore(authz): add tests for new policies
* fix(authz): skip affected test
* fix(authz): pr comments
* fix(authz): better errors, better tests
* chore(authz): remove references to deleted error
2025-04-08 15:29:12 +01:00
Kristaps Fabians Geikins
820a1e2ebf
feat(server): workspace roles taken into account in project queries ( #4319 )
...
* Workspace.projects fixed
* Query.project tested & fixed
* personalOnly flag added
* withProjectRoleOnly flag
* authorizeResolver implicit workspace roles
* minor cleanup
* reorg + support for throwing auth errors
* global error mapping
* undo special borkage
* CR fixes
* more CR fixes
* shared tests fix
* minor adjustment
* tests fix
* see if removing cached roles fixes it?
* more fixes
* clean up debugging garbage
2025-04-07 12:52:07 +03:00