* backend implemented
* added create to group, but search seems busted
* group search fixed
* moar group retrieval fixes
* more recalculations
* support group delete
* delete confirm dialogs
* canUpdate auth policy
* delete mutation WIP
* backend works
* frontend working
* minor adjustments
* test fix
* switch to new empty state
* beefing up coverage
* cr fix
* init db migration
* WIP store view
* create service call
* WIP insertion
* insert sort of works
* moving code arounmd
* creation tests
* avoid duplicate entries
* fixes from main
* basic group retrieval works
* group filtering works
* WIP view listing
* filter by acl
* fixes + WIP single group retrieval
* wip pivot
* more pivot query fixes
* tests fixed after pivot
* views list tests
* fixing test command
* business plan only checks
* more tests for coverage
* .dts import fix
* cli fix
* anutha one
* auth policy tests for business plan access
* WIP saved views panel base
* BE listing adjustments
* WIP group rendering
* group render done
* WIP post create cache updates
* listing fine?
* my vs theirs
* auto open
* minor fixes
* click load omg
* nicely loading views
* type fix
* less spammy loading
* another type fix:
* more lint fix
* test fix
* codecov disable
* moar coverage
* fix sidebar flashin
* more test coverage
* more test cvoverage
* minor adfjustments
* adj
* saved view wipe fixes
* CSR viewer
* more improvements
* extra feature flag checks
* lint fix
* feature flags fix
* more test fixes
* feat: added count of background jobs
* feat: added repository function to count background jobs
* feat: addapted metrics to new queueing system
* feat: added duration to fileuploads
* feat(backgroundjobs): add new background jobs module for file imports
queueing
* fix(fileuploads): a merge gone wrong
* feat(backgroundjobs): rename rhino queue env var
* test(backgroundjob): use deep equal claude
* fix(fileuploads): sync PR review
* feat(backgroundjobs): add origin server url to the background jobs table
* test(backgroundjobs): make tests pass
* 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
* feat(viewer): include selected object application ids in viewer state
* fix(viewer): selected object application ids as map
* fix(viewer): drop legacy key
* feat(gatekeeper): intoduce the enterprise plan
* chore(server): remove more "magic strings"
* test(shared): fix plan tests with enterprise case
* Small change to format plan name
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* 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(viewer-lib): WIP on area measurement
* feat(viewer-lib): WIP on area measurement. Basics are working. Needs more bling
* feat(viewer-lib): Implemented polygon triangulation for measured area
* chore(shared): Updated MeasurementType
* Add Area control to measure panel
* feat(viewer-lib): Real time updates of the fill polygon and area value
* feat(viewer-lib): Added pole of innacessibility as area label anchor using the polylabel libraryh
* feat(viewer-lib): Fixed fill polygon material
* feat(viewer-lib): Changed the surface normal indicator from the faulty disc to a outlined rectangle. Looks and works much better now
* fix(viewer-lib): Measurements get clipped by sections planes
* faet(viewer-lib): Measurements can now optionally define their own snapping method. Area measurement snaps to first point in screen space. Generic vertex snap still applies if enabled
* fix(viewer-lib): Forgot to project the measured point
* feat(viewer-lib): Double click auto-finishes the area measurmenet by instantly joining with the first point. Right clikc removes current area measurement point so you can 'undo'
* fix(viewer-lib: Fixed a stupid bug relatedto text because somebody thought that making it 'async' would be sooooo cool...
* fix(frontend): Prevent zoom on double click when using area measurement
* chore(viewer-lib): Refined and fomralized a bit now that the general idea of a measurement has got more complex
* chore(viewer-lib): Moved state switching a bit
* chore(viewer-lib): Replaced the old disc normal indicator with the new one and made it standard. Added an option to the gizmo's style that determines the pixels size of the normal indicator
* chore(viewer-lib): Documented the area measurement tool
* chore(viewer-lib): Some updates:
- Implemented proper bounds getter for area measurement
- Got rid of the static vector buffers in Measurement and replaced them with consts where needed
- Reduced the min click timing from 250ms to 150ms
- Other small adjustments
* feat(viewer-lib): Added the option to chain measurements
* chore(frontend-2): Added toggle for measurement chaining
* chore(viewer-lib): Perpendicular measurement chaining now align on the same line as requested
* feat(viewer-lib): Implemented point (coordinate) measurement:
- Added support for billboard offseting in NDC in the shader via vec2 offset uniform. Not a dream come true, but required mostly because of how troika works
- SpeckleText background now follows text anchoring
- Implemented new POINT measurement type
* chore(viewer-lib): Separated label position calculation. We now update only the label transform each frame, instead of updating the entire label redunantly
* chore(viewer-lib): Offsets are now constants. Removed redundant vector and matrix creation
* chore(frontend-2): Placeholder radio button for point measurement type. Fixed compile errors
* fix(viewer-lib): Fixes WEB-3105. Export all measurement types
* updated icons
* Update description
---------
Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* feat(fileimport-service): add next gen file importer
* feat(fileimports): integrate server and fileimporter
* chore(dui3): remove leftover artifacts
* fix(server): test typing fixes
* fix(fileimports): test and pr comment fixes
* feat(fileimports: moare test fixes
* fix(fileimports): tests and yarn dedupe
* feat(full-stack): handle v2 automation result schema in the app
* fix(automate): lost length in merge
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems>