Commit Graph

211 Commits

Author SHA1 Message Date
Chuck Driesler 85e600aa98 feat(viewer): include selected object application ids in viewer state (#4802)
* feat(viewer): include selected object application ids in viewer state

* fix(viewer): selected object application ids as map

* fix(viewer): drop legacy key
2025-06-09 17:10:28 +01:00
Gergő Jedlicska 941c5c6d8c fix(shared): remove duplicate policy implementation for reading project (#4898)
3d data
2025-06-06 11:51:44 +02:00
Gergő Jedlicska 72ecb9197b feat(gatekeeper): intoduce the enterprise plan (#4882)
* 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>
2025-06-05 11:07:59 +02:00
Kristaps Fabians Geikins 406d7fe9cf feat(auth): allow admins w/ override to receive (#4869)
* feat(auth): allow admins w/ override to receive

* minor fix
2025-06-02 12:38:35 +03:00
Kristaps Fabians Geikins 4412e7a798 fix(fe2): cors OPTIONS reqs sometimes returning redirects (#4860)
* fix(fe2): cors OPTIONS reqs sometimes returning redirects

* path parsing fix

* test fix
2025-06-02 10:22:40 +03:00
Gergő Jedlicska c76ed87580 feat(workspaces): allow reading emails of invited users (#4828)
* 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
2025-05-30 11:01:06 +02:00
Daniel Gak Anagrov 06e19fbd50 feat(gatekeeper): add updatedAt field to workspace plans (#4786)
* feat(gatekeeper): add updatedAt field to workspace plans

* fix: lint error

* fix: added updatedAt test

* fix: shared test
2025-05-26 11:35:53 +02:00
Alexandru Popovici 0ef0a13979 Pro Measurement Tools (#4452)
* 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>
2025-05-26 12:10:19 +03:00
Gergő Jedlicska 2e86a723c6 feat(fileimport-service): add next gen file importer (#4697)
* 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
2025-05-23 10:27:00 +02:00
Gergő Jedlicska 34cb632011 feat(full-stack): handle v2 automation result schema in the app (#4797)
* 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>
2025-05-23 10:26:36 +02:00
Mike 3a2564d44c Feat: Add option to hide Speckle branding on embed (#4777) 2025-05-20 15:48:57 +02:00
Kristaps Fabians Geikins 9998ed2586 feat: personal project limits (#4759)
* base limits cleanup

* history limit tests

* canCreatePersonal & tests

* canInvite block

* WIP model check

* fix tests

* shared tests fix

* lodash import fix

* lint fix

* help update

* hopefully fixing test

* CR comment
2025-05-20 14:56:05 +03:00
Iain Sproat eabfab2555 chore(feature flags): defaults all to false, and additional commentary on expected permanence, dependencies, & licensing (#4124) 2025-05-20 11:45:25 +01:00
Kristaps Fabians Geikins 7d64667ea0 fix(fe2): project delete btn not following auth policy (#4770) 2025-05-20 13:32:07 +03:00
Chuck Driesler 969ca64a1b feat(workspaces): toggle embedded viewer branding (#4762)
* feat(viewer): embedded viewer option to hide speckle branding

* chore(viewer): can edit embed options policy

* chore(embeds): tests for new policy and gql
2025-05-19 13:19:38 +01:00
Alexandru Popovici 12545c6f16 Oriented Section Tool (#4230)
* feat(viewer-lib): WIP on the new OrientedSectionTool

* feat(viewer-lib): Added proper face pulling for the oriented section box

* feat(viewer-lib): Several updates on the oriented sectioning tool
- Implemented section planes calculation and propagation
- Unified obb computation from all gizmos
- Implemented proper setBox function
- Updated the viewer-core to work with OBB instead of AABB for it's clipping volume
- Updated the intersections to work with OBB for their intersting bounds
- Added extension methods to Box3 and OBB

* feat(viewer-lib): Better way of handling gizmo input events overlapping

* fix(viewer-lib): Updated clippingVolume occurences to OBB

* feat(viewer-lib): Section outlines now work with oriented section tool!

* feat(viewer-lib): Integrated new section tool with the frontend and API
- Defined an archtype for SectionTool which all section tools can derive from
- The old section tool is renamed to AxisAlignedSectionTool
- Replaced the old section tool with the oriented one in the frontend

* fix(viewer-lib): Fixed compile errors

* feat(viewer-lib): Some updates:
- Section tool outline, the visible box, is now rendered as before however it's correctly being RTE'd. And we can also make it thinner/thicker now
- Fixed the issue where the scale controls had 'exponential' growth. It's now linear like the translate one

* feat(viewer-lib): Implemented highlghting the box face when clicking on it to extend/retract it

* fix(viewer-lib): A bunch of fixes for the oriented section tool

* feat(viewer-lib): Some updates:
- Documented new OrientedSectionTool code
- Fixed som issues related to section box reseting
- Hid the translation and rotation gizmos that we aren't using
- Tidied up a bit

* feat(viewer-lib): Set the translate and rotate gizmos in local space so the rotation will affect them as wll

* chore(viewer-lib): Purged the old section tool

* chore(viewer-lib): Updated section box data type. Updated LegacyViewer section box data handling. Updated frontend to use new data type. Still not working doe

* fix(viewer-lib): Fixed an issue where comments with section boxes did not enable section outlines at startup

* chore(frontend): Fixed ci compiler error

* fix(viewer-lib): Fixes WEB-1593
2025-05-19 11:30:50 +03:00
Kristaps Fabians Geikins 4db1531064 feat: "workspace" project visibility (#4704)
* 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
2025-05-14 15:20:26 +03:00
Kristaps Fabians Geikins e98029ef63 fix: disable pino-pretty in inspector to avoid freezes (#4718)
* fix: disable pino-pretty in inspector to avoid freezes

* CR comments
2025-05-13 11:14:50 +03:00
Kristaps Fabians Geikins a5760eb195 fix(shared): support busted knex typing in node16 moduleResolution (#4709) 2025-05-12 16:41:18 +03:00
Kristaps Fabians Geikins b406d0e32d chore(server): node16 & export maps support for server (#4698)
* chore(server): node16 & export maps support for server

* moar cleanup

* lint fixc
2025-05-12 14:27:34 +03:00
Gergő Jedlicska 342e331723 feat(shared): can publish and can load messages (#4700) 2025-05-09 19:16:07 +02:00
andrewwallacespeckle 05f1af8501 feat(fe): shuffle onboarding question options
feat(fe): shuffle onboarding question options
2025-05-09 11:47:26 +02:00
Iain Sproat 8a74d9cbe3 feat(file importer): server has REST API to receive results about a file import (#4688)
* fix(server): remove redundant code from bad merge

* wrong router

* WIP: http api for receiving file import results

* Lints

* fix

* WIP: tests

* test fix

* auth middleware has implicit requirement for param named streamId

* complete tests and fixes

* can run the old way alongside the existing, no conflicts

* tidying

* correct error thrown

* incorporate review comments
2025-05-08 19:12:15 +02:00
Gergő Jedlicska 2fdcf1bd1d refactor(shared): unified queue handling (#4691)
* feat(shared): unified queue initialization in shared

* feat(queues): use the new queue creation everywhere

* chore(shared): move to redis module

* chore(shared): fix export maps

* chore(fileimport): add deps properly

* fix(shared): import fix

* fix(everything): moear imports

* fix(server): cjs imports
2025-05-08 16:58:43 +02:00
andrewwallacespeckle 0730c391da feat(fe): shuffle onboarding question options 2025-05-08 13:44:22 +02:00
Iain Sproat 6c8b715365 chore(shared): refactor previews in to worker directory
- add file imports to worker directory
2025-05-07 18:35:56 +02:00
Iain Sproat b36fea2779 feat(file importer): feature flag defined 2025-05-07 17:05:42 +02:00
Chuck Driesler b6ec9dca5b fix(authz): canPublish and canLoad policies (#4673) 2025-05-06 14:27:20 +01:00
Kristaps Fabians Geikins 211922b6a6 chore: get rid of all old workspace plan code (#4624)
* first batch of changes

* tests fix

* FE fixed

* renaming constants

* test fixes

* moar test fixes

* another test fix

* reenable app rover check

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2025-04-30 19:18:32 +02:00
Mike 2c43e9b9b0 Fix: Small hotfixes (#4570) 2025-04-23 12:57:57 +02:00
Chuck Driesler 7663321557 fix(authz): add canDelete policy for automations (#4554)
* fix(authz): add canDelete policy for automations

* fix(authz): use asOperation
2025-04-23 10:02:59 +01:00
Mike 34b81e2de8 Feat: Usage limit banner (#4546) 2025-04-22 21:51:03 +02:00
Kristaps Fabians Geikins eb33c13e9f fix(shared): canMoveToWorkspace should check model limits (#4532)
* fix(shared): canMoveToWorkspace should check model limits

* server fix
2025-04-22 16:49:35 +03:00
Iain Sproat 920099c39f chore(readable code): use TIME_MS for readable durations
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00
Gergő Jedlicska d860d79307 Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/web-2991-update-limit-error-messages 2025-04-18 15:59:03 +02:00
Gergő Jedlicska 2d26c76ef2 feat(limits): better limits messages and some more fixes 2025-04-18 15:58:28 +02:00
Chuck Driesler d7aa0196fc feat(authz): automate policies (#4491) 2025-04-18 11:03:54 +02:00
Kristaps Fabians Geikins 2de4fef006 fix: project settings options not checking permissions (#4472) 2025-04-17 12:53:17 +03:00
Benjamin Ottensten 385157ac81 Feat: Various copy updates (#4467) 2025-04-17 01:13:32 +02:00
Kristaps Fabians Geikins 10832655d4 fix(server): all project created subs firing for workspace guests + req ctx cache fix for subs (#4453)
* WIP sub fix

* fix sub resolver caching issue
2025-04-16 11:21:17 +03:00
Chuck Driesler cebae959ae feat(authz): Workspace.canInvite and Project.canInvite (#4419) 2025-04-16 09:01:53 +01:00
Kristaps Fabians Geikins 0280e4e609 chore(shared): ensure @speckle/shared can be required & imported (#4442)
* chore(shared): ensure @speckle/shared can be required & imported

* ensure build is invoked before e2e tests
2025-04-15 17:27:32 +03:00
Kristaps Fabians Geikins bc5a68a3c9 fix(shared): not using #lodash alias (#4440) 2025-04-15 16:58:00 +03:00
Kristaps Fabians Geikins 82a37fba5c fix(shared): fix sso session expiration date too low in tests (#4432)
* fix(shared): canBroadcast policy test fix

* more tests fixed

* switch to using time constant

* tests fix
2025-04-15 16:24:12 +03:00
Alessandro Magionami 0c18acc452 Alessandro/web 2945 comments hide body (#4385)
* chore(core): move limits logic into shared

* feat(comments): limit text and rawText for comments

* chore(core): removed test moved to shared

* chore(comments): generate gql types

* feat(comments): rework comment history limits

* chore(comments): fix tests

* chore(shared): add dayjs as dependency

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2025-04-15 10:44:12 +02:00
Kristaps Fabians Geikins b287702145 feat: version checks + generally improved auth error messaging (#4384)
* foundation for new version checks

* canUpdate policy

* can req render

* canReceive

* BE implemented

* FE checks implemented?

* test fix

* improved auth error messaging

* fix lint
2025-04-14 10:43:48 +01:00
Gergő Jedlicska bf454bc003 fix(gatekeeper): fix yearly upgrade not working (#4393) 2025-04-14 06:24:20 +02:00
Alessandro Magionami 05e4e51c1a Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2944-versions-limits 2025-04-11 14:54:13 +02:00
Mike 080482febd Feat: Update add-on cards (#4382) 2025-04-11 13:28:12 +02:00
Kristaps Fabians Geikins f59c0a72c6 feat: model related auth checks in BE & FE (#4374)
* limit fragment cleanup

* be updated

* model checks in FE

* tests fix

* fakes util fix
2025-04-11 10:09:54 +03:00