Commit Graph

2502 Commits

Author SHA1 Message Date
Daniel Gak Anagrov 873c52ecc2 fix: stripe (#5156) 2025-07-28 18:40:34 +02:00
Daniel Gak Anagrov 5bf5514819 fix: protect message of activity stream beeing to long (#5146)
* fix: protect message of activity stream beeing to long

* feat: tests

* fix: test
2025-07-28 15:43:49 +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
Gergő Jedlicska c9342e7dfb feat(gatekeeper): update stripe checkout session params for anrok (#5149) 2025-07-28 12:14:48 +02:00
Mike 24b6f1f329 Feat: Improved workspace switcher (#5058) 2025-07-24 12:31:43 +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 6a1f7ed767 fix(server): object previews, ensure sorting same if no cursor (#5136)
* fix(server): object previews, ensure sorting same if no cursor

* fix tests; with a null cursor it was implicitly using asc order
2025-07-23 16:39:58 +01: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 8d72ae9cab fix(server): extra fixes for running TS directly (#5135) 2025-07-23 12:44:19 +03: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
Kristaps Fabians Geikins e34a44bf66 fix(server): incorrectly dealing w/ different email casing (#5131)
* fix(server): incorrectly dealing w/ different email casing

* Cr comments
2025-07-23 10:19:46 +03:00
Kristaps Fabians Geikins cad77b92c9 feat(fe2): conditional cross origin isolation on viewer page (#5124)
* feat(fe2): conditional cross origin isolation on viewer page

* minor change

* minor cleanup
2025-07-22 10:14:49 +03: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
Daniel Gak Anagrov e5fb1361c6 fix: getting all user projects on deletion and user filter (#5112)
* fix: getting all user projects on deletion and user filter
2025-07-21 10:07:46 +02:00
Iain Sproat 964bc0fd44 Revert "chore(server/logging): logging for user deletion issue in prod (#5106)" (#5109)
This reverts commit 61ebb8f34e.
2025-07-18 12:26:34 +01:00
Iain Sproat 61ebb8f34e chore(server/logging): logging for user deletion issue in prod (#5106) 2025-07-18 11:15:00 +01:00
Iain Sproat 3d1346ff06 chore(server/logging): preview resurrector logs database region (#5104) 2025-07-18 11:07:24 +01:00
Iain Sproat f85f346285 chore(server/errors): add message to error (#5105) 2025-07-18 10:47:28 +01:00
Iain Sproat fd4588c99b feat(server/previews): retry dead preview resurrection if no backpressure (#5099) 2025-07-17 13:09:29 +01:00
Chuck Driesler d2f2d7bcfd feat(automate): allow function authors to regenerate function tokens (#5057)
* feat(automate): expose function regeneration endpoint

* chore(automate): remember to call the function

* fix(automate): use correct auth code action

* fix(automate): token regenerate policy

* fix(automate): expose function regen token policy

* feat(automate): workspace automation settings tab

* feat(automate): function token regeneration dialog

* fix(automate): improve gql usage in vue components

* chore(authz): tests for automate function policies

* fix(automate): use paginated query

* fix(automate): resolve initial result
2025-07-17 11:24:58 +02:00
Iain Sproat 875a1a1783 feat(previews): retry errored previews if feature flag enabled (#4498) 2025-07-16 15:30:19 +01:00
Daniel Gak Anagrov c7d97eb25c feat(activity): cronjob to backfill workspace seats, plans and subcriptions and project acl activity (#5027)
* feat: backfill as a scheduled execution
2025-07-14 16:28:04 +02:00
Chuck Driesler dc3cfb4263 chore(tokens): small cleanup of error message (#5068) 2025-07-14 12:15:32 +01:00
Gergő Jedlicska a1c370aafe feat(billing): allow tax id collection during checkout (#5066) 2025-07-14 10:43:37 +02:00
Kristaps Fabians Geikins b29331705e chore(server): get rid of duplicate gql TS types (#5065) 2025-07-14 11:31:12 +03:00
Iain Sproat 2bbfb8cede feat(server/email verification): configurable timeout (#5061) 2025-07-14 08:56:27 +01: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 520e931211 Gergo/web 3685 create new standalone python app for speckleifc based parser (#5051)
* 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(ifc_importer): initial importer app implementation with a sleeping
worker

* chore(pre-commit): remove black as a formatter, its now handled by ruff

* fix(ifc-importer): better handling of max job attempt

* feat(eslint): ignore package from eslint
2025-07-11 20:12:43 +02: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
Chuck Driesler 2c66b3aef5 fix(embedTokens): return all metadata on embed token create (#5055)
* fix(embedTokens): return all metadata on embed token create

* chore(embedTokens): no !

* fix(embedTokens): more correct type usage

* fix(embedTokens): update codegen.yml
2025-07-10 14:36:14 +01:00
Gergő Jedlicska 8c5d4d9654 fix(commits): return last commit of branch / stream even if its behind
the history limit
2025-07-10 12:50:26 +01:00
Daniel Gak Anagrov c2a28f8674 fix(#5018): avatar can be removed (#5022)
* fix: avatar can be removed
* feat: added tests for activeUser updates
2025-07-10 11:45:32 +02: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
Chuck Driesler 26070c5338 fix(embedTokens): use arg (#5050)
* fix(embedTokens): use arg

* chore(scripts): revert test command change
2025-07-09 14:11:34 +01:00
Chuck Driesler c35b2ce8c2 fix(embeds): private embed pagination (#5040)
* feat(tokens): create embed-specific tokens

* fix(tokens): repo functions and policy sketch

* chore(authz): embed token policies and tests

* chore(authz): fine

* chore(gql): lint descriptions

* fix(embedTokens): better api surface, repo structure

* chore(embedTokens): test fixes

* fix(embeds): check resource access

* fix(embeds): use resource access util

* fix(embedTokens): paginate tokens, emit policy checks

* fix(embeds): better query typing

* chore(embeds): rename property
2025-07-08 13:17:26 +01: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
Chuck Driesler aa29a09ebc feat(tokens): create embed-specific tokens (#5013)
* feat(tokens): create embed-specific tokens

* fix(tokens): repo functions and policy sketch

* chore(authz): embed token policies and tests

* chore(authz): fine

* chore(gql): lint descriptions

* fix(embedTokens): better api surface, repo structure

* chore(embedTokens): test fixes

* fix(embeds): check resource access

* fix(embeds): use resource access util
2025-07-07 12:02:38 +01:00
Daniel Gak Anagrov 3e7e11b8a1 feat(gatekeeper): add error log on seat mismatch (#5004)
* feat: added a specific errors on downscale issues
2025-07-07 12:28:59 +02: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 9dd95a372b chore(server): include token id in auth context (#5025)
- it is relevant to understand which token was used to act on behalf of an user
2025-07-03 10:23:07 +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
Iain Sproat 96c7394864 chore(server/previews): handle case where project deleted while preview generated (#4612) 2025-07-01 15:25:20 +01:00
Daniel Gak Anagrov 7de0229b76 fix: avoid workpaces to turn free when susbscription is present (#5015) 2025-07-01 13:08:24 +02:00
Iain Sproat a749a96791 fix(server/auth/google): handle error parameter in request query (#5003)
- callback queries with query parameter key of `error` and value of `access_denied` were not being handled and resulting in passportService case for no user, no error, and a failureType of null.
- tokenerror seems not to result in google verify callback being called, so moving the logic to handle it to the passport authentication callback
2025-07-01 07:38:07 +01:00
Daniel Gak Anagrov a4ab20c938 feat(activity): add workspace billing events and seats to activity (#4944)
* feat: improved gatekeeper eventsfor workspace history
* feat: userId on seat assign
* feat: record workspace seat events
* feat: workspace removals as activity
* feat: emit role and seat events on create workspace
* fix: reordered events for workspace creation
2025-06-30 16:49:36 +02: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