Commit Graph

254 Commits

Author SHA1 Message Date
Kristaps Fabians Geikins 0c957ed9cc feat: setting home views (#5250)
* frontend update works

* starting viewer resources saved view tests

* test fix

* viewerResources new resolver + adjustment for home views

* create/update view fixing up and tests

* sort of works?

* fixing more race conditions

* loading preview

* disable home view stuff when federated

* fixing up links

* tests and home view fix
2025-08-18 14:35:59 +03:00
Iain Sproat 0721831a00 feat(server): FF_USERS_INVITE_SCOPE_IS_PUBLIC flag to make users:invite scope public (#5244) 2025-08-18 10:25:34 +01:00
Kristaps Fabians Geikins d013fe1dd7 feat: tightening up saved views permissions (#5239)
* updated auth policies

* added auth checks to resolvers

* tests for single view resolvers
2025-08-14 12:45:08 +03:00
Kristaps Fabians Geikins 0c837715a3 feat: support group delete (#5215)
* backend implemented

* added create to group, but search seems busted

* group search fixed

* moar group retrieval fixes

* more recalculations

* support group delete

* delete confirm dialogs
2025-08-13 10:14:44 +03:00
Kristaps Fabians Geikins ea5dadbdb2 feat: move view into group dialog (#5211)
* looking into dialog premature closing

* fixed group select

* rover update

* tests
2025-08-12 13:32:38 +03:00
Kristaps Fabians Geikins 0f5096fb2e feat: copy link to view + load original version (#5202)
* frontend nearly there

* backend adjustment sort of there

* WIP url busted issue

* does it work?

* how about now

* loading seems to work now
2025-08-11 16:02:35 +03:00
Kristaps Fabians Geikins f87edcb50f feat: saved view update dialog (#5196)
* view update BE foundation

* WIP update service call

* a bunch of tests

* WIP edit view dialog

* fix for auto submit

* frontend works
2025-08-08 13:27:15 +03:00
Kristaps Fabians Geikins 21e8ec3e27 feat: saved view delete (#5192)
* canUpdate auth policy

* delete mutation WIP

* backend works

* frontend working

* minor adjustments

* test fix

* switch to new empty state

* beefing up coverage

* cr fix
2025-08-07 12:13:39 +03:00
Charles Driesler b76b4a5d29 Merge branch 'main' into oguzhan/acc-connector 2025-08-05 16:21:49 +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
Charles Driesler a4b0f1eee5 Merge branch 'main' into oguzhan/acc-connector 2025-08-05 11:46:37 +01:00
Charles Driesler 9c637c27a4 Merge branch 'main' into oguzhan/acc-connector 2025-08-05 11:45:44 +01:00
Kristaps Fabians Geikins 9545ff6147 fix(shared): parseFeatureFlags should ignore empty string values (#5179)
* fix(shared): parseFeatureFlags should ignore empty string values

* updated values.yaml

* updated values.yaml

* tests fix
2025-08-05 12:54:53 +03: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
Charles Driesler 5669675dc7 chore(acc): fix build 2025-08-05 00:59:17 +01:00
Charles Driesler e989ae871c Merge branch 'main' into oguzhan/acc-connector 2025-08-05 00:52:34 +01:00
Charles Driesler 6da00d524c fix(acc): policy and usage in FE 2025-08-05 00:52:16 +01:00
Charles Driesler 4b96a9faeb fix(acc): getter gql and more 2025-08-04 23:05:39 +01:00
Kristaps Fabians Geikins 3ff32d639d feat(server): allow running migrations w/o having to build (#5178)
* feat(server): allow running migrations w/o having to build

* package.json fix

* avoid string mutation

* CLI for purging test DB
2025-08-04 13:40:28 +03:00
Chuck Driesler e894477cd3 fix(acc): env variables and repo functions 2025-07-25 21:18:43 +01:00
Gergő Jedlicska d0cd330a61 feat(authPolicies): add demo project as a publicly loadable override (#5137) 2025-07-24 11:04:53 +02:00
Iain Sproat d0e3377978 feat(file uploads): large file uploads API is always available (#5103) 2025-07-23 13:36:27 +01: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
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
Mike 0a57689469 Feat: Add private embeds to the pricing table (#5092) 2025-07-16 18:28:02 +02:00
Iain Sproat 875a1a1783 feat(previews): retry errored previews if feature flag enabled (#4498) 2025-07-16 15:30:19 +01:00
Kristaps Fabians Geikins d68f7943cc feat(ui-components): proper LayoutMenu mount on body support + fixes (#5069) 2025-07-14 15:34:52 +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
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 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 96c7394864 chore(server/previews): handle case where project deleted while preview generated (#4612) 2025-07-01 15:25:20 +01: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 5ef0e67ac7 fix: making pg LISTEN/NOTIFY skip pool (#5007) 2025-06-30 14:54:12 +03:00
Kristaps Fabians Geikins c57262aa44 chore: log listen/notify connection strings (#5006)
* chore: log listen/notify connection strings

* re-adding multiRegionConfig alias

* CR comments

* type fix
2025-06-30 11:59:28 +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 4784fdec4f chore(file imports): metrics for next gen file importer (#4977) 2025-06-25 09:36:28 +01:00
Gergő Jedlicska 794bd7c7e9 gergo/web 3616 add auth policy for turning on the exclusive workspace (#4956)
* feat(shared): rename user workspaces loader

* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* refactor(shared): extract user is workspace admin to an auth fragment

* feat(shared): add can createWorkspacePolicy

* feat(workspaces): WIP block workspace creation

* feat(server): add can create workspace checks

* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation

* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace

* test(shared): use test fake properly

* fix(server): eligble workspace typing fixes

* test(shared): fix more workspace fakes

* fix(workspacesCore): add missing loader

* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening

* feat(shared): introduce workspacePlanHasAccessToFeature function with tests

* chore(workspaces): fix more PR comments

* fix(workspaces): naming

* fix(workspaces): some more

* feat(shared): generalize workspace feature access policy

* feat(workspaces): allow toggling the isExclusive option for workspace
update
2025-06-18 12:43:27 +02:00
Gergő Jedlicska 4a2d85d68c feat(server): web 3485 prevent accounts from creating new workspaces (#4913)
* feat(shared): rename user workspaces loader

* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* refactor(shared): extract user is workspace admin to an auth fragment

* feat(shared): add can createWorkspacePolicy

* feat(workspaces): WIP block workspace creation

* feat(server): add can create workspace checks

* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation

* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace

* test(shared): use test fake properly

* fix(server): eligble workspace typing fixes

* test(shared): fix more workspace fakes

* fix(workspacesCore): add missing loader

* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening

* feat(shared): introduce workspacePlanHasAccessToFeature function with tests

* chore(workspaces): fix more PR comments

* fix(workspaces): naming

* fix(workspaces): some more
2025-06-18 08:58:26 +01: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
Chuck Driesler 85e600aa98 feat(viewer): include selected object application ids in viewer state (#4802)
* feat(viewer): include selected object application ids in viewer state

* fix(viewer): selected object application ids as map

* fix(viewer): drop legacy key
2025-06-09 17:10:28 +01:00
Gergő Jedlicska 941c5c6d8c fix(shared): remove duplicate policy implementation for reading project (#4898)
3d data
2025-06-06 11:51:44 +02:00
Gergő Jedlicska 72ecb9197b feat(gatekeeper): intoduce the enterprise plan (#4882)
* feat(gatekeeper): intoduce the enterprise plan

* chore(server): remove more "magic strings"

* test(shared): fix plan tests with enterprise case

* Small change to format plan name

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-06-05 11:07:59 +02:00
Kristaps Fabians Geikins 406d7fe9cf feat(auth): allow admins w/ override to receive (#4869)
* feat(auth): allow admins w/ override to receive

* minor fix
2025-06-02 12:38:35 +03:00
Kristaps Fabians Geikins 4412e7a798 fix(fe2): cors OPTIONS reqs sometimes returning redirects (#4860)
* fix(fe2): cors OPTIONS reqs sometimes returning redirects

* path parsing fix

* test fix
2025-06-02 10:22:40 +03:00
Gergő Jedlicska c76ed87580 feat(workspaces): allow reading emails of invited users (#4828)
* feat(workspaces): allow reading emails of invited users

* feat(workspaces): expose workspace member email in workspace team query
to ws admins

* feat(workspaces): add email to join requests view for admins

* chore(workspaces): fix join request type
2025-05-30 11:01:06 +02:00
Daniel Gak Anagrov 06e19fbd50 feat(gatekeeper): add updatedAt field to workspace plans (#4786)
* feat(gatekeeper): add updatedAt field to workspace plans

* fix: lint error

* fix: added updatedAt test

* fix: shared test
2025-05-26 11:35:53 +02:00