Commit Graph

147 Commits

Author SHA1 Message Date
Jedd Morgan 24f7fa48f9 Ensure fileType is lowercase (#5188) 2025-08-06 12:17:34 +01:00
Jedd Morgan 392a285423 feat(file-import): Proposed changes for file type handling with various FF (#5181)
* Proposed-changes

* Reverted changes to acceptedFileExtensions

* revert docker yml changes

* and again

* reverted yarn lock
2025-08-05 15:30:57 +01:00
Daniel Gak Anagrov 4e62c78b15 fix: added in progress to ifc importer service (#5172)
* fix: added in progress to ifc importer service
* feat: improved background job handling
2025-07-31 17:11:00 +02:00
Gergő Jedlicska c8056d71f3 feat(ifc-import-service): integrate the specklepy parser (#5147)
* feat(ifc-import-service): integrate the specklepy parser

* chore(ifc-import-service): lock packages
2025-07-28 12:46:27 +02:00
Daniel Gak Anagrov f8c8170e48 feat(fileImport): gql mutation for nextGen (#5132)
* feat: drafted gql mutation

* fix: warning issue

* unified naming of action

* feat(file_uplaod): moved finishFileUplaod test to graphql

* fix: tests

* removed nextGen rest endpoint

* fix: Int type, adapted fileupload next gen call

* feat: udpated gqlgen

* improved fileimport errors

* fix: access control

* mr comments

* fix: tests

* fix: import
2025-07-24 08:00:52 +02:00
Iain Sproat d0e3377978 feat(file uploads): large file uploads API is always available (#5103) 2025-07-23 13:36:27 +01:00
Kristaps Fabians Geikins 4b06f42db7 chore(server): run TS files directly (no compilation) (#5134)
* sort of works

* type fixes

* added option to run old way too
2025-07-23 11:20:40 +02:00
Daniel Gak Anagrov 6d33b4989c feat(file_upload): update observability metrics (#5079)
* feat: added count of background jobs
* feat: added repository function to count background jobs
* feat: addapted metrics to new queueing system
* feat: added duration to fileuploads
2025-07-21 10:51:14 +02:00
Kristaps Fabians Geikins b29331705e chore(server): get rid of duplicate gql TS types (#5065) 2025-07-14 11:31:12 +03:00
Kristaps Fabians Geikins bde148f286 chore(server): migrating fully to ESM (#5042)
* wip

* some extra fixes

* stuff kinda works?

* need to figure out mocks

* need to figure out mocks

* fix db listener

* gqlgen fix

* minor gqlgen watch adjustment

* lint fixes

* delete old codegen file

* converting migrations to ESM

* getModuleDIrectory

* vitest sort of works

* added back ts-vitest

* resolve gql double load

* fixing test timeout configs

* TSC lint fix

* fix automate tests

* moar debugging

* debugging

* more debugging

* codegen update

* server works

* yargs migrated

* chore(server): getting rid of global mocks for Server ESM (#5046)

* got rid of email mock

* got rid of comment mocks

* got rid of multi region mocks

* got rid of stripe mock

* admin override mock updated

* removed final mock

* fixing import.meta.resolve calls

* another import.meta.resolve fix

* added requested test

* nyc ESM fix

* removed unneeded deps + linting

* yarn lock forgot to commit

* tryna fix flakyness

* email capture util fix

* sendEmail fix

* fix TSX check

* sender transporter fix + CR comments

* merge main fix

* test fixx

* circleci fix

* gqlgen bigint fix

* error formatter fix

* more error formatting improvements

* esmloader added to Dockerfile

* more dockerfile fixes

* bg jobs fix
2025-07-14 10:26:19 +03:00
Gergő Jedlicska a5d624166b feat(backgroundjobs): add new background jobs module for file imports (#5041)
* feat(backgroundjobs): add new background jobs module for file imports
queueing

* fix(fileuploads): a merge gone wrong

* feat(backgroundjobs): rename rhino queue env var

* test(backgroundjob): use deep equal claude

* fix(fileuploads): sync PR review

* feat(backgroundjobs): add origin server url to the background jobs table

* test(backgroundjobs): make tests pass
2025-07-10 18:04:16 +01:00
Daniel Gak Anagrov ba3d9ade22 feat(activity): moved project roles to activity (#5019)
* feat: moved project roles to activity
* fix: added previous project role filed on activity
* fix: remvoke does not get logged as an actvity for every project in a workspace when removed from workspace
* fix: on delete user account, emit also seat and project event

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-07-10 11:44:54 +02:00
Iain Sproat f769ff4572 fix(server/fileuploads): longer time out before expiry, from last converted time (#5039) 2025-07-08 09:42:36 +01:00
Iain Sproat f55083a933 feat(server): add deprecation notice to /api/file/:fileType/:streamId/:branchName? (#5032) 2025-07-07 12:08:24 +01:00
Iain Sproat 556c2791b3 feat(file imports): large file uploads now work on docker compose (#5037) 2025-07-07 11:00:55 +01:00
Jedd Morgan c4778bfa42 feat(file-import): experimental ifc openshell importer (#5028)
* first pass

* second pass

* undo local changes

* Refactors env vars to feature flags, adds helm chart values

* fix documentation of feature flag

* fix typo

* adjusted speckleifc pinned version

* renamed enableLegacyIfcImporter helm ff to legacyIfcImporterEnabled

* Added experimental ifcimporter to next-gen file importer

* Fix next-gen import service redis url fallbakcs

* add missing server url envvar

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-07-04 17:01:25 +01:00
Iain Sproat d80fe58c1f feat(server/fileuploads): remove experimental next gen REST API (#5034) 2025-07-03 18:59:17 +01:00
Iain Sproat 8628e845bd chore(server/logging): metadata for file import error logs (#5021) 2025-07-02 15:17:24 +01:00
Kristaps Fabians Geikins 7e01c6f769 feat(fe2): improved file import error handling (#5016)
* WIP error dialog

* import error reporting

* dialog content memoization

* dialog work

* more cleanup

* apollo cache adjustments

* add jobId to uploads table

* fix showing old pending version state

* feat(fe2): prevent user from leaving page if active uploads (#5017)

* feat(fe2): prevent user leaving if active uploads

* fixxes
2025-07-02 11:01:41 +03:00
Kristaps Fabians Geikins 290fdb3e6d feat(server): dev-only endpoint for monitoring bull queues (#5000)
* feat(server): dev-only endpoint for monitoring bull queues

* cr comments
2025-06-30 16:12:45 +03:00
Kristaps Fabians Geikins 0ae4ba63a9 fix(server): externally managed DB connection for notifs (#5002)
* fix(server): externally managed DB connection for notifs

* weakMap based listener tracking
2025-06-27 17:31:32 +03:00
Kristaps Fabians Geikins c8bbab864a chore(server): improved db notif logging for issue troubleshooting (#5001) 2025-06-27 15:41:30 +03:00
Iain Sproat e99bcccb4f chore(server): no need for two alerts on this, log at warn (#4999)
- there is an alert which specifically finds this event type
- no need to also log at error level, which causes a second alert to fire
2025-06-27 11:32:10 +01:00
Kristaps Fabians Geikins fd1a3cf341 fix(server): using project scoped db for fileupload sub handlers (#4994) 2025-06-26 17:56:15 +03:00
Kristaps Fabians Geikins 1ae7e79d5b fix(server): file upload sub auth checks (#4992) 2025-06-26 16:46:39 +03:00
Kristaps Fabians Geikins ed507c265b fix(server): not firing upload created/processed subs in next gen uploads (#4991)
* fix(server): not firing upload created subs in next gen uploads

* lint fixes

* upload finished fixes

* test fixes

* fixed file_import_started
2025-06-26 15:33:11 +03:00
Kristaps Fabians Geikins c047ac7be1 chore(server): move cursor utils to db helper (#4988)
* chore(server): move cursor utils to db helper

* move collection
2025-06-26 13:57:55 +03:00
Iain Sproat febe2a9e4e fix(file imports): ensure correct server url is used by parser (#4987) 2025-06-26 09:08:39 +01:00
Iain Sproat a7e928438d fix(file import): consistently apply time outs and increase default to 30 min (#4982) 2025-06-25 15:48:57 +01:00
Iain Sproat 4784fdec4f chore(file imports): metrics for next gen file importer (#4977) 2025-06-25 09:36:28 +01:00
Iain Sproat 4a58e66d99 feat(file importer): send skp to rhino parser (#4973) 2025-06-23 13:45:26 +01:00
Gergő Jedlicska bb82c75745 fix(fileuploads): use the correct DB for tokens (#4971) 2025-06-20 16:26:13 +01:00
Iain Sproat d7d564d0d4 feat(file imports): next gen allows multiple file types (#4953) 2025-06-19 08:50:42 +01:00
andrewwallacespeckle c89fe339ec refactor: fix pagination with stable resolveKey, use reactive default… (#4951)
* refactor: fix pagination with stable resolveKey, use reactive defaultRoles, and remove email permission check

* Changes from call

* More changes from call

* WIP fixing team composite cursor

* paginated items fix

* minor rename

* composite cursor tools improved

* fe undoing debugging stuff

* extra fixes

* invitable collabs fix

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-06-19 10:28:31 +03:00
Kristaps Fabians Geikins 2be1592341 feat: show historical model uploads (#4954)
* ensure modelId is always filled

* BE seems fine

* frontendd

* pagination fix

* table max height

* lint fix

* unset tiny limit

* test fix
2025-06-18 10:56:33 +03:00
Iain Sproat 4738b97091 feat(server/fileuploads): use a presigned url to upload large files (#4901) 2025-06-17 17:38:47 +01:00
Kristaps Fabians Geikins 441aa6e54d fix: create model before uploading file (#4942) 2025-06-16 10:17:17 +03:00
Iain Sproat 9021f4ed0e fix(file importer): add profile:read scope to token (#4941) 2025-06-13 13:30:06 +01:00
Kristaps Fabians Geikins f30ef2f9fa feat: set model name/description on file upload (#4937)
* WIP except description

* description implemented

* added defaultTo to migration
2025-06-13 13:44:40 +03:00
Iain Sproat d20cde3a68 feat(fileimport): provide admin dashboard for queue (#4904)
* feat(fileimport): provide admin dashboard for queue

* mitigate deprecation warning

* fix typo in GitHub Action
2025-06-09 13:36:43 +02:00
Daniel Gak Anagrov 460245a71b fix(versions): object history hidden when quering by project (#4884) 2025-06-04 10:44:08 +02:00
Iain Sproat dae238f705 feat(fileimport service): allow dedicated Redis server for queue (#4858) 2025-06-03 08:55:54 +01:00
Daniel Gak Anagrov 23b61769b7 feat(fileupload): added eventBus and mixpanel monitoring 2025-06-02 08:22:20 +02: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
Daniel Gak Anagrov 1bf7075ae6 fix(fileimport): nextGen fileimport improvements (#4746) 2025-05-15 13:17:38 +02:00
Daniel Gak Anagrov 82547b1411 feat(fileuploads): nexGenFileUpload populates messages to new job queue (#4702)
* add file import job to nextGen import endpoint

*  moved queue, organized code

* add tests, minor refactoring
2025-05-14 12:32:54 +02: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
Daniel Gak Anagrov b15d5b836c feat(fileupload): create new endpoint for file upload (#4693)
* 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

* feat(fileUploads): new upload endpoint skeleton

* feat(fileUploads): added coverage for new file importer endpoint

* fix(workspaces): added tests, fix bugged on handling after stream

* refactor: removed useless file

* fix: comments, added tests

* feat: added modelId to file upload table

* fix: ensureError log

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-05-09 00:16:29 +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
Iain Sproat 15d67ba589 Merge pull request #4121 from specklesystems/iain/refactor-blob-storage
refactor(server/file upload): avoid extra http call
2025-05-07 15:11:15 +01:00