* feat(viewer-lib): Implemented support for duplicate speckle objects. The world tree now accepts duplicates by appending a unique identifier to the node ids. The speckle object ids remain the same. Searching for a duplicated node id will also yield all nodes
* feat(viewer-lib): Changed the way duplication handling works. It's more simple, cleaner and it works better. NodeMap now registers duplicates softly, and only renderable objects are actually duplicated
* fix(viewer-lib): Fixed typo
* Fix deferment logging
* Add count and total for traversal and rendering
* Prettier
* ESlint fixes
* Don't have a total for traversal
* revert lock change
* chore(viewer-lib): Added a comment abou render trees and reported node counts
* Traversal has no total
* ignore conversion total
* remove total for converted
* forgot a build breakage
* make the count callback optional
---------
Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
* 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
* 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
* Rename to saveBatch
* forgot a file
* first pass of cacheReader
* OL2 tests have infinite timeout
* OL2 refactor works
* fix for tests
* get rid of pumps and fix test
* lint fix
* redo mermaid diagrams
* add readme section on deferment
* 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>
* fix(helm test): pass in env vars at runtime not build time
- we configure the test at runtime, not buildtime
- we were never setting these build args at build time, so they were obsolete
* remove unnecessary build arg from server Dockerfile