Commit Graph

272 Commits

Author SHA1 Message Date
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
Jedd Morgan af7b0a2de2 Chore(fileimport)!: Limit file types (#5356)
* Limit file types

* frontend follow up, of sorts

* feat(frontend): fix long file type list

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Gergo Jedlicska <gergo@jedlicska.com>
2025-09-03 12:43:31 +02:00
Benjamin Ottensten 4fc1aa6d40 Support drag and drop for moving views into groups (#5353)
* Initiale drag and drop moving to group

* Update some styling

* Reenable ungrouped groups

* Support moving to ungrouped from dropdown

* Remove unneeded comments

* undo unnecessary groupId changes

* group cleanup

* clean up drag logic

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-09-02 14:09:38 +02: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
Kristaps Fabians Geikins 1fe74181de fix: default viewMode.edgesEnabled to true if not set (#5352) 2025-09-01 14:59:39 +03: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
Benjamin Ottensten cba989722b Fix: Various fixes around saved views (#5345)
* Update empty state copy

* Various copy changes

* Make search smaller

* Tweak spacings

* Better position search

* Polish styling of button group

* Add tooltip to visibility icons

* Fix position of saved view tooltip

* Changes to ··· menus

* Update copy in view details modal

* Fix styling of group empty state

* Fix width of group title while renaming

* Capitalize date

* Change icon color

* Fix truncation

* Add tooltips to all actions

* Undo truncation hover fix

I need to find a different way to fix this. Later.
2025-08-29 15:31:07 +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 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 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
Gergő Jedlicska c353966993 move acc integration to a per workspace feature access (#5308)
* feat(workspaces): move acc integration to a per workspace feature access
item

* chore(workspaces): remove leftover todo
2025-08-26 17:48:00 +01: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
Gergő Jedlicska 6982023dca feat(gatekeeper): add per workspace feature flags (#5303)
* feat(gatekeeper): add per workspace feature flags

* feat(workspaces): add admin api for granting and removing access to
workspace features

* fix(workspaces): use the correct constant name

* fix(workspaces): more test type fixes

* fix(shared): fix tests and types

* fix(workspaces): properly use exhaustive switch statement

* fix(workspaces): add new workspace plan feature to switch

* fix(workspaces): use regular integer, its fine for now...

* fix(workspaces): feature flag retention post checkout

* fix(gatekeeper): fix upsert plan tests
2025-08-26 10:23:02 +01:00
Iain Sproat 7a222c6aae chore(feature flags): remove legacyIfcImporterEnabled & experimentalIfcImporterEnabled (#5270)
- experimentalIfcImporterEnabled is now assumed to be permanently true
- legacyIfcImporterEnabled is now assumed to be permanently false
2025-08-20 13:54:15 +01:00
Kristaps Fabians Geikins cf298994a8 fix(server): viewerResources failing w/ nonexistent view (#5271) 2025-08-20 13:06:17 +03:00
Kristaps Fabians Geikins 4650936bf0 feat: saved views disclaimers (#5265) 2025-08-20 10:19:57 +03:00
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