Commit Graph

100 Commits

Author SHA1 Message Date
Charles Driesler 9c637c27a4 Merge branch 'main' into oguzhan/acc-connector 2025-08-05 11:45:44 +01:00
Kristaps Fabians Geikins a6287fc06d feat(fe2 & server): saved views foundation (list & view) + bits n bobs (#5163)
* init db migration

* WIP store view

* create service call

* WIP insertion

* insert sort of works

* moving code arounmd

* creation tests

* avoid duplicate entries

* fixes from main

* basic group retrieval works

* group filtering works

* WIP view listing

* filter by acl

* fixes + WIP single group retrieval

* wip pivot

* more pivot query fixes

* tests fixed after pivot

* views list tests

* fixing test command

* business plan only checks

* more tests for coverage

* .dts import fix

* cli fix

* anutha one

* auth policy tests for business plan access

* WIP saved views panel base

* BE listing adjustments

* WIP group rendering

* group render done

* WIP post create cache updates

* listing fine?

* my vs theirs

* auto open

* minor fixes

* click load omg

* nicely loading views

* type fix

* less spammy loading

* another type fix:

* more lint fix

* test fix

* codecov disable

* moar coverage

* fix sidebar flashin

* more test coverage

* more test cvoverage

* minor adfjustments

* adj

* saved view wipe fixes

* CSR viewer

* more improvements

* extra feature flag checks

* lint fix

* feature flags fix

* more test fixes
2025-08-05 11:52:50 +03:00
Chuck Driesler e894477cd3 fix(acc): env variables and repo functions 2025-07-25 21:18:43 +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
Iain Sproat fd4588c99b feat(server/previews): retry dead preview resurrection if no backpressure (#5099) 2025-07-17 13:09:29 +01: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 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
Iain Sproat 556c2791b3 feat(file imports): large file uploads now work on docker compose (#5037) 2025-07-07 11:00:55 +01:00
Iain Sproat 96c7394864 chore(server/previews): handle case where project deleted while preview generated (#4612) 2025-07-01 15:25:20 +01:00
Iain Sproat 943a9a7047 fix(file imports): allow up to 24 hours by default for large files (#4990) 2025-06-26 11:10:48 +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 d7d564d0d4 feat(file imports): next gen allows multiple file types (#4953) 2025-06-19 08:50:42 +01:00
Iain Sproat 4738b97091 feat(server/fileuploads): use a presigned url to upload large files (#4901) 2025-06-17 17:38:47 +01:00
Iain Sproat 5db8d41d13 fix(tests): typo (#4911) 2025-06-10 11:58:11 +01:00
Iain Sproat dae238f705 feat(fileimport service): allow dedicated Redis server for queue (#4858) 2025-06-03 08:55:54 +01:00
Iain Sproat 43b0190720 Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-05-19 13:37:26 +01:00
andrewwallacespeckle 2f17b3f8b8 fix(server): Remove mailchimp step and journey ids (#4750)
* fix(server): Remove mailchimp step and journey ids

* Fix pre-commit - add end

* feat(server): use both onboardin and newsletter list audiences

* Fix type

* Remove unused triggerMailchimpCustomerJourney function

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2025-05-15 12:24:50 +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
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
Kristaps Fabians Geikins cf833a7719 fix(server): project role updates after workspace role/seat changes (#4599)
* fix(workspaces): workspace role sync

* role changes fixed + validated

* seat changes validated

* fix tests

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-04-29 10:49:37 +03:00
Iain Sproat 413937c0fa Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-04-28 08:16:19 +01:00
Iain Sproat 4529b6b37b Merge branch 'main' into iain/refactor-blob-storage 2025-04-26 08:19:21 +01:00
Kristaps Fabians Geikins 10832655d4 fix(server): all project created subs firing for workspace guests + req ctx cache fix for subs (#4453)
* WIP sub fix

* fix sub resolver caching issue
2025-04-16 11:21:17 +03:00
Iain Sproat d8ec2f12c4 feat(file import): expire failed file imports if taking too long 2025-03-28 15:05:44 +00:00
Iain Sproat 2dc32094d0 feat(helm chart): can be configured to deploy preview service in cluster 2025-03-15 11:31:40 +00:00
Iain Sproat 6e170d0c4f fix(docker compose): preview service can be used with docker compose 2025-03-15 10:43:40 +00:00
Iain Sproat 8ebb7abdd6 Merge branch 'main' into iain/refactor-blob-storage 2025-03-06 21:16:30 +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 6afad05430 refactor(blobstorage): separate REST components and services 2025-03-05 14:21:50 +00:00
Iain Sproat d2436e3a4d fix(ratelimiter): do not check rates if rate limiter disabled 2025-02-21 17:45:31 +00:00
Kristaps Fabians Geikins 1d2a594f0a chore: upgrade TS 5.2 -> 5.7.3 & ESLint to 9.20.1 (#4032)
* chore: upgrade TS 5.2 -> 5.7.3

* vite dts fix

* lint fix

* resolutions fix

* ui comp build fix

* precommit fix?

* latest eslint version

* autoloader fix

* undo unnecessary viewer change

* eslint fixes fe2 + trying disabled type linting

* lint fixes
2025-02-20 14:18:18 +02:00
Iain Sproat 5256d83fab refactor(server/middleware): compression enabled logic in separate module (#4006)
- the logic to enable compression is via env helper
- tidies app.ts by moving logic to separate file
2025-02-18 13:32:10 +00:00
Iain Sproat ec98f8d4cb chore(fe1): remove deprecated frontend (#3998)
---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-02-18 12:36:52 +00:00
Iain Sproat abe165e264 fix(server): improve logging of errors thrown by Express body parsing middleware (#3971) 2025-02-18 08:54:47 +00:00
Gergő Jedlicska bf80347abf gergo/web 2664 workspace backend powered metrics (#3985)
* feat(workspaces): delete workspace emit event

* feat(workspaces): move workspace group metrics to the backend

* Removed FE mixpanel group update

* Remove fragment

* test(gatekeeper): add unittest to new gatekeeper service

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-02-17 09:50:16 +01:00
Iain Sproat 0ce23be6f3 chore(logging): log messages related to a request should include request ID (#3945)
- this requires passing the request logger through to the method invoking the logger
2025-02-06 16:04:51 +00:00
Kristaps Fabians Geikins 347fa4b462 feat(server): improving knex query stack traces (#3855)
* feat(server): improving knex query stack traces

* minor cleanup

* more improvements
2025-01-21 10:59:09 +01:00
Kristaps Fabians Geikins dfed4ae5c1 feat(server): get request ctx from anywhere + log it w/ db operations (#3823) 2025-01-15 12:08:51 +02:00
Kristaps Fabians Geikins 3351e09418 feat(server): logging stack traces for db errors + allow async stack traces through env var (#3819) 2025-01-14 17:25:30 +01:00
Iain Sproat 457c532b2b feat(server): allow ratelimiting to be explicitly disabled (#3757)
* feat(server): allow ratelimiting to be explicitly disabled
- allows rate limiter to be enabled or disabled explicitly
- example .env file for testing now explicitly disables it
- disables rate limiter in CI tests, except where explicitly testing the rate limiter
2025-01-03 08:24:28 +00:00
Iain Sproat c4def81ae2 feat(server options): allow connection timeouts to be configured (#3701)
* feat(server options): allow connection timeouts to be configured

* feat(postgres config): allow connection parameters to be configured
2024-12-16 13:39:40 +00:00
Kristaps Fabians Geikins 4b6e7af19d feat(fe2): scope comment mentions to parent project collaborators (#3635)
* backend done

* get rid of email mention

* project scoped mentions work

* lint fix

* better user sanitization safety

* tests fix
2024-12-05 13:33:05 +02:00
Iain Sproat cdf9c4858a refactor(env vars): rename AUTOMATE_ENCRTYPTION_KEYS_PATH with ENCRYPTION_KEYS_PATH (#3616) 2024-12-04 10:29:35 +00:00
Gergő Jedlicska 01b222ced8 gergo/web 2155 gendo module multi region (#3528)
* fix(workspaces): allow workspace delete for paid workspaces

* feat(gendo): multi region gendo with new api integration and limits

* feat(gendo): user credits

* feat: adds limits to gendo panel, and terms and conditions link

* fix: reworks setting back camera view

* feat(gendo): webhook signature verification

* fix(gendo): nullability

* test(blobstorage): fix test dependency injection

---------

Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2024-11-22 16:43:31 +01:00
Iain Sproat a1ee8a89a7 chore(server): graceful shutdown (#3125)
* chore(server): graceful shutdown
- stop() on the apollo server should be called

* chore(server): gracefully drain apollo server

* Allow grace period to be configured

* Terminus manages the readiness and liveness endpoints

* terminus is responsible for stopping the graphql server

* remove logging on shutdown

* Remove redundant parameter

* move healthchecks out of business modules to top-level directory
- terminus can only handle readiness check, not liveness
- app needs to return readiness handler, so that server terminus can use it

* fix tests

* Fix broken merge

* fix broken merge

* incorporate review comments

* fix invalid merge

* fix readinesscheck not being passed as parameter
2024-11-19 11:08:38 +01:00
Kristaps Fabians Geikins f961a6da81 chore(server): various useful multiregion changes from comments pr (#3499)
* chore(server): various useful multiregion changes from comments pr

* hopefully fixing CI?

* test fix

* more test fixes??

* more test fixes..

* plz work ;((((

* revert multiregion on by default
2024-11-15 15:49:34 +02:00
Kristaps Fabians Geikins ee16b083ba feat(server): run tests in multiregion mode if RUN_TESTS_IN_MULTIREGION_MODE=true 2024-11-08 18:03:13 +02:00
Kristaps Fabians Geikins 5df716bf1c feat: add & list server regions (#3423)
* WIP create modal

* babababa

* create dialog looks ok

* FE largely there

* workss

* cleanup

* fixed up test plumbing to avoid deadlocks and simplify GQL calls

* test fix

* added all tests

* CI fix
2024-10-31 16:08:50 +01:00