Commit Graph

3081 Commits

Author SHA1 Message Date
Iain Sproat ae79a48eb0 chore(deps): bump numpy-stl to 3.0.0 (#1381)
- Snyk reported vulnerabilities in 2.17.1
2023-02-17 12:04:47 +00:00
Alexandru Popovici 1c78607942 Alex/#1347 Async Loading and Load cancelling (#1367)
* Implemented async walk for the world tree. Implemented asyn render tree building and async batch building. Implemented progressive loading

* WIP tree walk async that actually works using a generator

* Async walking now properly works and can be interrupted

* Properly working async walk

* Added loadObjectAsync function in the API which should be used if stream loading needs to be cancelled and for 'progressive' loading. Added a priority argument to the loadObjectAsync and to walkAsync functions which makes the async-iness so to speak configurable.

* Refactored the sync and async subtree batch building to remove duplicate code. Changed some logs for better clarity

* Fixed an issue with point clouds and material creation
2023-02-17 13:45:22 +02:00
dependabot[bot] eebaca1de9 chore(deps): bump node-jose from 2.1.1 to 2.2.0 (#1379)
Bumps [node-jose](https://github.com/cisco/node-jose) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/cisco/node-jose/releases)
- [Changelog](https://github.com/cisco/node-jose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cisco/node-jose/compare/v2.1.1...v2.2.0)

---
updated-dependencies:
- dependency-name: node-jose
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-17 10:03:36 +00:00
dependabot[bot] 1975f45164 chore(deps): bump undici from 5.15.0 to 5.19.1 (#1380)
Bumps [undici](https://github.com/nodejs/undici) from 5.15.0 to 5.19.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.15.0...v5.19.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-17 10:03:10 +00:00
Alexandru Popovici 5f53558abe Added displayable geometry validation instead of testing it's aabb, which is 0 for points (#1373) 2023-02-15 16:18:05 +02:00
Iain Sproat e1eba7b333 fix(logging): user input errors should be logged as info severity (#1370)
* fix(logging): user input errors should be logged as info severity
* Tidy the code to use a constant and a specific error type
* Attempting to remove the last admin user is invalid user input and should not be logged as error severity
* Missing passwords are user input errors
2023-02-15 12:50:35 +00:00
Iain Sproat e3ba2cc9c3 fix(log): auth endpoint should not log app secrets (#1372)
- logs are now warn severity, as they are not necessarily system errors and may be user errors or incorrectly configured application errors.
- improved the error messages, as we should not have multiple errors with the same message as this makes debugging difficult.
2023-02-15 12:40:32 +00:00
Iain Sproat 6bc6446170 fix(logs): previews not found is a warning, not an error (#1371)
- the preview service may not yet have generated the preview as this takes some time
2023-02-15 12:21:28 +00:00
Alexandru Popovici 234c403430 Fixed a viewer issue related to having meshes with no vertex data and IBO shufling. We're now ignoring any render view which lacks vertex data and we're also displaying a warning when such objects are converted (#1369) 2023-02-14 12:43:44 +02:00
Iain Sproat a6fba9ebd3 chore(node): bump node version to 18.14.0 (#1365) 2023-02-10 11:44:44 +00:00
Alexandru Popovici 3c78bfe9bb Clamped the maximum shadowcatcher texture size to the maximum hw allowed texture size modulated by a customisable scale (defaults to 0.5). This fixes the error we had for some streams where resulting texture size would exceed the maximum allowed (#1364) 2023-02-09 11:48:04 +02:00
Iain Sproat dcf8bcc607 fix(monitor): logging should produce a msg field containing the message (#1363)
python logging produces an event field with the message, but all other loggers produce a msg field.
2023-02-08 15:35:43 +00:00
AlexandruPopovici 9bfa2b8931 Changed some default shadowcatcher parameters 2023-02-02 18:54:10 +02:00
Kristaps Fabians Geikins 7aec9bf29d fix(frontend): viewer dragging not working in some cases (#1357) 2023-02-02 16:34:46 +02:00
Kristaps Fabians Geikins 815d46d3ac fix(frontend): viewer object properties not being scrollable (#1356) 2023-02-02 12:01:23 +02:00
Kristaps Fabians Geikins 67515add5a Merge branch 'main' of github.com:specklesystems/speckle-server into main 2023-02-02 11:16:47 +02:00
Kristaps Fabians Geikins 3dc4c57653 possible post auth redirect fix 2023-02-02 11:16:31 +02:00
Iain Sproat 7af5be723a chore(deps): bump http-cache-semantics to 4.1.1 (#1355)
- Patch version upgrade to address vulnerability of medium severity
2023-02-02 09:08:05 +00:00
Gergő Jedlicska 92887af32f gergo/powerBiApp (#1353)
* feat(server default apps): add powerbi as a default app on the servers

* feat(server powerbi app): remove stream write permission from the powerbi app

* fix(defaultApps): make sure id and secret are the proper length

* feat(defaultApps): throw if something goes wrong during init

* tests(server default apps): update the default app count on the server
2023-02-02 10:56:44 +02:00
Dimitrie Stefanescu 9299ee7f88 Merge pull request #1345 from specklesystems/alex/#1332-selection-style
Outlines in Selection
2023-01-27 11:40:27 +00:00
AlexandruPopovici a9c97825dd Merge branch 'main' into alex/#1332-selection-style 2023-01-27 13:29:24 +02:00
AlexandruPopovici 39d68df932 Fixed an issue where batches would remain hidden after applying visibility only to stencil objects 2023-01-27 11:00:39 +02:00
AlexandruPopovici 248948363a Fixed an issue I created myslef a while ago. Reverted the object loader to the original state and made the ViewerObjectLoader to send the logger's logging function instead of the logger itself when creating ObjectLoader instances 2023-01-26 18:42:12 +02:00
AlexandruPopovici ef7495a397 Fixed an issue with transparent materials and outlining. Fixed an issue with selecting objects and shadowmap. Added section planes update to the stencil and stencil mask passes 2023-01-26 18:30:44 +02:00
Gergő Jedlicska 8e3add7788 feat(server default apps): add powerbi as a default app on the servers (#1344)
* feat(server default apps): add powerbi as a default app on the servers

* feat(server powerbi app): remove stream write permission from the powerbi app
2023-01-26 14:04:51 +01:00
Alexandru Popovici c6694c2511 query now returns the proper query result type. Added return type to the Utils functions (#1342) 2023-01-26 14:15:24 +02:00
AlexandruPopovici cced51e2b8 Merge branch 'main' into alex/#1332-selection-style 2023-01-26 12:19:17 +02:00
Alexandru Popovici 071e6382ca Queries update (#1341)
* Separated Point queries from Intersection queries. Defined query result types for both

* Updated exports

* Update Utils

* Updated frontend after the queries updates

* Allowed the objects field in the IntersectionQueryResult to be null
2023-01-26 12:12:09 +02:00
AlexandruPopovici e35bf79829 Working always-on-top stencil outlines 2023-01-25 22:10:41 +02:00
Iain Sproat 68fd86b754 chore(frontend): use bitnami/openresty as base image for frontend Dockerfile (#1335)
* chore(frontend): use bitnami/openresty as base image for frontend Dockerfile

openresty/openresty was not being patched as frequently as we would like, resulting in numerous
vulnerabilities without resolution. bitnami/openresty is being patched more frequently.

Some additional changes were necessary when porting our frontend between these distributions:
- html files are in /app
- nginx.conf is in /opt/bitnami/openresty/nginx/conf/nginx.conf
- envsubst is not available by default in bitnami/openresty and needs to be copied in
- Nginx.conf - we wrap the server block in http block and overwrite root nginx.conf
    - using the existing bitnami/openresty nginx.conf as a server block alone causes issues with bitnami/openresty, as bitnami/openresty provides a root nginx.conf which conflicts with directives in Speckle's server block
- we copy the directives from openresty/openresty (which are known to work with Speckle's server block), and apply them alongside Speckle's server block. This creates a new root nginx.conf which we can overwrite the default on the image.
- nginx should use a port available to non sudo/root user, we have selected 8080 instead of previous 80
- need to explicitly output nginx logs to stderr / stdout

Created a readonly root file system on Kubernetes. This requires the following changes:
- emptyDir volumes are mounted in kubernetes to allow bitnami/openresty to write to specific locations
- explicitly include and copy mime.types file to nginx configuration directory

Due to the change to non-privileged port number (8080), the following subsequent changes were required:
- Update 1-click deployment script to match frontend at port 8080
- Updates docker-compose-speckle.yaml file

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2023-01-25 19:06:48 +00:00
Gergő Jedlicska 7f617f132e fix(server blobs): make sure not implemented blobs delete endpoint returns 501 (#1337)
* fix(server blobs): make sure not implemented blobs delete endpoint returns 501

* fix(server blobs): make sure not implemented blobs delete endpoint returns 501
2023-01-25 13:26:53 +01:00
dependabot[bot] 94f94e19b5 chore(deps): bump ua-parser-js from 0.7.31 to 0.7.33 (#1338)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 0.7.33.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.31...0.7.33)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: indirect
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 18:03:23 +00:00
dependabot[bot] 85191fa5d3 chore(deps): bump cookiejar from 2.1.3 to 2.1.4 (#1336)
Bumps [cookiejar](https://github.com/bmeck/node-cookiejar) from 2.1.3 to 2.1.4.
- [Release notes](https://github.com/bmeck/node-cookiejar/releases)
- [Commits](https://github.com/bmeck/node-cookiejar/commits)

---
updated-dependencies:
- dependency-name: cookiejar
  dependency-type: indirect
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 17:37:17 +00:00
Iain Sproat e24e443b79 chore(deps): bump ansi-regex@^2.0.0 to ^5.0.1 (#1334) 2023-01-24 12:34:50 +00:00
Gergő Jedlicska e06cea6b06 fix(ifc parser): replace empty children arrays with elements (#1333) 2023-01-20 20:57:03 +01:00
Alexandru Popovici 96b3a4923b Viewer queries (#1331)
* Added the concept of queries with a minimalistic implementation. Implemented PointQuerySolver which handles occlusion, projection and unprojection of points

* Added and tested the 'Pick' PointQuery operations which works just like an onclick viewer event

* Small fixes and changes to query and point query.

* Better approach on the occlusion query solving by using our universal scene intersection routine

* Tested and fixed occlusion testing for points

* Added optional custom width and height to NDC<->Screen helper functions

* Integrated queries in the frontend. Projection queries replace projecting by hand, and also added occlusion queries as a demonstration

* Added refactor comment
2023-01-20 18:59:01 +02:00
AlexandruPopovici c2a137135b WIP on stencil outlines 2023-01-20 18:54:02 +02:00
Gergő Jedlicska 79edabe012 trigger build 2023-01-20 13:07:16 +01:00
Gergő Jedlicska 62411f504d gergo/ifcParserRootObjectFIx (#1330)
* fix(ifc parser): make sure the commit root object is a Speckle Base

* feat(ifc parser): rename ifc node children prop key to elements to match with connectors
2023-01-19 17:16:39 +01:00
Gergő Jedlicska bd9bc81e71 fix(ifc parser): make sure the commit root object is a Speckle Base (#1329) 2023-01-19 17:01:34 +01:00
Iain Sproat 1c2ac67336 chore(circleci): bump dependency image versions (#1327) 2023-01-19 13:54:01 +01:00
Alan Rynne 494e307083 Update Github Actions to use the actions repo (#1325)
* Updated github actions to use our actions repo

* fix: added project num input and EOL
2023-01-19 11:33:45 +00:00
dependabot[bot] f7e71c76b8 chore(deps): bump knex from 2.0.0 to 2.4.1 (#1306)
* chore(deps): bump knex from 2.0.0 to 2.4.0

Bumps [knex](https://github.com/knex/knex) from 2.0.0 to 2.4.0.
- [Release notes](https://github.com/knex/knex/releases)
- [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/knex/knex/compare/2.0.0...2.4.0)

---
updated-dependencies:
- dependency-name: knex
  dependency-type: direct:production
...

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

* chore(deps): bump knex from 2.0.0 to 2.4.1

Addresses dependabot issue 165

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-01-18 11:40:17 +00:00
Iain Sproat 0e0eafdb78 chore(deps): bumps sharp in preview-service from ^0.30.5 to ^0.30.7 (#1321) 2023-01-18 09:54:32 +00:00
Iain Sproat 6fb2733ecb chore(deps): bump sanitize-html in server to ^2.7.1 (#1322) 2023-01-18 09:54:16 +00:00
Iain Sproat d189bcabfa chore(deps): bump undici to 5.15.0 (#1319) 2023-01-17 13:21:31 +00:00
Iain Sproat 6e0235b4f9 Dependabot bumps combined 2023-01-10 part 2 (#1302)
* build(deps-dev): bump vite from 2.9.8 to 2.9.13

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 2.9.8 to 2.9.13.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v2.9.13/packages/vite)

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

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

* chore(deps): bump sharp from 0.29.3 to 0.30.5

Bumps [sharp](https://github.com/lovell/sharp) from 0.29.3 to 0.30.5.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.29.3...v0.30.5)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
...

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

* Bumps viewer-sandbox vite to match frontend version

* chore(deps): bump undici to 5.14.0

* chore(deps): bumps knex from 2.0.0 to 2.4.0

* chore(deps): bump passport to 0.6.0 by bumping azure-ad-passport

* Revert "chore(deps): bumps knex from 2.0.0 to 2.4.0"

This reverts commit 4aa5add9ef0d05e0c17dd9ae9f4eb7709eaad3cd.

* Revert "Bumps viewer-sandbox vite to match frontend version"

This reverts commit 60af00215e6bcfe022f9ea09365b6346f5123e88.

* Updates lockfile

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-17 11:17:26 +00:00
Alexandru Popovici 38b9214774 Alex/#1307 (#1317)
* Found a fix for Apple GPUs not computing RTE properly

* Fixed #1307
2023-01-16 21:09:09 +02:00
Alexandru Popovici 0891f41848 Alex/shadowcatcher (#1316)
* Some messing around with a virtual plane

* WIP on virtual plane vertex baking

* Added a pass for generating the shadowcatcher texture. Implementation WIP

* PoC for the baked ray traced AO for the shadowcatcher

* WIP on shadowcatcher proper implementation. Removed the shadocatcher pass from the pipeline, and added it as standalone. Implemented the Shadowcatcher class which handles the entire generation process in a centralized way. Added real time parameters in the sandbox so we can see how different configurations work

* Added some more debug funationality. Working on improving vertex level ao calculation

* Dynamic max hit distance calculation for the shadowcatcher

* Added proper AO contribution value calculation and in the process removed the need for specifying a max hit distance

* Implemented explicit materials and shaders for shadowcatcher generation and display

* Proper materials, shaders and blending so that any backround will work correctly

* Added auto corection for texture size for situations where the AO was overly/under saturated.

* Fixed an issue where batches were incorrectly tested. Fixed an issue where blending for existing overlapping transparent surfaces was incorrect

* WIP for render based ao generation

* First draft of detail preserving shadowcatcher

* Improvement that removes over dakened areas

* Weigthed color0 and color1 evenly when extracting color3 from their sum

* Formalized the shadowcatcher and integrated it better with the speckle renderer or anything else it might use it

* Pipeline needs reset after shadowcatcher update

* Added RTE to the virtual plane and shadowcatcher AO generation material. Removed unused library

* Shadowcather now updated with the clipping planes as well as any filters apply, such that only opaque and non clipped scene objects contribute to the shadowcatcher's AO

* Fixed an old issue which makes extended three materials not get their custom uniforms properly updated when they are being used as scene material overrides. Tested shadowcatcher with multiple streams and it works as expected

* Improved plane fringing on streams that manifest it

* Added enabling/disabling shadowcatcher via the light configuration

* Removed unused material and shader. Fixed an issue where pow of negative value would return undefined on some platforms, messing up the final shadowcatcher result

* WIP on better blending for other scene transparent materials

* Changed the way shadowcatcher levels are blended together. Now they are initially added on top of another, then a sigmoid function is used to tone map the final value. This comes as a solution to reducing the very low darks signaled in some streams. On top of data, it also improves general contrast to streams with little surface contact.

* Removed the third shadowcatcher level from blending. It doesn't bring much value and it over-darkens most of the time

* Shadowcatcher is updated when streams are unloaded

* Enabled on-demand rendering of shadowcatcher levels

Co-authored-by: Alex <alex@192-168-0-157.rdsnet.ro>
2023-01-16 21:04:41 +02:00
Alexandru Popovici b1b934859e Shadowcatcher (#1310)
* Some messing around with a virtual plane

* WIP on virtual plane vertex baking

* Added a pass for generating the shadowcatcher texture. Implementation WIP

* PoC for the baked ray traced AO for the shadowcatcher

* WIP on shadowcatcher proper implementation. Removed the shadocatcher pass from the pipeline, and added it as standalone. Implemented the Shadowcatcher class which handles the entire generation process in a centralized way. Added real time parameters in the sandbox so we can see how different configurations work

* Added some more debug funationality. Working on improving vertex level ao calculation

* Dynamic max hit distance calculation for the shadowcatcher

* Added proper AO contribution value calculation and in the process removed the need for specifying a max hit distance

* Implemented explicit materials and shaders for shadowcatcher generation and display

* Proper materials, shaders and blending so that any backround will work correctly

* Added auto corection for texture size for situations where the AO was overly/under saturated.

* Fixed an issue where batches were incorrectly tested. Fixed an issue where blending for existing overlapping transparent surfaces was incorrect

* WIP for render based ao generation

* First draft of detail preserving shadowcatcher

* Improvement that removes over dakened areas

* Weigthed color0 and color1 evenly when extracting color3 from their sum

* Formalized the shadowcatcher and integrated it better with the speckle renderer or anything else it might use it

* Pipeline needs reset after shadowcatcher update

* Added RTE to the virtual plane and shadowcatcher AO generation material. Removed unused library

* Shadowcather now updated with the clipping planes as well as any filters apply, such that only opaque and non clipped scene objects contribute to the shadowcatcher's AO

* Fixed an old issue which makes extended three materials not get their custom uniforms properly updated when they are being used as scene material overrides. Tested shadowcatcher with multiple streams and it works as expected

* Improved plane fringing on streams that manifest it

* Added enabling/disabling shadowcatcher via the light configuration

Co-authored-by: Alex <alex@192-168-0-157.rdsnet.ro>
2023-01-12 12:35:10 +02:00