* feat(workspaces): enable toggle for auto-join discoverable workspaces
* fix(workspaces): include auto-join flag on LimitedWorkspace
* chore(workspaces): gqlgen
* 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
* foundation for new version checks
* canUpdate policy
* can req render
* canReceive
* BE implemented
* FE checks implemented?
* test fix
* improved auth error messaging
* fix lint
* a bunch more tests
* updated GQL resolvers
* project create checks implemented
* project update/settings related checks in FE
* a bunch of tests
* tests fix
* disable app schema check
* canUpdate + reworked fragments
* feat(shared): new policies for minor fragment refactor
* some cleanup
* canUpdate tests
* ensureMinimumProjectRoleFragment test
* checkIfPubliclyReadableProjectFragment tests
* get rid of LoadersOf/ErrorsOf
* python dep update
* 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(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
* fix(automate): redirect to workspace after auth if possible
* fix(automate): include session in github auth flow
* chore(automate): update props after merge
* fix(automate): pick => fragment
* fix(automate): use fragments correctly
* 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(projects): add project regions, default to null
* feat(multiregion): add projectRegion Db client lookup logic
* feat(multiregion): add project region repositories and caching
* feat(multiRegion): db initialization and get project db client
* feat(docker-compose): add second db for regions testing
* feat(multiRegion): initialize region with pubs and subs working
* fix(multiRegion): get region client even if it was registered in another pod
* feat(workspaces): create workspace resolver split
* feat: update server region metadata
* feat(projects): rewrite project creation
* feat(multiRegion): getRegionDb
* fix(workspaces): get projects now can retur null
* feat(multiRegion): make local multi region DB-s work
* feat: set d efault workspace region
* CR changes
* tests
* feat(multiRegion): bind region properly
* fe update
* test fixes
* feat(multiRegion): automatically create aiven extras plugin
* ci(postgres): use published postgres with aiven extras
* fix(multiRegion): roll back the aiven extras migration, there is a better way
* tests fix
* fix(billing): we do not need to add a seat, if the workspace is on a plan, but has no sub
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
* WIP create modal
* babababa
* create dialog looks ok
* FE largely there
* workss
* cleanup
* fixed up test plumbing to avoid deadlocks and simplify GQL calls
* test fix
* added all tests
* CI fix
* 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>
* 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
* 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>