Commit Graph

440 Commits

Author SHA1 Message Date
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
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
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
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
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
Chuck Driesler 2f36e518a0 fix(multiregion): make move region job safe for replication (#4907)
* chore(multiregion): failing test for move project region

* fix(multiregion): unblock replication after regional move

* fix(regions): try-catch replication

* fix(regions): cache roles within job

* fix(regions): toggle region key in target db
2025-06-25 15:47:34 +01:00
Kristaps Fabians Geikins cfa0b249d1 feat: seat type selection in invite flows (#4908)
* backend seems to work

* bigger menu support

* FE nearly done

* merge fix

* ui changes

* workspace invite disclaimer

* project disclaimer

* project invite viewer -> editor flow

* extra minor fixes

* Change project role input label

* extra test assertions

---------

Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2025-06-13 09:45:58 +03:00
Iain Sproat 1349ea714e fix(server): ensure object IDs are like MD5 hashes; 32 character hexadecimal (#4392) 2025-05-28 08:43:31 +01:00
Kristaps Fabians Geikins 9998ed2586 feat: personal project limits (#4759)
* base limits cleanup

* history limit tests

* canCreatePersonal & tests

* canInvite block

* WIP model check

* fix tests

* shared tests fix

* lodash import fix

* lint fix

* help update

* hopefully fixing test

* CR comment
2025-05-20 14:56:05 +03:00
Iain Sproat 3098100ca9 Merge branch 'main' into iain/task-id-to-request-context 2025-05-19 14:30:31 +01:00
Iain Sproat cb7ff5247d Merge branch 'main' into iain/task-id-to-request-context 2025-05-19 14:26:26 +01:00
Iain Sproat 43b0190720 Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-05-19 13:37:26 +01:00
Kristaps Fabians Geikins 7a59ba5ab8 chore(server): remove unused stream isPublic/isDiscoverable fields (#4743) 2025-05-15 09:18:06 +03:00
Kristaps Fabians Geikins 4db1531064 feat: "workspace" project visibility (#4704)
* WIP new visi

* test fixes

* visibility seems to work

* authz policies & authorizeResolver updated

* various test fixes

* users tests

* frontend changes

* minor adjustments

* shared test fix

* test fixes

* force rerun CI
2025-05-14 15:20:26 +03:00
Iain Sproat ef290baff1 fix(server): throw stream not found error if stream not found 2025-05-13 14:41:32 +01:00
Iain Sproat a266fe0010 fix(server): log message includes all referenced properties 2025-05-13 10:24:42 +01:00
Kristaps Fabians Geikins c6dcf18bdb feat(server): workspace project invite auto-accept (for existing wp members) (#4622)
* WIP ts

* DI fix & tests moved to TS

* auto-accept seems to work

* CR comments
2025-04-30 17:39:07 +03:00
Iain Sproat 76decb78f3 Fix references 2025-04-28 15:23:32 +01:00
Iain Sproat 413937c0fa Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-04-28 08:16:19 +01:00
Iain Sproat c6e8d1ba77 Merge branch 'main' into iain/task-id-to-request-context 2025-04-26 08:30:20 +01:00
Kristaps Fabians Geikins f1ae0916c6 feat(server): improved user/server profile mp tracking (#4540)
* user tracking

* server profile tracking

* style
2025-04-23 15:19:24 +03:00
Iain Sproat 920099c39f chore(readable code): use TIME_MS for readable durations
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00
Gergő Jedlicska 2d26c76ef2 feat(limits): better limits messages and some more fixes 2025-04-18 15:58:28 +02:00
Iain Sproat b0bdeb9768 chore(logging): improve logs & error messages for workspace migration 2025-04-16 12:52:03 +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
Alessandro Magionami 0c18acc452 Alessandro/web 2945 comments hide body (#4385)
* chore(core): move limits logic into shared

* feat(comments): limit text and rawText for comments

* chore(core): removed test moved to shared

* chore(comments): generate gql types

* feat(comments): rework comment history limits

* chore(comments): fix tests

* chore(shared): add dayjs as dependency

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2025-04-15 10:44:12 +02:00
Alessandro Magionami 96698452f2 feat(core): limit returned commits in streams and breanches 2025-04-10 10:09:54 +02:00
Alessandro Magionami 8d554e726d feat(core): add workspace limits 2025-04-07 16:55:45 +02:00
Alessandro Magionami 6f5415e66d Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-2944-versions-hide-referencedobject 2025-04-07 12:48:58 +02:00
Kristaps Fabians Geikins e3d3c1446b feat: enable domain discoverability on workspace creation (#4235)
* frontend changes implemented

* WIP BE

* backend seems to work

* CR fixes
2025-04-07 12:34:45 +03:00
Alessandro Magionami d067c5148c chore(core): limit versions 2025-04-04 10:54:15 +02:00
Kristaps Fabians Geikins f76a2c34d3 chore: add no floating promises lint rule (#4249)
* chore: add no floating promises lint rule

* minor cleanup

* fix test by only running if node 22 or greater

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-03-25 13:36:49 +02:00
Chuck Driesler c6e0714bc4 chore(authz): hoist authorizeresolver (#4253)
* chore(authz): hoist deleteStreamAndNotify

* chore(authz): hoist updateStreamAndNotify

* chore(authz): comment
2025-03-24 16:51:19 +00:00
Iain Sproat 61c0fd41c4 Merge branch 'main' into iain/task-id-to-request-context 2025-03-14 17:25:38 +00:00
Kristaps Fabians Geikins d903e8ffc4 feat(server): support editor -> viewer seat downgrades (#4181)
* new seat based project role checks implemented

* everything done

* minor bugfix
2025-03-14 14:21:25 +02:00
Iain Sproat 59100b7d08 Merge branch 'main' into iain/task-id-to-request-context 2025-03-11 09:40:59 +00:00
Kristaps Fabians Geikins ebade45d43 feat: remove project discoverability concept from UI (#4125)
* feat: remove project discoverability concept from UI

* test fix
2025-03-07 13:09:03 +02:00
Kristaps Fabians Geikins fb6dc448ca feat(server): prevent viewer seat from becoming project contributor/owner + extra fixes (#4117)
* unrelated fixes that i noticed

* tests for fix

* tests & working restrictions

* test fix

* test fixx
2025-03-06 13:26:16 +02:00
Iain Sproat ec0253c895 Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-03-04 16:36:43 +00:00
Iain Sproat d79f561647 fix broken imports 2025-03-04 16:27:44 +00:00
Iain Sproat bce8f8fd5e Merge branch 'main' into iain/task-id-to-request-context 2025-03-04 16:25:49 +00:00
Iain Sproat 47556d68c7 chore(server/scheduled tasks): should log task name and unique task Id (#4094) 2025-03-03 15:12:11 +00:00
Iain Sproat 193e7d870e chore(server/logging): email logging should include request or task Id in log context
- allows us to better link events to triggering actions
2025-03-01 23:30:57 +00:00
Iain Sproat d46b9fc5ae chore(server/scheduled tasks): should log task name and unique task Id 2025-03-01 21:16:23 +00:00
Iain Sproat fb95dd3bdd Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-02-28 09:23:48 +00:00
Iain Sproat ce08e5e02d refactor(server): logging directory renamed to observability (#4077) 2025-02-28 08:43:54 +00:00
Iain Sproat 9e6a386925 Merge branch 'main' into iain/ratelimiter-should-respect-configuration 2025-02-26 14:35:09 +00:00