* Quick hack to disable the visibility of dynamic AO
* Dynamic AO can now be gracefully turned off via options, and any other passes that it required are also turned off so we don't waste GPU time
* ApplySAOPass now has a PASSTHROUGH render mode, where it just outputs the static ao texture sample.
* Added a debug mode to the pipeline when toggling debug passes
* feat(workspaces): drop createdByUserId from the dataschema
* feat(workspaces): repositories WIP
* merge
* protect against removing last admin in workspace
* quick impl and stub tests
* add tests
* services
* unit tests for role services
* feat(workspaces): authorize project creation if workspace specified
* feat(workspaces): emit project created event
* fix(workspaces): protect against adding a project to a workspace if module not enabled
* fix(workspaces): oops broke tests during merge
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
* feat: use shift for shortcuts. Swap onKeyStroke for useMagicKeys
* refactor: simplify control shortcuts
* Revert changes to input.ts
* refactor: Make more DRY
* Revert "refactor: Make more DRY"
This reverts commit a508fcfb9d2fef0cd2635911bc57410989166a50.
* Revert "Revert changes to input.ts"
This reverts commit c47300d0104d09f9fa0ae9bc9e86e994f0a46206.
* Revert "refactor: simplify control shortcuts"
This reverts commit a867d6e34d06a7a6436ff4bdb6c4a7db94d3ca21.
* Fix broken space
* Refactor Viewer Controls and Keyboard Shortcuts
* Fix keyboard shortcut mapping to handle string keys correctly
* refactor: string enum
* remove filters shortcut
* feat(metrics): collect metrics at a higher frequency then prometheus scrapes
* metrics presented as histograms
* Metric for self monitoring time taken to collect the high frequency metrics
* Initiate high frequency metrics alongside default metrics
* Collect metrics every 100ms
* feat(user-emails): create user emails table and type
* chore(user-emails): add delete cascade
* chore(user-emails): fix tests
* chore(user-emails): add unique constraint for email and userId
* chore(user-emails): use random email in tests
* chore(user-emails): add todo to remove user-email in test
* chore(user-emails): code review changes
* chore(user-emails): use random passwords for tests
* chore(user-emails): fix test and code review changes
* feat(db queries): adds db query scripts for determining db sizes
* Adds a new metric `speckle_db_tablesize` with db table sizes
* lower case all the file types to provide a combined metric
* group file status count by lower cased file type
* reinstate accidentally deleted metric
* Fix developer script
* Fixed sandbox lint error
* Gave up with trying to enforce a standard basis across camera controller and applications. Now getPosition and getTarget will always be in whatever basis the camera controller is set to be
* No more pre-transformation to (0, 1, 0) for canonical and speckle views and when computin nearest point on geometry
* Reverted transformations from onboarding
* Updated comments
* Fixed the issue where if thread was active at stream load time, the camera position and orientation would be off. This specific issue occured only at startup and it was because the min.max radius for the orbit controls were not yet computed, the frontend calling setView before the orbit controls had a chance to update and compute it's min/max. Also fixed an issue where min distance computation was not using the correct camera positon, but rather the goal position