Commit Graph

2669 Commits

Author SHA1 Message Date
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
Gergő Jedlicska c3d452ad0c Gergo/cxpla 278 v2 server api endpoint with masking support (#5414)
* WIP: streaming masking endpoint

* feat(objects): working object streaming with filtering

* feat(object-loader): use the new objects endpoint

* fix(server): allow downloading of public project data

* feat(objectloader-2): include object masking in objectloader

* feat(objectloader2): make attribute masking optional

* fix(server): remove unused imports
2025-09-18 15:56:41 +02:00
andrewwallacespeckle ab5756e144 Update docblock. Update condition in data.ts 2025-09-18 12:46:02 +01:00
andrewwallacespeckle 1899e60f18 fix server build 2025-09-18 12:41:48 +01:00
Iain Sproat 1267a27e69 fix(email): pino does not like log functions in inline logic (#5481) 2025-09-17 17:10:44 +01:00
Iain Sproat 9b8157fedc feat(server/emails): emit delivery status in email.sent payload (#5455) 2025-09-17 10:46:22 +01:00
Kristaps Fabians Geikins dfdd5ce305 fix(fe2): fix saved federated view loaded camera coords (#5456)
* various loading issues resolved

* fix: viewer zoomToObject unnecessarily triggering
2025-09-16 10:46:23 +03:00
andrewwallacespeckle e4f9168670 fix build 2025-09-15 17:03:20 +01:00
andrewwallacespeckle 324520f83d feat(fe): use email verification timeout from server 2025-09-15 16:16:14 +01:00
Kristaps Fabians Geikins 689d2c5638 feat(fe2): filter color serialization (#5437)
* feat(fe2): filter color serialization

* early load fix
2025-09-15 15:02:18 +03:00
Mike cac15190da Feat: Presentations base (#5389) 2025-09-15 10:01:59 +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
Chuck Driesler d555bd9e57 feat(sso): allow sso session duration overrides (#5289)
* feat(sso): allow secret sso session overrides

* fix(sso): better timeout config

* chore(sso): fix test definitions
2025-09-11 20:03:56 +02: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 0afdaf5fc0 fix(server/fileuploads): deprecated endpoint now uses postgres queue (#5410) 2025-09-11 15:57:31 +02:00
Iain Sproat 0c9b65c52d chore(server/fileuploads): separate garbage collection for logging/alerting (#5405)
- separate exceeded attempts from no remaining compute budget so we can log differently
- this enables each to be alerted differently
2025-09-11 12:47:26 +02:00
Daniel Gak Anagrov 2c122a138d feat(workspaces): apply prepared transactions to workspaces (#5383)
* 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

* feat: workspace replciation

* fix: mr comments

* feat: removed test

* fix: worksapce test creation

* fix: mr issues

* updated mutations

* feat: drop workspace random defaults

---------

Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-09-11 10:08:26 +02: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 1f5003bd32 feat(multiregion): cron job to detect regions out of sync (#5392)
* feat: basic structure

* fix: detect regions out of sync

* feat: added sync logic

* fix: tests

* feat: merge all strategy

* fix: mr comments

* fix: updatedAt in updates

* feat: project updatedAt no longer is a hidden operation

* feat: project region sync

* feat: delete project on cross-region-move

* removal: unnecesary permisions

* fix: caching issue

* fix: saved views on project cross region move
2025-09-10 16:35:48 +01:00
Iain Sproat 4620875ece fix(server/fileuploads): profile.email not users.email (#5411) 2025-09-10 11:56:29 +01:00
Iain Sproat 46aaa9a15b fix(server/fileuploads): add user:email scope to token (#5409)
- allows file importer to report user metrics
2025-09-10 11:01:05 +01:00
Iain Sproat 24d159d3cb fix(server/fileuploads): garbage collector should collect queued jobs which have reached max attempts (#5401) 2025-09-09 15:06:08 +01:00
Iain Sproat 79ef564e1b feat(server/fileuploads): background jobs draws down a compute budget (#5349) 2025-09-08 16:26:41 +01:00
andrewwallacespeckle 4e8bcf5540 fix server build 2025-09-08 12:54:29 +01:00
Iain Sproat 36fdde28bb fix(server/emails): improve error handling of failed emails (#5390) 2025-09-05 16:14:36 +01:00
Gergő Jedlicska 87b621e92a feat(server): various fixes (#5360) 2025-09-05 13:24:56 +02:00
Kristaps Fabians Geikins faab48964b fix: groups removing all references on last view delete (#5387) 2025-09-05 12:00:23 +03:00
Kristaps Fabians Geikins e771a75164 feat: update view date only on move/replace (#5382) 2025-09-05 10:18:44 +03: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
Gergő Jedlicska 7e1add4295 switch server hostapp support to slug (#5374)
* feat(shared): add missing sourceApps

* feat(shared): add missing source apps

* feat(server): map version source apps to slugs

* fix(shared): rhino search key

* fix(shared): search key ordering

* fix(server): lower case compare soureceApplications
2025-09-04 15:13:59 +02: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
Kristaps Fabians Geikins 2c72b8e7b8 fix: evict cache on saved view group delete (#5378) 2025-09-04 11:40:38 +03:00
Kristaps Fabians Geikins 3497eed931 feat: opening a model w/ a home view targets latest version (#5376)
* model link resolution updated

* finalization

* lint fix
2025-09-04 10:02:02 +03:00
Kristaps Fabians Geikins 51065ab635 feat: show ungrouped saved view group as disclosure (#5366)
* feat: show ungrouped saved view group as disclosure

* tests fix

* fix Ungrouped appearing at the end of the list
2025-09-04 10:01:51 +03:00
Kristaps Fabians Geikins 3558087b1f feat: allow moving views for non-author project contributors+ (#5373)
* new auth policies & fragments

* server changes

* frontend changes
2025-09-03 15:28:42 +03:00
Alexandru Popovici e80e0de74c Programmatic Measurements (#5346)
* feat(viewer-lib): Added MeasurementData and stuck with shared library defined measurement related types

* feat(viewer-lib): Some updates:
- Removed unnecessary calculations in point to point measurement. More lean now. Implemented serialization/deserialization
- Tempoarary serialization/deserializaton for the rest of the measurement types
- MeasurementsExtension now is able to load measurements from MeasurementData objects
- Updated viewer's export list to not export mesurements related types that are now exclusively exported by the shared library

* feat(viewer): Perpendicular measurements simplification (a little bit) and serialization/deserialization

* chore(frontend): Updated measurement types imports

* chore(viewer-lib): Removed the old normal indicator line from the perpendicular measurement

* feat(viewer-lib): Updates:
- Generic fromMeasurementData and toMeasurementData for all measurements since it's unniversal
- Each measurement type serializes/deserializes only specialized data
- Implemented ponint measurement serializing/deserializing and programmatic functionining

* feat(viewer-lib): Area mesurement serialization/deserialization

* feat(viewer-lib): Updates:
- Each measurement subtype now reports the MeasurementType it belongs to
- MeasurementsExtension now emits a MeasurementsChanged event with all the measurements as payload whenever the measurements change
- units and precision are no longer serialized/deserialized on a per-measurement basis
- Added sync API member addMeasurement

* chore(viewer-lib): Fix compiler error

* chore(viewer-lib): Added measurements getter in MeasurementExtension

* feat(fe2): save/reload measurements integration (#5351)

* measurements idempotent api

* extra adjustments, stuff seems to work

* lint fix

* more lint fix

* fix for visible going false

* better identification

* fix FlyControls change action

---------

Co-authored-by: Kristaps Fabians Geikins <fabians@speckle.systems>
2025-09-02 09:46:30 +03:00
Mike 08eb1f7a1d Feat: Bashboards in app (#5333) 2025-09-01 14:24:17 +02:00
Mike 3a0829aa93 Feat: Add Intelligence SU Promo banner (#5348) 2025-09-01 11:59:25 +02:00
Kristaps Fabians Geikins a074aedd65 feat: enable saved views for all workspace plans (#5343)
* feat: enable saved views for all workspace plans

* more test fixes
2025-09-01 10:25:10 +03:00
Iain Sproat fdf3b93e95 fix(server/fileuploads): prevent file upload jobs silently failing (#5327) 2025-08-29 14:46:40 +01:00
Kristaps Fabians Geikins 3d8e9ab152 feat(server): hide empty groups if ur not group author (#5344) 2025-08-29 15:43:49 +03:00
Iain Sproat 22f13b152d fix(server/workspace): reduce log level for user-configured oidc problem (#5341)
* fix(server/workspace): reduce log level for user-configured oidc problem

* status code should not be 500 as it is a user error
2025-08-29 11:16:48 +01:00
Daniel Gak Anagrov b568e6d946 refactor(multiregion): reduce create stream usages in specs (#5319)
Co-authored-by: Charles Driesler <chuck@speckle.systems>
2025-08-28 14:21:26 +02:00
Kristaps Fabians Geikins e7ed024d52 fix: prevent making a home view personal (#5334) 2025-08-28 14:32:35 +03:00
Kristaps Fabians Geikins dbb3c4a374 feat: make saved views shared by default + copy/ui changes (#5331)
* make default visibility public

* show icon for private

* make view shared/private menu

* Public -> Shared
2025-08-28 13:07:02 +03:00
Kristaps Fabians Geikins 8dbd342a40 feat(fe2): view modes stored in saved views (and elsewhere) (#5320)
* feat(fe2): view modes stored in saved views (and elsewhere)

* lint fixes
2025-08-28 11:40:58 +03:00
Kristaps Fabians Geikins bb29033508 feat(fe2): name saved view groups upon creation (#5330) 2025-08-28 11:39:26 +03:00