Gergő Jedlicska
84ed580ea4
feat(dashboards): create new dashboard share api ( #5468 )
...
* feat(dashboards): create new dashboard share api
* feat(dashboards): add enable / disable dashboard share flows
* test(dashboards): add more unittests to dashboard sharing
* Add sharing modal
* Update sidebar
* Update share token mutation
* feat(dashboards): share check for projects, tokens return modified
objects
* Updated tokens
* Fix
* Middleware
* Add default case
* fix(tokens): respect the tokens.revoked parameter
* fix(shared): can read dashboard now requires an active server session
* fix(server): handle dashboard no projects error in server
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
2025-09-18 16:01:07 +02:00
Iain Sproat
c9338c1ee3
fix(server/emails): move guard to caller and fix circular reference ( #5427 )
2025-09-12 12:53:01 +01:00
Iain Sproat
18265b6278
feat(server/emails): support require TLS configuration option EMAIL_REQUIRE_TLS ( #5425 )
2025-09-12 12:06:25 +01:00
Iain Sproat
a0f23dcefe
fix(server/email): emails configuration is secure by default but can be overridden ( #5417 )
2025-09-11 17:06:36 +01:00
Iain Sproat
2be6fa3d08
Revert "chore(server/email): log error if email cannot be verified ( #5408 )" ( #5416 )
...
This reverts commit 1ce92e2980 .
2025-09-10 17:28:00 +01:00
Iain Sproat
1ce92e2980
chore(server/email): log error if email cannot be verified ( #5408 )
2025-09-10 16:59:17 +01:00
Daniel Gak Anagrov
87082062c9
feat(multiregion): avoiding prepared transaction with only one database ( #5336 )
...
* feat: avoiding prepared transaction with only one database
* scope 2pc monitor specs to multiregion only
2025-09-04 14:42:55 +01:00
Daniel Gak Anagrov
75aa5d9b2d
feat(ci): reinstate multiregion tests ( #5365 )
...
* feat(multiregion): replace user replication
* chore(multiregion): optimise replication
* maybe it's this
* postgres is fun
* once more
* chore(multiregion): only replicate test user creation during multiregion tests
* feat: improved replicate_query logic
* fix: minor
* fix: starting issue
* feat: included user create and delete specs to multiregion
* feat: removed console logs
* fix: user defaults
* fix: multiregion test helper
* fix: update scenarios for users
* refactor(multiregion): swap replicateQuery concept to asMultiregionOperation (#5301 )
feat(multiregion): introduced asMultregionOperator, refactor test to user builder classes
* chore: renamings
* fix: remove comments
* feat: remove user replication
* refactor: simplified spec usages
* chore: comments
* chore: branches and favs
* chore: more tests
* chore: more tests
* fix linting
* fix tests
* feat: dropping replication
* refactor: moved project delete to service
* fix: comment
* feat: updateStreamFactory and updateProjectFacotry
* deleteProjectFactory + replicateFactory
* deleteWorkspaceFactory
* fix: selector
* fix: tests
* fix tests, finished createStreamFactory
* feat: simplify changes
* fix: remove comment
* fix: minor strucutres
* fix: moveProjectToRegion
* fix: moved branch creation outside of multiregion scope
* fix: branch creation
* fix: tests
* fix: ci tests
* fix: removed log form test
* fix: on specs, no random regionKeys
* feat: simplify ci for postgres
* try: fix health check
* feat: fixed tests in ci
* try: entrypoint
* try: entrypoint
* try: entrypoint
* try: POSTGRES_INITDB_ARGS
* feat: apply POSTGRES_INITDB_ARGS to all server tests
* fix: broken test
* fix: reinstate max health attempts
* fix: after merge
* fix: after merge
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-09-04 14:49:02 +02:00
Daniel Gak Anagrov
399c998fd7
feat(multiregion): apply prepared transactions to projects ( #5322 )
...
* feat(multiregion): replace user replication
* chore(multiregion): optimise replication
* maybe it's this
* postgres is fun
* once more
* chore(multiregion): only replicate test user creation during multiregion tests
* feat: improved replicate_query logic
* fix: minor
* fix: starting issue
* feat: included user create and delete specs to multiregion
* feat: removed console logs
* fix: user defaults
* fix: multiregion test helper
* fix: update scenarios for users
* refactor(multiregion): swap replicateQuery concept to asMultiregionOperation (#5301 )
feat(multiregion): introduced asMultregionOperator, refactor test to user builder classes
* chore: renamings
* fix: remove comments
* feat: remove user replication
* refactor: simplified spec usages
* chore: comments
* chore: branches and favs
* chore: more tests
* chore: more tests
* fix linting
* fix tests
* feat: dropping replication
* refactor: moved project delete to service
* fix: comment
* feat: updateStreamFactory and updateProjectFacotry
* deleteProjectFactory + replicateFactory
* deleteWorkspaceFactory
* fix: selector
* fix: tests
* fix tests, finished createStreamFactory
* feat: simplify changes
* fix: remove comment
* fix: minor strucutres
* fix: moveProjectToRegion
* fix: moved branch creation outside of multiregion scope
* fix: branch creation
* fix: tests
* fix: ci tests
* fix: removed log form test
* fix: on specs, no random regionKeys
* review fixes
* fix: mr comments
* feat: removed test
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-09-04 13:07:19 +02:00
Mike
08eb1f7a1d
Feat: Bashboards in app ( #5333 )
2025-09-01 14:24:17 +02:00
Chuck Driesler
8a9b4829d9
feat(multiregion): replace user replication ( #5253 )
2025-08-28 10:02:53 +02:00
Kristaps Fabians Geikins
9d9a456b28
chore(fe2): upgrade to nuxt 4 ( #5306 )
...
* actual npm update
* migrating plugin
* fix hydration (todo redis)
* fix dashboard title
* linting fixes
* fix ssr dev logs
* fix shared build
* more linting fixes
* more lint fixes
* preview dockerfile fix
* fix max stack trace issue
2025-08-27 10:26:32 +03:00
Iain Sproat
ea6676238e
chore(feature flags): merge background jobs with next gen file importer ( #5273 )
...
* chore(feature flags): remove legacyIfcImporterEnabled & experimentalIfcImporterEnabled
- experimentalIfcImporterEnabled is now assumed to be permanently true
- legacyIfcImporterEnabled is now assumed to be permanently false
* chore(feature flags): merge background jobs with next gen file importer
* remove reference to Redis from metrics
* fix README linting
* Update README instructions
* Add port for healthz to definition
2025-08-26 12:21:31 +01:00
Kristaps Fabians Geikins
3adf458e7a
fix: various activity broadcast issues ( #5269 )
2025-08-20 11:35:04 +03:00
Daniel Gak Anagrov
3d67e56fbc
[WIP] feat: proposal structre for 2pc operations in multiregion ( #5159 )
...
* feat: proposal structre for 2pc operations in multiregion
* feat: minor restructure
* feat: added another test
* fix(2PC): refactor to include return value and errors
* fix(2PC): improve and test tests
* fix(2PC): improve logging
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems >
2025-08-15 10:50:01 +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
Daniel Gak Anagrov
ba8a62dd2a
feat: added schedule for deleting stale prepared transactions ( #5169 )
2025-08-12 15:23:27 +01: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
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
Charles Driesler
6da00d524c
fix(acc): policy and usage in FE
2025-08-05 00:52:16 +01:00
Chuck Driesler
64d7aece29
chore(acc): mo repos mo services
2025-07-28 17:02:18 +01:00
Chuck Driesler
e894477cd3
fix(acc): env variables and repo functions
2025-07-25 21:18:43 +01:00
Chuck Driesler
ce7a004ce0
Merge branch 'main' into oguzhan/acc-connector
2025-07-24 12:40:01 +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
Chuck Driesler
06f12c134c
Merge branch 'main' into oguzhan/acc-connector
2025-07-22 20:24:52 +01:00
Chuck Driesler
c60a093a0a
fix(acc): updated table shape
2025-07-22 14:13:12 +01: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
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
oguzhankoral
cfadedd287
Webhooks and TODOs for next steps
2025-07-14 19:18:57 +03: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
oguzhankoral
2c77364e9a
Merge remote-tracking branch 'origin/main' into oguzhan/acc-connector
2025-07-11 05:32:10 +03:00
oguzhankoral
22bb18cc10
Initial implementation
2025-07-11 05:29:12 +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
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
96c7394864
chore(server/previews): handle case where project deleted while preview generated ( #4612 )
2025-07-01 15:25:20 +01: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
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
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
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