Commit Graph

3365 Commits

Author SHA1 Message Date
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
Iain Sproat a7f6fc0aba chore(deps): bump fast-xml-parser 4.2.4 to >=4.2.5 (#1710) 2023-07-18 14:30:53 +01:00
Iain Sproat e0819bb690 chore(deps): bump bl to >=1.2.3 and semver 7.0.0 to 7.5.4 (#1709)
* chore(deps): bump bl >=1.2.3
* sort resolutions in alphabetical order
* chore(deps): bump semver 7.0.0 to 7.5.4
2023-07-18 14:12:35 +01:00
Iain Sproat b8ce7b550b chore(deps): bump xml2js >=0.5.0 (#1708)
* chore(deps): bump xml2js to >=0.5.0
2023-07-18 13:46:27 +01: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 0f0215494b chore(deps): resolve word-wrap to a patched fork (#1707) 2023-07-18 12:42:11 +01:00
Iain Sproat e98b25ea55 chore(deps): bump tough cookie >=4.1.3 (#1706)
* chore(deps): bump tough-cookie >=4.1.3
2023-07-18 12:27:25 +01:00
Iain Sproat 4ac3d7477e chore(deps): bump semver to >=5.7.2 (#1705)
* chore(deps): bump semver to 7.5.4

* chore(deps): bump semver to >=4.3.2

* chore(deps): bump semver <7.5.4 to 7.5.4

* chore(deps): bump semver <5.7.2 to >=5.7.2
2023-07-18 12:13:36 +01: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 dc4c80885d fix(helm README): add missing description end tag (#1701) 2023-07-13 19:41:46 +01:00
Iain Sproat 8d21a868e3 ci(publish): all publish steps should wait on all required test steps to pass (#1700) 2023-07-13 19:34:38 +01:00
Iain Sproat 87a7397061 chore(fileimport): improve logging (#1697) 2023-07-13 19:11:29 +01:00
Iain Sproat 89e7393944 ci(codecov): base uploader is deprecated (#1698) 2023-07-13 19:08:40 +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
Iain Sproat c3dc3aceb2 fix helm test frontend2 (#1696)
* Quote values
2023-07-13 13:21:47 +01:00
Iain Sproat 54829ec257 fix(helm test): works with frontend2 (#1693) 2023-07-13 13:02:03 +01:00
Iain Sproat 05aa82b3f1 fix(helm): only deploy frontend-2 if enabled in helm chart (#1695)
* fix(helm): only deploy frontend-2 if enabled in helm chart
* Do not deploy frontend if frontend-2 is enabled
2023-07-13 11:34:33 +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 f0c73012e9 ci(frontend-2): docker image should not be built if github token is not set (#1687) 2023-07-12 00:40:41 +01: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
Iain Sproat fe9f6b1e0f chore(deps): bump fast-xml-parser to 4.2.5 (#1683) 2023-07-11 12:36:43 +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
Iain Sproat 991c8900b9 chore(deps): bump tough-cookie to 4.1.3 (#1682) 2023-07-11 12:27:47 +01:00
Iain Sproat 420a745e5f chore(deps): bump semver to 7.5.4 (#1681) 2023-07-11 12:25:56 +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
Iain Sproat 2626d9095b fix(docker compose): must use 2.3 as we have features removed in 3 (#1679) 2023-07-10 12:23:27 +01: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 fad395a292 fix(docker compose): set minimum compose version as '3' (#1677)
- matches the minimum version for our dependencies file ('3')
- healthcheck was introduced in 2.1, and healthcheck.start_period in 2.3, so >=2.3 was minimum
2023-07-10 10:29:10 +01:00
Iain Sproat ffc3c5186f chore(node): bump to 18.16.1 (#1675) 2023-07-07 16:54:18 +01:00
Iain Sproat a0a39bd711 fix(healthcheck): Add a 2 second timeout to the healthchecks (#1674)
* fix(healthcheck): Add a 2 second timeout to the healthcheck http request
* Ensure all error types are caught and the non-zero failure exit code is always 1
2023-07-07 16:22:15 +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
Iain Sproat fa36e9e40c feat(docker compose): healthcheck for speckle-server (#1651)
* feat(docker compose): healthcheck for speckle-server
- if speckle server pod becomes unresponsive (but has not yet exited with a non-zero exit code), it will be automatically restarted after 30s.

* feat(1click): add healthcheck to speckle-server container running in DigitalOcean 1click

* fix(1click): remove command statements
- the docker image is responsible for providing these
2023-06-29 15:55:40 +02:00