* 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(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
* feat(workspaces): enable toggle for auto-join discoverable workspaces
* fix(workspaces): include auto-join flag on LimitedWorkspace
* chore(workspaces): gqlgen
* fix(workspaces): order discoverable workspaces by team size
* fix(workspaces): emit workspace admins from LimitedWorkspace
* chore(workspaces): drop some comments
* 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
* feat(viewer): embedded viewer option to hide speckle branding
* chore(viewer): can edit embed options policy
* chore(embeds): tests for new policy and gql
* 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
* 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
* feat(workspaces): emit plan usage from BE
* fix(authz): 0 counts
* fix(workspaces): fix counts for 0
* chore(workspaces): gqlgen
* fix(workspaces): update fragment to use new fields
* fix(workspaces): count regional projects correctly
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
* 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>
* feat: getting rid of defaultProjectRole setting
* get stdout reporting in CI
* yarn lock fix
* fix package.json
* better CI test output
* pinning mocha-multi
* feat(workspaces): delete workspace emit event
* feat(workspaces): move workspace group metrics to the backend
* Removed FE mixpanel group update
* Remove fragment
* test(gatekeeper): add unittest to new gatekeeper service
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* feat(webhook-service): learn to speak multi region
* feat(fileimport-service): talk multi region to me
* feat(fileuploads, blobs): multi region
* feat(workspaces): update delet workspace with billing and regions
* fix typo
* feat(workspaces): remove old billing resolvers
* test(workspaces): fix tests
* fix(workspaces): remove unused schema
* chore(server): various useful multiregion changes from comments pr
* hopefully fixing CI?
* test fix
* more test fixes??
* more test fixes..
* plz work ;((((
* revert multiregion on by default
* feat(workspaces): enable default project role in workspace
* fix(workspaces): not satisfying
* chore(workspaces): phrasing
* fix(workspaces): use new field in role mapping
* chore(workspaces): use roles
* fix(workspaces): update tests
* fix(workspaces): more parallel role update errors
* chore(workspaces): like this now
* chore(workspaces): revert changes to deps
* fix(workspaces): assert domain type conversion at gql layer
* fix(workspaces): repair tests
* fix(workspaces): fix more tests
* chore(workspaces): workspace cost schema
* chore(workspaces): test helper for workspace cost
* feat(workspaces): workspace billing cost
* fix(workspaces): fix onProjectCreated failing for the project creator if the creator is a member
* refactor(workspaces): change workspace cost calculation to a simpler query
* test(workspaceCost): fix costing logic and tests
* fix(workspaceTests): project emmiter needs owner now
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
* chore(workspaces): billing version limit graphql schema
* chore(workspaces): billing member role required
* chore(core): test helper for random string
* chore(core): test helpers
* chore(workspaces): workspaces billing version resolver
* chore(workspaces): rename version to versionsCount
* Implemented workspace general page
* Added notifications to user input
* Allowed non-admins to view but not edit
* Added redirect to homeroute
* Fixed validation
* Squashed commit of the following:
commit 7bf14ab8af0f76b4c9d0aa87fc08085af7c34959
Author: Chuck Driesler <chuck@speckle.systems>
Date: Tue Aug 6 19:40:50 2024 +0200
mob next [ci-skip] [ci skip] [skip ci]
lastFile:packages/server/modules/workspacesCore/migrations/20240806160740_workspace_domains.ts
commit 8aa3fb0cb052c10eeeb83bf9874ae0d1c065e480
Author: Alessandro Magionami <alessandro.magionami@gmail.com>
Date: Tue Aug 6 18:54:15 2024 +0200
mob next [ci-skip] [ci skip] [skip ci]
lastFile:packages/server/modules/core/domain/userEmails/operations.ts
commit 66dfd0cf6c15a789c8f96a65a3168323e83a7b9e
Author: Chuck Driesler <chuck@speckle.systems>
Date: Tue Aug 6 18:30:22 2024 +0200
mob next [ci-skip] [ci skip] [skip ci]
lastFile:packages/server/modules/workspacesCore/domain/types.ts
Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>
* Move General to workspaces folder
* feat(workspaces): inputs on security section
* feat(workspaces): add domain to workspace mutation
* chore(workspaces): add blocked domains list
* fix(workspaces): modals with buttons
* feat(workspaceDomains): delete domain
* fix(workspaces): use mutation
* fix(workspaces): present user verified domains as options
* Moved sidebar menu to a composable
* Added coming soon tag back
* feat(workspaces): create domains resolver for workspace
* chore(workspaces): fix tests
* chore(workspaces): fix types
* chore(workspaces): fix linter
* fix(workspaces): do some delete I think
* chore(workspaces): add domainBasedMembershipProtectionEnabled field to workspace
* chore(workspaces): improve validation for email domain
* fix(workspace): query and do the thing
* chore(workspaces): add graphql schema for domainBasedMembershipProtection
* chore(workspaces): lint and test failures
* fix(workspaces): test issues w new field
* feat(workspaces): add discoverability flag
* chore(workspaces): they made me do it
* feat(workspaces): enable toggling domain protection
* feat(workspaces): add discoverability toggle to workspace settings
* feat(workspace): auto enable discoverability on first domain registration
* feat(workspace): discoverability toggle fixes
* fix(eventBus): fix tests
* feat(workspaces): user discoverable workspaces (#2620)
* feat(workspaces): it works just trust me
* fix(workspaces): don't worry about it
* fix(workspaces); happy path success
* fix(workspaces): almost there
* fix(workspaces): successful tests!
* fix(workspaces): we have DISCOVERED (#2621)
* Fixed linting issue
* Updated query
* Updated validation rules
* Updated validation rules
* Fix unsaved file with type export
* Addressed PR comments
* Updated cache
* Updated item classes, add fragment back
* Gergo/web 1574 join workspaces via discovery (#2623)
* chore(useremails): add find verified emails by user function
* chore(workspace): table helper for workspace domains
* chore(workspace): get workspace with domains function
* chore(workspace): test get workspace with domains function
* feat(workspace): restrict workspace membership when updating workspace role
* chore(workspaces): fix types
* feat(workspaces): WIP join
* feat(workspaces): join button makes u join
* chore(useremails): fix type for find verified emails function
* feat(workspaces): join
* feat(workspace): prevent inviting user without email matching domain
* chore(workspaces): fix linter
* fix(workspaces): invoke join (gergo wrote this)
* fuck
* fix(workspaces): properly get discoverable workspaces
* fix(workspaces): test
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>
* fix(workspaces): some query stuff
* fix(workspaces): mutate cache instead of refetch
* fix(workspaces): more adjustments to gql query and fragment structure
* fix(workspaces): queries, style, structure
* fix(workspaces): match discoverability with current styles
* chore(workspaces): lint lint lint
* fix(workspaces): got it twisted
* chore(workspaces): fix test
* fix(workspaces): route to joined workspace on join
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>
Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>
* feat(workspaces): delete workspace repo function
* feat(workspaces): services for the resolver, crack order of operations, migration
* fix(workspaces): add tests for delete
* fix(workspaces): better service boundary
* fix(workspaces): linttttt