Commit Graph

74 Commits

Author SHA1 Message Date
Iain Sproat 55cffc3782 ci(docker): tidy dockerfiles with aim to increase cache hits (#4819) 2025-06-09 16:54:24 +01:00
Alexandru Popovici a385823b2d feat(viewer): objectloader2 integration (#4267)
* feat(viewer-sandbox): Made a sandbox function that will only invoke the object-loader loading objects

* first pass of creating an objectloader2

* updated build + added vitest

* try to get viewer sandbox to use new code

* sandbox type fix

* refactor a bit

* can download root

* intermediate commit for downloader/caching queue

* can download stuff!

* refactor files

* intro isBase and fix isString

* move single download to downloader

* fix download

* PR feedback

* some intermediate commit

* do clean up and download better

* clean up promises and linting

* can generate values while downloading and caching

* add a finish method

* remove unused functions

* remove asBase

* add temporary docs

* add more docs with mermaid

* add more test models

* add response validation

* add tests and redo options

* add test for download batch

* fix downloader tests and change Item to have clearer Base items

* add tests and refactor a little

* use fetch in downloader as an option

* use optional in-memory indexdb instead of monkey patching the global one

* more refactors for options for objectloader2

* add tests for objectloader2

* adjust single download

* benchmark loading and adjust ol2 batches

* download more!

* adjust to use hash privates

* refactored again with renaming

* cleanup

* make setupCacheDb throw instead

* use BatchedPool for downloads!

* fix tests

* adjust timings and add adaptive waiting

* Only wait if queue wasn't empty and queue size was full

* fix tests

* fix file names and some private usage

* fix interval and private usage

* rename vars

* use params for methods

* fix params for constructors and tests

* fix params for constructors and tests again

* using dexie

* faster settings but doesn't end well

* fixed end, optimized and removed logs

* fix tests

* fix types?

* update lock with WSL

* add e2e small model test

* fix/update yarn.lock

* Remove unused eslint ignore to fix pre-commit

* prettier fixes

* fix real DB usage

* rename methods to better match OL1

* rename methods to better match OL1 again

* add extra header collection

* add headers correctly

* test getTotalObjectCount

* feat(viewer-lib): Replaced old object loader with Adam's  objectloder2

* fix(viewer-lib): Removed the old object loader. Removed unneeded pause time in speckle loader

* Testing

* only deferred if not downloaded....don't save everything

* Lockfile

* pool isn't adjustable, adjust download buckets, dexie read is faster

* chore

* fix(viewer-lib): Fixed compiler errors

* fix getObject access with real indexeddb...adjust buffer for deferred access

* Fix disposal and pausing

* don't index item!

* fix dockerfiles to use OL2

* fix Dockerfile

* Fix dockerfile

* defer correctly and use record to add/lookup/remove to

* delete stuff correctly

* chore(sandbox): Enabled viewer loading

* use objects instead of arrays to avoid findIndex

* remove extra count

* add a found cache to avoid some db hits

* order matters for deferment

* move found map to deferment

* change option numbers

* 2 level cache with expiry

* defer everything, use loader to track what is requested....expire only found items

* add deferment disposal

* oops mismerge

* chore(sandbox): Default stream

* Beta version of CachePump and CacheReader

* Clean up initialization

* More clean up

* chore(objectloader2): Fixed CI compiler error

* chore(objectloader2): Fixed prettier

* add cachePump tests

* add cacheReader tests

* fixed more tests

* fixed final tests

* moving stuff around and lock return value

* try to move stuff out of objectloader2

* use a factory

* rename factory

* formatting

* eslist fixes

* try allocating no strings

* add comments

* small refactor and add another test

* fix deferment expiration and have test

* use byte size for max memory cache size

* fix deferment manager tests

* saved comment

* fix(viewer-sandbox): Fixed compiler error

* ignore tshy

* chore(frontend): Attempt to make viewer loading sequential

---------

Co-authored-by: Adam Hathcock <adam@hathcock.uk>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-05-21 10:05:50 +03:00
Iain Sproat ab06b712a7 Merge branch 'main' into iain/dockerfile-node18-node22 2025-05-12 14:46:40 +01:00
Iain Sproat 8a32b3f2ae chore(CI): speed up yarn install by skipping install of browsers 2025-05-01 20:35:43 +01:00
Daniel Gak Anagrov 6437f237aa feat(ci): move arg to improve docker cache hits (#4642)
Co-authored-by: Daniel Gak Anagrov <daniel@speckle.systems>
2025-05-01 12:39:44 +02:00
Iain Sproat 1b18786281 chore(preview service): use gl-egl over vulkan 2025-04-08 18:05:24 +01:00
Iain Sproat 5b619c83a3 Fix dependency version 2025-04-07 17:41:51 +01:00
Iain Sproat 65564acc5a feat(preview service): enable GPU rendering via Puppeteer 2025-04-07 17:34:31 +01:00
Iain Sproat 335f6a2a06 Merge branch 'main' into iain/dockerfile-node18-node22 2025-03-20 09:35:59 +00:00
Iain Sproat 575d48fdaf chore(dockerfiles): bump curl version for debian images
- debian has once again passively agressively removed older curl versions from their packages, forcing us to bump the version in order to build our image
2025-03-15 12:07:40 +00:00
Gergő Jedlicska 61609de97e gergo/previews (#3765)
* feat(preview-generator): add new preview generator webapp

* wip(preview-service): reworking the preview service backend

* feat(previews): logging

* feat(preview-service): streamline payloads

* fix(preview-service): do not log the full payload

* feat(preview-service): build new preview service

* feat(preview-service): add separate response queue

* feat(previews): integrate preview queues with the server

* feat(previews): use module alias

* chore(previews): remove old preview service code

* feat(previews): log stuff on job statuses

* fix(previews): add missing deps and scripts

* fix(previews): package deps fix

* fix(server): moar typing fixes

* Metrics related to jobs: total count, request failures, response errors & durations

* duration should include unit.
- histogram metric should be summary
- error responses include duration in seconds
- attempt to remove metric before adding it (prevent errors with duplicate metrics)

* fix(server, frontend): some ts fixes

* fixes

* fix(frontend): remove unneeded ts-expect-error

* chore(preview-service): eslint

* TS fix

* feat(previews): more smoal fixes

* fix(preview-service): alias loading

* feat(helm): updates for new preview service queue setup

* feat(preview-service): launch new browser for each job

* feat(preview-service): add timeout, fix liveliness

* fix(helm): add access to new secret in service accounts

* tidy metrics into a separate file

* Remove broken preview service acceptance test

* fix broken import

* Add metrics to test

* feat(preview-service): handle preview service shutdown properly

* fix(previews): merge bork

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-03-06 14:26:56 +01:00
Iain Sproat aaaf75d151 Merge branch 'main' into iain/dockerfile-node18-node22 2025-02-05 12:16:04 +00:00
Iain Sproat e6adceda6c chore(Dockerfile): use COPY --link flag (#3869) 2025-01-22 15:03:13 +00:00
Iain Sproat a1352fe8c8 chore(Dockerfile): remove all ADD statements as cache is missed (#3865) 2025-01-22 13:07:39 +00:00
Iain Sproat a4bff8da2b Merge branch 'main' into iain/dockerfile-node18-node22 2024-10-14 19:36:48 +01:00
Iain Sproat 0881caadc8 chore(preview-service): fix docker compose to avoid pinning chrome (#3030) 2024-09-18 13:32:45 +02:00
Gergő Jedlicska 965c9f94f6 feat(preview-service): use axios for proper timeout support (#2939) 2024-09-11 10:55:37 +02:00
Iain Sproat 9a28e467ba refactor(preview-service): conforms to design patterns, adds tests, and is typed (#2429)
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2024-09-04 13:06:23 +01:00
Iain Sproat efbdd16fdd small fixes to the docker file 2024-08-16 12:42:23 +01:00
Iain Sproat 2991984a7e fix nix package name 2024-08-16 09:33:32 +01:00
Iain Sproat cd3ef0e951 chore(node): bump from 18 to 22 2024-08-16 08:49:34 +01:00
Iain Sproat 5dcd149160 fix(preview service): create dockerfile using puppeteer's example dockerfile (#2408) 2024-06-19 18:46:00 +01:00
Iain Sproat c85761c636 fix(preview service): set userDataDir and update list of dependencies for chrome (#2400)
* fix(preview service): update list of dependencies for chrome
- https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#chrome-doesnt-launch-on-linux

* Set user data directory for puppeteer to be read-write volume in k8s
2024-06-19 11:12:32 +01:00
Kristaps Fabians Geikins 4dea8249d5 tryna cache bust preview-service dockerfile 2024-06-19 10:51:08 +03:00
Iain Sproat aed61adaf3 feat(preview-service): install chromium browser as a dependency at build time not runtime (#2019) 2024-06-18 20:47:48 +01:00
Iain Sproat 8c39ed6623 fix(preview-service): puppeteer requires permissions to read and write chrome directory (#2395) 2024-06-18 17:08:11 +01:00
Kristaps Fabians Geikins f023ebe96e fix(preview-service): hardcode puppeteer cache dir (#2393) 2024-06-18 16:19:35 +01:00
Kristaps Fabians Geikins a41483ae76 fixx (#2392) 2024-06-18 14:05:55 +01:00
Kristaps Fabians Geikins c7fdc6acc2 chore: updating ws everywhere to resolve SNYK-JS-WS-7266574 (#2385)
* chore: updating ws in various ways

* puppeteer upgrade

* updating codegen deps

* workspaces cmd update

* various extra fixes

* minor preview-service troubleshooting improvements

* dockerfile fixes

* hopefully fixing docker build fe2

* try again

* try large again
2024-06-18 13:26:01 +03:00
github-actions[bot] a79680da00 Update image digests (#2203)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-06-18 10:18:46 +01:00
github-actions[bot] 11b62f3824 Update image digests (#2189)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-04-09 10:05:32 +01:00
github-actions[bot] 4947573584 Update image digests (#2172)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-03-28 08:57:01 +00:00
github-actions[bot] bbe48effd0 Update image digests (#2139)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-03-15 16:42:10 +00:00
github-actions[bot] 4418932832 Update image digests (#2040)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-02-23 12:42:29 +00:00
github-actions[bot] 8185683b4a Update image digests (#1966)
Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: specklebot <devops@speckle.systems>
2024-02-09 01:13:48 +00:00
github-actions[bot] 36f749b24a chore(deps): bump image digests (#1939)
* fix(github action): use correct format for author & committer git signing

* Update image digests

Signed-off-by: specklebot <devops@speckle.systems>

---------

Signed-off-by: specklebot <devops@speckle.systems>
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: specklebot <devops@speckle.systems>
2024-01-05 15:57:25 +00:00
Iain Sproat b396029cf6 chore(Dockerfile): bump images to debian bookworm, pin images by digest, and github action to auto-bump (#1937)
* chore(Dockerfile): pin images by digest this ensures consistent builds with images pinned by SHA
* introduces a GitHub Action will create a PR to update the images when there is a new version, and will pin to that newer version SHA.

* Bump debian to 12 'bookworm'
* Bump pypi libraries
  * except frontend-1, as only debian 11 is currently supported by openresty
* Bump debian packages
2024-01-05 11:51:04 +00:00
Iain Sproat 3db83e50be chore(deps): bump node from 18.18.2 to 18.19.0 (#1921)
* chore(deps): bump node from 18.18.2 to 18.19.0

* Additional dependencies
2023-12-15 11:30:07 +01:00
Iain Sproat 438c6bbf0d chore(deps): bump node from 18.17.1 to 18.18.2 (#1844) 2023-10-31 18:08:25 +00:00
Gergő Jedlicska 42eb66c75c Rework automation results (#1816)
* WIP: rework results

* fix: preview service build dependency version
2023-10-10 21:56:58 +02:00
Iain Sproat 080e8197f9 chore(deps): bump node from 18.17.0 to 18.17.1 (#1771) 2023-08-24 10:55:43 +01:00
Iain Sproat ea941b3b81 chore(deps): bump node to 18.17.0 (#1722) 2023-07-26 12:38:50 +01:00
Iain Sproat ffc3c5186f chore(node): bump to 18.16.1 (#1675) 2023-07-07 16:54:18 +01:00
Kristaps Fabians Geikins 42a49fb635 chore: ensuring react ttypes are always stubbed (#1570) 2023-05-08 14:07:56 +03:00
Iain Sproat 4eab7d9dcd chore(deps): bump node to 18.16.0 (#1564) 2023-05-05 12:43:39 +01:00
Gergő Jedlicska 45149ccb6a fix preview docker deps 2023-05-02 13:24:28 +02:00
Gergő Jedlicska 50ae090d01 fix preview docker deps 2023-05-02 13:10:22 +02:00
Iain Sproat cff0fa8e31 chore(deps): bump node images to 18.15.0 (#1500) 2023-04-05 12:15:26 +01:00
Snyk bot 8895eb2321 fix: packages/preview-service/Dockerfile to reduce vulnerabilities (#1400)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326666
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326668
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326685
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326686
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326688
2023-02-22 09:35:27 +00:00
Iain Sproat a6fba9ebd3 chore(node): bump node version to 18.14.0 (#1365) 2023-02-10 11:44:44 +00:00