Commit Graph

2279 Commits

Author SHA1 Message Date
Gergő Jedlicska bb5778bf2d refactor(server scopes): use constants for streams read scopes 2023-07-26 13:09:34 +02:00
Gergő Jedlicska 6ea7aa8236 refactor roles to shared constants 2023-07-26 11:59:54 +02:00
Gergő Jedlicska 6efe345083 refactor(server graphlq): migrate hasRole directive to hasServerRole 2023-07-26 10:25:00 +02:00
Alexandru Popovici 56058c04a3 Alex/#1678 faster diff (#1688)
* Sped up diffing by several orders of magnitude. Also started on a different more fancy approach to diffing involving boolean operations on object maps

* Finished with boolean version of diffing. Improved the speed of both by 50% on top of the previous speed improvements

* #1690 Completely transparent objects are ignored during picking via a toggle-able flag in renderer
2023-07-26 10:40:47 +03:00
Iain Sproat 37a0fa4094 fix(frontend & frontend-2): x-frame-options header for /authn routes should be DENY (#1719)
* fix(frontend-2): routes to /authn should set x-frame-options header to deny
* fix(frontend1): do not render authn route if in an iframe
* fix(nginx): should log in json format
2023-07-24 15:17:16 +01:00
AlexandruPopovici 0da6996a54 FilteringManager no longer caches any render tree instances since they're volatile and it's not needed. This fixes the issues with filtering expections after loading/unloading different streams 2023-07-24 11:58:05 +03:00
AlexandruPopovici e4f2617858 Numeric filters now take the min/max value range in consideration when gathering the filtered objects 2023-07-24 11:52:09 +03:00
Kristaps Fabians Geikins de88eac52a fix(fe2): fsevents error resolved + storybook updated + .env.example updated to be more reasonable (#1715)
* fix: resolved fsevents issue + ensure-tailwind-deps building even when not needed

* fixed storybook

* upgrading storybook

* .env.example update
2023-07-21 11:35:37 +03:00
Kristaps Fabians Geikins d7ff2a85b5 fix(fe2): getting rid of H3 dep in client bundle for logging 2023-07-20 09:11:49 +03:00
Kristaps Fabians Geikins 252ae3c70c feat(fe2): more error logging optimizations 2023-07-19 19:09:41 +03:00
Kristaps Fabians Geikins ee79bfaaeb feat(fe2): improved client logging props 2023-07-19 18:19:48 +03:00
Kristaps Fabians Geikins f1fee3e64f fix(fe2): better object logging 2023-07-19 17:26:06 +03:00
Kristaps Fabians Geikins ed28b66f24 fix(fe2): seq ingestion sending payload that is way too big 2023-07-19 17:19:16 +03:00
Kristaps Fabians Geikins e96241d911 fix(fe-2): structured logging fixes 2023-07-19 16:32:51 +03:00
Kristaps Fabians Geikins a7ba118f3a fix(server): 500 error when Commit.author is null 2023-07-19 14:16:48 +03:00
Kristaps Fabians Geikins 80df259159 feat(server): improved cross-server commit/version download (#1711) 2023-07-19 11:43:06 +03:00
Kristaps Fabians Geikins 81116dbbe3 fix(fe-2): lodash import missing in logger 2023-07-18 15:25:43 +03:00
Kristaps Fabians Geikins 4b2d0074cc eslint fixes 2023-07-18 15:19:42 +03:00
Kristaps Fabians Geikins f61c2e80a8 fix(fe-2): more resilient useLogger 2023-07-18 14:55:17 +03:00
Iain Sproat fd04a1d055 fix(fileimport): destructuring for...of should use entries() (#1704) 2023-07-13 21:18:51 +01:00
Iain Sproat b9b9f7dee9 fix(fileimport): return timeout error message to server & suppress noisy logging (#1703)
* fix(fileimport): reduce noisiness of logging
* fix(fileimport): return timeout error message to server
2023-07-13 20:52:04 +01:00
Iain Sproat 9c3d595141 fix(fileimport): logging of child process should not be suppressed as debug (#1702)
- log as info, not debug level
2023-07-13 19:55:44 +01:00
Iain Sproat 87a7397061 chore(fileimport): improve logging (#1697) 2023-07-13 19:11:29 +01:00
Iain Sproat ea6d2c9042 feat(prometheus): add status code and improved path grouping to request duration metrics (#1591)
* replaces expressMonitoring.js
2023-07-13 16:21:16 +01:00
Kristaps Fabians Geikins 0d6e971685 fix(fe-2): adding server name to seq logging 2023-07-12 17:08:58 +03:00
Kristaps Fabians Geikins 93bd557256 feat(fe2): client-side error logging to seq (#1691)
* WIP seq-logging

* nuxt plugin + infra adjustments
2023-07-12 16:58:58 +03:00
Iain Sproat 9f0418893f chore(objects upload): improves response when error due to large object size (#1685)
* test(objects upload): adds a test for large object
* print object too large messages in response
* allows object maximum size to be configured
2023-07-12 10:57:59 +01:00
Iain Sproat 9fe6ed3ed0 fix(/objects): should return 400 error to invalid input data format/mechanism (#1664) 2023-07-12 10:35:16 +01:00
Kristaps Fabians Geikins 3999372b68 fix: pino dep missing 2023-07-12 11:55:48 +03:00
Kristaps Fabians Geikins 53c6871813 fix(fe2): apollo link logger missing 2023-07-12 11:21:16 +03:00
Kristaps Fabians Geikins eaf925b387 feat(fe-2): improved logging (#1684)
* feat(fe-2): improved logging

* yarn lock update

* attempted speckle/shared build fix

* helm updates

* Updates documentation for helm chart

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2023-07-12 10:21:08 +03:00
Iain Sproat 2d0d4b3d9a fix(ip logging): handle ip addresses in header x-original-forwarded-for (#1686) 2023-07-11 23:00:42 +01:00
Iain Sproat 9eaf1227f9 fix(object upload): provide guard of expectation of an array (#1665)
* fix(object upload): provide guard of expectation of an array
* additional logging to understand what is occurring
* adds tests for object not json and object not json array
2023-07-11 16:23:32 +01:00
dependabot[bot] d8aae97402 build(deps-dev): bump stylelint from 14.14.0 to 15.10.1 (#1676)
* build(deps-dev): bump stylelint from 14.14.0 to 15.10.1

Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.14.0 to 15.10.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.14.0...15.10.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix broken yarn.lock resolution

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2023-07-11 12:36:18 +01:00
AlexandruPopovici 59d327bbb3 Fix for block instances with no elements 2023-07-11 13:58:45 +03:00
Alexandru Popovici cc055fbc7a Alex/#1670 undead patch (#1680)
* After removing inserted draw ranges, materials associated with it are removed as well from the material array

* Solid color diff materials are transparent only when their opacity is lower than 1. This fixes the issue of not seeing the selected material on filly opaque diffed materials. However, for dif times <1 and > 0 the selected material will blend with the diff material. If this proves to be an issue we can look further into it

* Update clipping planes after selection
2023-07-10 21:52:09 +03:00
Alexandru Popovici dba377aaec Alex/#1658 Frontend Integration Performance Increase (#1670)
* WIP on measurements. Got some basic functionalities going

* New update for measurements. We're no showing multiple lines towards the measurement endpoint for better reference. Added dotted lines. Added text. Added measurement end and start points. Added the possibility to add multiple measurements.

* When double clicking, Input will not ignore the second click and will not send a click event. It will send the first click event, then a double click event. Implemented auto perpendicular measurement by using double click

* Added the option to have fixed sized measurement gizmos. As in, the are the same size regardless of the camera zoom. Implemented gizmo styles which lets us control and change at runtime the way the gizmos look. Currently they're only programatic, but I'll add controls for them in the sandbox next

* Implemented measurement management. Added picking, cancelling, removing and highlighting of measurements. Measurements are all now on their special ObjectLayer

* Added frame lock, so mouse events do not trigger intersection tests more than once per frame for the measurements. Added opacity options in the measurement gizmos. Made the end gizmo line transparent by default. Added preprocessor macro in the line shader which enables opacity as a uniform as opposed to attribute only like we had it before

* Point is now fixed size when style imposes it

* WIP on text aligning with the line. Still needs some things to be clarified since it can get complicated. Fixed some color issues. Added a maximum constraint to the screen space gizmo sizes. It's empirical, but seems to be workign decently for the all the various stream sizes I've trid

* Measurement gizmo now flashes red a few times if requrested to auto-lazer and no intersection was found

* Added unit conversion to measurment text, unit display and precision

* Implemented proper billboarding (fixed size and non fixed size) in the text and basic vertex programs as well as support for them in the text and basic speckle materials. Overhauled how the measurements look based on the forge reference

* Split measurements by type and added an abstract superclass. Point to point measurement has it's own implementation now

* Implemented screen space snapping for point to point measurements. Text background now gets dyanamically resized when needed

* End point gizmo is now only shown when required

* Added clamp guard to acos since dot can return outside of [-1,1] due to fp precision issues. Fixed an issue where existing measurements could be selected in the process of creating another measurement

* Added function for adding measurements programatically. Currently only start and end point make sense as measuremetn data

* Added an 100nm offset from the original point along the surface normal for auto-lazer function because sometimes it would intersect itself and report incorrect length

* Separated all measurement related rendering into a separate 'Overlay' pass. We now have better control over the rendering order of the individal elements of the measurement gizmos. This fixed the issue of having the measurement line overlap the end points

* Billboarded shaders now also work correctly with section planes

* Measurement tool no longer considers surfaces clipped by the section box

* Implemented correct raycasting for billboarded and fixed sized bibboarded objects, like the measurement's text

* Implemented zooming in to measurements when double clicking

* Big update to measurements which addresses most if not all requirements regarding UX/UI, API, and generaly functionalities. Additionally, a fix or an ancient issue in Units where kilometers were incorrectly calculated, and added automatically resolution updates to the SpeckleLineMaterial

* Added dpr factor into billboard size calculations. Fixed an issue with the round rect geometry generation function which would fail on macos. Added the billboard text background size into the text's style so it's configurable

* Text can now be updated for perpendicular measurements also when in it's complete state

* Fixed an exception which was thorwn when double clicking on another measurement while measuring

* When changing the measurement type while the measurement is still in it's dangling start state, the measurement gets cancelled and a new one with the new type gets started. If the measurement is in it's dangling end state, then it does not. This is now forge viewer does it

* Implemented screen space surface normal indicator line

* Measurements now work on visible and non-ghosted objects. Removed the surface normal indicator from the point to point measurement

* Fixed an issue with orthogrtaphic camera and NDC normal computation. Implemented fixed sized gizmo disc for orthographic camera

* Fixed an issue where the pipeline would not get properly reset after zooming in orthographic mode

* Fixed some regressions with the pre-existing application measurements functionalit and text. Fixed an issue where auto-lazer measurements were not vertically centered.

* Replaced the full blown copy method from SpeckleMesh's cached material with a faster version which *should* work just the sam

* Added optional copying of cached materials defaulting to false

* Implemented the option to insert draw ranges in batches. This is how selecting objects now works in order to avoid re-applying existing filters pointlessly. The onyl downside is that this introduces extra draw calls and overdraw, but it does not interfere with the existing draw range setting systems. We do make an attempy to minimize extra draw call count which works for most scenarios. With this change, we've removed selecting/unselecting objects from the generic setFilters approach in FilteringManager

* Apply any pre-existing selection filter after applying the rest of the filters

* Improved 'setNumericColorFilter' and 'setStringColorFilter' function performance by 10x. The culprit was calling 'indexOf' in the tree walk callback which apparently is very slow even for arrays with only a few thousand elements. By using direct indexing we eliminated the ridiculous overhead

* Performance increase of about 20x to isolating, hiding, unisolating and unhiding. Still WIP, the UI got messed up a bit

* Correct length of visibility ids

* Fixed an issue with un-isolating and un-hiding

* Did the same thing for highlight as I did for selection, where we take it out of the setFilters flow and apply direct filters on the rvs

* Removed timings

* Small fix for color filters

* Implemented inserting and removing draw ranges from the line batch

* Implemented draw range insertion and removel for the point batch

* Implemented draw range insertion and removel for TextBatch. Fixed an issue with inserting draw ranges in the batcher

* Fixed diffing colours which got screwed during this PR. Additionally made an even faster version for copying materials which has virtually no overhead
2023-07-10 12:55:38 +03:00
Iain Sproat ffc3c5186f chore(node): bump to 18.16.1 (#1675) 2023-07-07 16:54:18 +01:00
Alexandru Popovici f775c66ff4 BlockInstances now support hosted elements and work the same as RevitInstances (#1671) 2023-07-07 11:55:19 +03:00
Kristaps Fabians Geikins eec29d44e2 fix(fe2): spotlight & zoom extents fixes (#1672) 2023-07-07 11:07:26 +03:00
Kristaps Fabians Geikins 9e25843db4 feat(fe2): fe2 signifying header 2023-07-03 17:49:52 +03:00
Kristaps Fabians Geikins a50f8dca3a fix(fe1): post-auth redirect broken after access_code querystring removal 2023-07-03 17:08:41 +03:00
Kristaps Fabians Geikins 30fdc71fcd fix(fe2 & fe1): log out on invalid auth token on any GQL call (#1666)
* fix(fe2): log out on invalid auth token on any GQL call

* fix(fe1): redirecting to login page on any 403 GQL req

* WIP invalid token

* stricter toker invalidation checks in FE1

* stricter token check in FE2 as well
2023-07-03 15:04:57 +03:00
Kristaps Fabians Geikins 1c1a5eaf36 fix(fe1): log out on invalid auth token 2023-06-30 11:23:23 +03:00
Kristaps Fabians Geikins 40fec1efde fix(fe2): various diff mode fixes (#1663)
* fix(fe2): diff not loading if referenced version is an old one

* fix(fe2): diff closing when thread open
2023-06-29 16:55:29 +03:00
Dimitrie Stefanescu e62c0aa38d Merge pull request #1652 from specklesystems/dim/fe2/edits
FE2 Polish
2023-06-29 12:22:09 +01:00
Kristaps Fabians Geikins fdd9bd3899 feat(fe2): New discussion button in viewer (#1661)
* feat(fe-2): new discussion button in viewer

* invoking selection as well

* more adjustments
2023-06-29 14:14:52 +03:00
Dimitrie Stefanescu 033516e669 fix(fe2): last tweaks and comments 2023-06-29 10:25:49 +01:00
Dimitrie Stefanescu 8739e176fc revert(fe2): reverts debounce wait, hopefully making eslint happy 2023-06-28 18:06:40 +01:00
Dimitrie Stefanescu 5f1d9deb86 feat(fe2): disabling tour controls 2023-06-28 18:01:36 +01:00