* Use workspaceBySlug
* workspace invite support slug
* fix workspace invite email link
* added tests
* Update workspaceInvite query to use new option
* useSlug directly in query
---------
Co-authored-by: Fabis <fabis94@live.com>
* feat(workspaces): move project, like this
* fix(workspaces): use new event
* fix(workspaces): add resolver again after merge
* chore(workspaces): lint
* fix(workspaces): works but is a bit illegal
* fix(workspaces): use service update
* chore(workspaces): add unit tests
* fix(workspaces): use transaction
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
* 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>
* fix(users): verified should be a public limited user field
* feat(workspaceSecurity): update security tab copy
* feat(workspaces): add limited user domain policy compliance check
* fix(workspaces): transact all simultaneous workspace-project role changes
* fix(workspaces): more correct usage of transactions
* fix(workspaces): add tests for transaction-based role changes
* fix(workspaces): do not leak knex into domain
* fix(workspaces): transaction-ify factory functions
* fix(workspaces): factory-ify some old functions
* fix(workspaces): missed a resolver
* fix(workspaces): delete comment (very difficult)
* 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
* Fixed reactivity, added workspace logo to create workspace modal
* Reverse order so name is focussed first
* Fix typo
* feat(workspaces): allow sending the logo on ws creation
* Fix avatar uploading
* Added default index 0
* fix(workspaces): maybe default logo
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
* 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(graphql/serverinfo): provide maximum object size in bytes
* Places config values in a ServerConfiguration object
- updates blobstorage to use ServerConfiguration, while retaining backwards compatibility
* fix(fe2): properly handling invitedTeam auth error
* fix(fe2): disable invite dialog if not workspace admin
* fix(useremails): fix for default primary:true when creating new emails
* test fix
* chore(webhooks): fix test failing when running alone
* chore(webhooks): create domain types and repository
* chore(webhooks): create webhook refactor multiregion
* chore(webhooks): triggers field is required in graphql schema
* list invites table
* invites list works
* update last reminded date on resend
* fix FE
* WIP invitedialog + updated debounced utility
* invite create works
* exclude users correctly
* more adjustments
* minor cleanup
* using workspace invite server role
* test fix
* fixed multiple root eslint issues
* minor adjustments
* 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
* feat(useremails): userEmails graphql query
* feat(useremails): create user email mutation
* feat(useremails): set primary and delete user email mutations
* chore(useremails): fix update user email type
* chore(useremails): create typed tests for graphql and emails field resolver in user type
* chore(userEmails): group user email mutations in a specific mutation object
* linting fixes
* more lint fixes
* tests fix
* more test fixes
* chore(userEmails): cleanup
* chore(useremails): rely on knex trx for transaction handling
* chore(useremails): fix checkemail not present
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>