Commit Graph

3042 Commits

Author SHA1 Message Date
Kristaps Fabians Geikins ee5ae8af62 fix(fe2): accept invite before onboarding after sign up (#2491)
* explicitly ordering global middlewares

* various subscription fixes & WIP project invite middleware

* SSR invite accept & toast notifs seem to work

* backend support for mixpanel

* mixpanel be logic -> shared

* minor fix

* finissh

* lint fix

* minor comment adjustments

* better adblock handling
2024-07-11 11:45:11 +03:00
Chuck Driesler 790d97383c feat(workspaces): project creation emit domain event
* 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>
2024-07-10 16:13:41 +01:00
Mike ef50b2c298 Feat: Added Content-Security-Policy for non-embedable routes (#2480) 2024-07-10 16:28:21 +02:00
Iain Sproat 1d2bc481c8 feat(logging): metrics endpoint is logged as debug level, not info (#2490) 2024-07-10 13:25:52 +01:00
andrewwallacespeckle d12e80035d fix(fe2): keyboard shortcuts in viewer don't work (#2389)
* 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
2024-07-10 11:11:20 +01:00
Kristaps Fabians Geikins 0b2ca9a515 feat: add missing FE1 fields to the FE2 GQL schema (#2471)
* WIP version create

* commitCreate migrated

* minor cleanup

* commitReceived migrated

* added Project.object

* Project.comment introduced

* moving away old API usages in FE1

* ProjectMutations.batchDelete

* project pending access requests

* WIP project access req tests

* project access req tests done

* ModelByName test

* version mutation tests

* project.object tests

* batch delete tests

* minor improvements to redirect logging
2024-07-10 11:33:53 +02:00
Chuck Driesler e703bb7415 WEB-1140 manage user workspace membership services (#2460)
* 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

* fix(workspaces): maybe tests work like this

* fix(workspaces): dry

* fix(workspaces): initialize tests better

* fix(workspaces): so true

* fix(workspaces): right

* fix(workspaces): self nit

* fix(workspaces): better repository structure

* fix(workspaces): repair tests, use `example.org`

* fix(workspaces): add tests for new repo functions, repair other tests

* fix(workspaces): better distinction between service-level guarantees and repo-level guarantees

* fix(workspaces): review comments and stencil tests

* fix(workspaces): add tests

* fix(workspaces): tests work

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-07-09 18:26:59 +02:00
andrewwallacespeckle a72ef6178d refactor: isAllowedType checks for hidden speckle types (#2481) 2024-07-09 15:32:18 +01:00
Iain Sproat b119f2ee83 feat(metrics): collect metrics at a higher frequency then prometheus scrapes (#2479)
* 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
2024-07-09 14:57:06 +01:00
Dimitrie Stefanescu 61c4f7c9aa Merge pull request #2468 from vwnd/vwb/objectsender/decorators
Object Sender: Adds @Detach and @Chunkable decorators
2024-07-09 11:50:41 +01:00
Alessandro Magionami a9e6dc5834 feat(user-emails): create user emails table and type (#2470)
* 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
2024-07-08 17:27:59 +02:00
Kristaps Fabians Geikins 95184b6883 chore(server): marking all old (non-FE2) GQL schema fields as deprecated (#2435)
* some fe2 copy changes + everything upp to automate deprecated

* blobstorage & comments & branches/commits

* all core assets reviewed

* server invites

* webhooks

* minor copy update

* updating copy
2024-07-08 14:09:55 +02:00
Alexandru Popovici ccd1c14e09 Threads Undead Patch (#2475)
* 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
2024-07-05 10:28:56 +03:00
Gergő Jedlicska 28ce7c757c feat(workspaces): add repository function implementations
Co-authored-by: Charles Driesler <chuck@speckle.systems>
2024-07-04 13:46:48 +01:00
andrewwallacespeckle 8ba0b09f45 feature(ui-components): New sidebar and related components (#2472)
* SIdebar styling updates

* feat: refactor component

* Remove unused args

* Remove styles. Semantic tags

* FE2 TESTING CHANGES

* fix: add cursor-pointer to buttons

* Revert FE2 testing changes

* Make DUI3 friendly

* Revert unneeded upgrade
2024-07-04 11:15:00 +01:00
Victor Wanderley Barbosa 93469a9b2f docs: add chunkable decorator example 2024-07-02 21:33:21 +02:00
Victor Wanderley Barbosa ab566b32ad feat: add chunkable decorator 2024-07-02 21:32:28 +02:00
Victor Wanderley Barbosa 9a7b8b343b chore: send commit in example 2024-07-02 20:54:59 +02:00
Victor Wanderley Barbosa 64cd2da8fe feat: add example 2024-07-02 20:46:17 +02:00
Victor Wanderley Barbosa 19cf041aa2 feat: serializer to check decorator 2024-07-02 20:46:03 +02:00
Victor Wanderley Barbosa 970ff1b34e feat: added detach decorator 2024-07-02 20:29:43 +02:00
Victor Wanderley Barbosa c68b7187fc chore: add reflect metadata 2024-07-02 20:22:56 +02:00
Mike a4d72ac32e Fix: Change font to Inter 2024-07-02 19:00:13 +02:00
Kristaps Fabians Geikins 74c17cd099 fix(server): only changing gql http status code on rate limiting (#2466) 2024-07-02 17:44:22 +03:00
Kristaps Fabians Geikins de5a5fcc2c serving fonts from tailwind-theme w/o fe2 changes 2024-07-02 17:29:08 +03:00
Chuck Driesler 7b3f1d20ec fix(workspaces): construct acl query based on table name (#2464) 2024-07-02 14:58:27 +01:00
Kristaps Fabians Geikins 7d79c056db fix(server): 401, 403, 429 & 500 status codes for GQL error responses (#2463) 2024-07-02 16:54:25 +03:00
Mike Tasset 2d73f93c6b Remove fs-extra types 2024-07-02 15:14:32 +02:00
Alexandru Popovici 36f8e3b651 Increased the scale of the expanded bounds when testing for intersection to better account for BVH intersection point fp precision errors on very small numbers (#2448) 2024-07-02 16:14:26 +03:00
Alexandru Popovici 3c2b0165e5 Soft Pipeline Reset (#2452)
* Simplified a lot from the Pipeline's render loop. UpdateFlags.Render now does not reset the pipeline. Added UpdateFlags.RESET_RENDER which resets the pipeline. Measurements now do not reset the pipeline needlessly

* Fixed sandbox lint error

* Accumulation now starts automatically based on the current accumulation frames count. SectionTool no longer resets the pipeline without a reason. Changing light paramters no longer reset s the pipeline without a reason. Clipping plane updating no longer resets the pipeline, except when the planes are actually set. Highlight and selection now no longer reset the pipeline. Explosion does reset the pipeline

* Fixed sandbox linting error
2024-07-02 16:12:49 +03:00
Mike Tasset dd8418fcb3 Added all font variants to theme 2024-07-02 15:11:21 +02:00
Mike Tasset 36d241d7ca Changed font export 2024-07-02 13:31:03 +02:00
Mike Tasset 3b0c1981b3 Added build step for fonts 2024-07-02 12:19:03 +02:00
Kristaps Fabians Geikins d944b99172 fix(server): unexpected INTERNAL_SERVER_ERROR error codes for expected error cases (#2461) 2024-07-02 12:44:36 +03:00
Iain Sproat 4bc42d59ab feat(preview-service): allow chromium exec path & puppeteer user data dir to be configured (#2462) 2024-07-02 10:39:19 +01:00
Chuck Driesler 80d987d4d4 Merge pull request #2455 from specklesystems/gergo/web-1180-workspaces-foss-module
feat(workspacesCore): initial module migration
2024-07-01 13:52:24 +01:00
Mike Tasset 0854720a57 Merge branch 'main' into mike/change-font-to-inter 2024-07-01 11:37:45 +02:00
Mike Tasset 7672d14627 Merge branch 'main' into mike/change-font-to-inter 2024-07-01 10:20:23 +02:00
Kristaps Fabians Geikins e73c2c3d4f fix(fe2): panoramic previews not triggering on hover (#2457)
* fix(fe2): panoramic previews not triggering on hover

* undo dev change
2024-07-01 11:03:07 +03:00
Alexandru Popovici 15e9ad9462 Oboarding undead-patch (#2456)
* Fixed sandbox lint error

* Added back the polar view and setting it. Changed the onboarding hardoced vectors from Z up to Y up, since that's what the camera controller now requires when setting inline views
2024-06-28 21:05:08 +02:00
Gergő Jedlicska 307983c94c feat(workspacesCore): initial module migration 2024-06-28 20:14:40 +02:00
Kristaps Fabians Geikins 6bfffca0a9 fix: various invite flow fixes & improvements (#2451)
* fix(fe2): show signup CTA for non-registered invitees [web-1144]

* fix: server invite signup error

* WIP project error access block

* feat(fe2): better 'no project access' error screens

* CR fix
2024-06-28 17:26:11 +02:00
Chuck Driesler 0bae93fbf0 Merge pull request #2438 from specklesystems/gergo/web-1146-workspace-creation-service
gergo/web 1146 workspace creation service
2024-06-28 15:46:13 +01:00
Charles Driesler a4c9fbab16 ugh 2024-06-28 14:30:51 +01:00
Charles Driesler fc69e26905 event emitter test 2024-06-28 12:41:49 +01:00
Charles Driesler b0344b1eae workspace repo fct and emitter 2024-06-28 12:31:37 +01:00
Alexandru Popovici daab58ca2a Fixed sandbox lint error (#2450) 2024-06-28 13:09:22 +03:00
Alexandru Popovici 254867e038 Dynamic Near Camera Plane (#2434)
* Added model-viewer's orbit camera control implementation. All the features from the old orbit controls are now functional with the new one

* Figured out the relation between radius and fov. Added zoom decelariting when getting closer to origin. This feature was present in the old controller but lacking in this one

* WIP

* Added infinite zooming

* First version of infinite zoom and zoom to cursor

* A few improvements on zoom to cursor. Inifite zoom and zoom to cursor now work together. Simplified the implementation

* Added orthographic camera functionality in the controller without hte special features

* Zoom to cursor now works with orthographic projections. Switching between perspective and orthographic while keeping all functionality correct now works

* Minor cleanup a ton more to come

* Added controls dampening in the sandbox

* Adapted frontend to the new controller plus some additional changes to the controller options in general

* Implemented setting inline and polar viewers. However mosts of the time spent was dedicated into understanding why the frontend checks for changes in the camera each frame, and if it finds one forces the camera viewer to the inline one. I haven't figured out why it's doing this and it seems very wasteful. There probably is a better way of achieving the same thing

* Orbit Controller now computes it;s cartesian value based on spherical in a function so it can be used in multiple places. Replaced getting the current camera position with the target camera position in frontend frame update callback as the old camera controller did

* Follow mode now works properly

* Sandbox fix

* Disabled debug spheres

* WIP on fly controls

* Correct basis transformations for fly controls

* Added QE up/down movement to fly controls

* Minimum radius is now dynamic and accounts for scene size

* Fixed an issue with zooming to cursor when infinetely zooming

* Fixed inconsistencies between zooming normally and infinetely for both zooming to cursors and otherwise

* Further fixing zooming to cursor when infinetely zooming

* Zoom radius modulation

* Fine tuning zooming radius and wheel modulation. I think I got to some defaults that seem good enough for all scene scales.

* Defaulted to 30ms decau time for dampers

* Added a 'tasOnly' argument in all 'intersect' variants. This will only intersect the TAS(es) and provide an intersection result. When requesting an intersection with 'firstOnly' set, onyl the first intersected TAS will be queried further and it's first intersected BAS will provide the intersection result. Conditioned zooming to cursors by needing to have any geometry under the cursor; Fixed some small issues with  functions in the acceleration structures.

* Restricted intersecting onyl when zooming

* Geometry intersection when zooming does not affect infinetely zoom anymore, only zoom to cursor

* Temporary disabled firstHitOnly

* raycastFirst now works correctly in the context of tasOnly param true or false

* Added dampers to the fly controls so we have consistency across various camera controller types.

* Added statinary function

* WIP on controls

* Debuging orbit controller issues on ipad

* More consolidation work on the interface for SpeckleControl and our current implementations for it

* Added controller toggle-ing

* Making the controllers work from immediate data

* There are no more spaces left I can transform from/to. Done them all. Works fine now essentially. Just need to clean stuff up

* SpeckleControls now provide an 'up' vector, and basis transformation is computed that way rather than requirig a mat4 directly. Fixed two issues with event locking on orbit and fly

* More cleanup, more fixes, more grind

* Controllers now have consistency in the basis they provide the position and target into. As well as the fromPositionAndTarget function. It will always be in a basis where (0,1,0) is up. This is required because certain parts of three.js assume that basis

* FlyController is now properly relative-itiez

* Sorted out options for both controls. Dampening is now done via options

* Small fixes for frontend integration

* Fixed the issue with quaternions misaligning around PI

* Added consistent orthographic resizing

* Fixed camera focusing when in orthographic mode

* Implemented disabling/enabling rotations with the new controls. Removed PolarView since it was never used. Canonical views WIP

* Made the HybridCameraController with the simplest implementation possible that seamslessly combines both camera controls. This is for testing to get an idea about how it feels. Removed zoomToCursors when not on geometry. Increased regular zoom speed

* Using constants since move speed is a modifier

* lock fix

* Removed HybridCameraController. Increased maximum zoom. Removed toggling camera controls with Space. New way to apply canonic views, this time a correct one

* Handled WEB-1102. Kept the old empiric near plane calculation. Still usable through the camera controller's options. Moved far plane calculation from SpeckleRenderer to CameraController.

* Implemented a closestPointToPoint on a halfplane. This is so that the BVH gives us the closest point on the positive halfplane of the camera and the resulting minimal distance to the 0 camera plane is correct. Added fallback to empiric near plane calculation when the scene does not contain a built BVH, aka it's only points and/or lines
2024-06-28 12:23:11 +03:00
Mike 7f8946b008 Merge pull request #2447 from specklesystems/mike/move-server-management-table-to-layout-table
Fix: Change ServerManagementTable to LayoutTable
2024-06-28 09:59:01 +02:00
Kristaps Fabians Geikins 1da1c4e30a feat(fe2): redirects for legacy/fe1 embed routes (#2432) 2024-06-28 10:52:09 +03:00