Commit Graph

4652 Commits

Author SHA1 Message Date
Alessandro Magionami 0ac36af93e Alessandro/web 1659 workspace limits (#2733)
* chore(workspaces): billing version limit graphql schema

* chore(workspaces): billing member role required

* chore(core): test helper for random string

* chore(core): test helpers

* chore(workspaces): workspaces billing version resolver

* chore(workspaces): rename version to versionsCount
2024-08-26 17:53:34 +02:00
Iain Sproat 131918b428 fix(server): default max multi-part file upload greater than objects (#2742)
- when sending Speckle objects to the server, they are batched into multi-part files
- a multi-part file therefore contains one or more Speckle objects
- the maximum limit for the multi-part file must therefore be greater than the maximum limit for a single Speckle object
2024-08-26 16:42:33 +01:00
Iain Sproat 3f373f1cb7 feat(logging): record when request is received by express (#2737) 2024-08-26 16:42:06 +01:00
Mike 01c9fb4e55 Feat: Workspace creation wizard should allow for optional logo (#2757)
* Fixed reactivity, added workspace logo to create workspace modal

* Reverse order so name is focussed first

* Fix typo

* feat(workspaces): allow sending the logo on ws creation

* Fix avatar uploading

* Added default index 0

* fix(workspaces): maybe default logo

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-08-26 17:20:43 +02:00
Alessandro Magionami 5dabe01761 Merge pull request #2712 from specklesystems/alessandro/web-957-update-webhook
chore(webhooks): update webhook function refactor
2024-08-26 16:40:25 +02:00
Alessandro Magionami e75d424d0c Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-26 15:16:27 +02:00
Gergő Jedlicska 08e941f8af Poor man's SSO (#2641)
* Implemented workspace general page

* Added notifications to user input

* Allowed non-admins to view but not edit

* Added redirect to homeroute

* Fixed validation

* Squashed commit of the following:

commit 7bf14ab8af0f76b4c9d0aa87fc08085af7c34959
Author: Chuck Driesler <chuck@speckle.systems>
Date:   Tue Aug 6 19:40:50 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/workspacesCore/migrations/20240806160740_workspace_domains.ts

commit 8aa3fb0cb052c10eeeb83bf9874ae0d1c065e480
Author: Alessandro Magionami <alessandro.magionami@gmail.com>
Date:   Tue Aug 6 18:54:15 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/core/domain/userEmails/operations.ts

commit 66dfd0cf6c15a789c8f96a65a3168323e83a7b9e
Author: Chuck Driesler <chuck@speckle.systems>
Date:   Tue Aug 6 18:30:22 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/workspacesCore/domain/types.ts

Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>

* Move General to workspaces folder

* feat(workspaces): inputs on security section

* feat(workspaces): add domain to workspace mutation

* chore(workspaces): add blocked domains list

* fix(workspaces): modals with buttons

* feat(workspaceDomains): delete domain

* fix(workspaces): use  mutation

* fix(workspaces): present user verified domains as options

* Moved sidebar menu to a composable

* Added coming soon tag back

* feat(workspaces): create domains resolver for workspace

* chore(workspaces): fix tests

* chore(workspaces): fix types

* chore(workspaces): fix linter

* fix(workspaces): do some delete I think

* chore(workspaces): add domainBasedMembershipProtectionEnabled field to workspace

* chore(workspaces): improve validation for email domain

* fix(workspace): query and do the thing

* chore(workspaces): add graphql schema for domainBasedMembershipProtection

* chore(workspaces): lint and test failures

* fix(workspaces): test issues w new field

* feat(workspaces): add discoverability flag

* chore(workspaces): they made me do it

* feat(workspaces): enable toggling domain protection

* feat(workspaces): add discoverability toggle to workspace settings

* feat(workspace): auto enable discoverability on first domain registration

* feat(workspace): discoverability toggle fixes

* fix(eventBus): fix tests

* feat(workspaces): user discoverable workspaces (#2620)

* feat(workspaces): it works just trust me

* fix(workspaces): don't worry about it

* fix(workspaces); happy path success

* fix(workspaces): almost there

* fix(workspaces): successful tests!

* fix(workspaces): we have DISCOVERED (#2621)

* Fixed linting issue

* Updated query

* Updated validation rules

* Updated validation rules

* Fix unsaved file with type export

* Addressed PR comments

* Updated cache

* Updated item classes, add fragment back

* Gergo/web 1574 join workspaces via discovery (#2623)

* chore(useremails): add find verified emails by user function

* chore(workspace): table helper for workspace domains

* chore(workspace): get workspace with domains function

* chore(workspace): test get workspace with domains function

* feat(workspace): restrict workspace membership when updating workspace role

* chore(workspaces): fix types

* feat(workspaces): WIP join

* feat(workspaces): join button makes u join

* chore(useremails): fix type for find verified emails function

* feat(workspaces): join

* feat(workspace): prevent inviting user without email matching domain

* chore(workspaces): fix linter

* fix(workspaces): invoke join (gergo wrote this)

* fuck

* fix(workspaces): properly get discoverable workspaces

* fix(workspaces): test

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>

* fix(workspaces): some query stuff

* fix(workspaces): mutate cache instead of refetch

* fix(workspaces): more adjustments to gql query and fragment structure

* fix(workspaces): queries, style, structure

* fix(workspaces): match discoverability with current styles

* chore(workspaces): lint lint lint

* fix(workspaces): got it twisted

* chore(workspaces): fix test

* fix(workspaces): route to joined workspace on join

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>
Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>
2024-08-26 13:33:16 +02:00
Alessandro Magionami 37ab694b7e Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-26 12:12:14 +02:00
Mike 038a280266 Fix: reverse dashboard order on mobile (#2756) 2024-08-26 11:58:58 +02:00
Mike b07935964b Fix: Minor styling/copy updates (#2755)
* Fix: Minor styling/copy updates

* Fix linting
2024-08-26 11:43:51 +02:00
Mike b25dd7851f Updated page titles (#2750) 2024-08-26 11:43:41 +02:00
Mike 0a001e55f1 Fix: Change label color for disabled state in MenuGroupItem (#2749)
* Change label color for disabled state

* Updated workspaces icon

* Added defaultImg to user avatar

* Added defaultImg to user avatar

* Removed comment
2024-08-26 11:43:29 +02:00
Iain Sproat d36e2036aa fix(server): database connection pool timeouts reduced (#2646)
* fix(server): database connection pool timeouts reduced
- previous acquisition timeout was 60s; this is reduced to 16s for faster responsiveness
- this allows for 3x attempts of 5s each to create a connection, plus idle time between attempts

* Apply to other knex instances
2024-08-26 09:47:27 +01:00
Mike a5061eceff Fix: z-index on project card (#2754) 2024-08-25 20:23:20 +02:00
Mike 1bdf7f78bb Fix: Add permissions checks for settings (#2748) 2024-08-23 19:25:05 +02:00
Iain Sproat 26b0ecb55d chore(server): remove sentry and only apply mixpanel middleware if enabled (#2732)
- remove sentry as we are no longer using it
- only enable mixpanel middleware if mixpanel is enabled
2024-08-23 16:56:54 +01:00
Mike a22a2fe52f Fix: Permissions on workspace dashboard 2024-08-23 17:54:20 +02:00
Mike 976bb680f0 Feat: Add link to settings to workspace dashboard (#2745) 2024-08-23 16:29:18 +02:00
andrewwallacespeckle b957f5aa83 fix(fe2): Various bugfixes from testing (#2744)
* Update workspace header. Style login button in menu

* Fix misalignment in tabs

* Remove NuxtImg. Move file

* Update yarn.lock

* Move image to assets
2024-08-23 15:27:42 +01:00
Alessandro Magionami 1241a43f65 chore(webhooks): improve readability of update function in repository 2024-08-23 16:01:48 +02:00
Iain Sproat 143c830de4 fix(logging): knex should use pino logger (#2743)
- knex should not compile sql on error in production environments
2024-08-23 15:44:29 +02:00
Alessandro Magionami c56821ff4a Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-23 14:41:09 +02:00
Kristaps Fabians Geikins e2f2a71b83 local OIDC provider for testing (#2608)
* local OIDC provider for testing

* minor adjustments

* addressed comments
2024-08-23 13:08:17 +02:00
Iain Sproat 81d072a865 chore(server): convert some files to typescript with minimal changes (#2738) 2024-08-23 13:07:22 +02:00
Iain Sproat acd83653a2 feat(graphql/serverinfo): provide maximum object size in bytes (#2734)
* feat(graphql/serverinfo): provide maximum object size in bytes

* Places config values in a ServerConfiguration object
- updates blobstorage to use ServerConfiguration, while retaining backwards compatibility
2024-08-23 13:06:22 +02:00
andrewwallacespeckle 5b51e3b1be feat(fe2) Implement workspaces explainer page (#2735)
* Workspaces Page

* Add NuxtImg

* New designs

* Navigate on success option

* Add sidebar item

* Fix capitalisation

* Use CommonCard
2024-08-23 11:13:50 +01:00
Iain Sproat 51db1513a9 chore(gqlgen): update output of gqlgen (#2736) 2024-08-23 09:37:55 +01:00
Iain Sproat 6715a030ec fix(server/auth): database errors result in 500 status code (#2731)
* fix(server/auth): database errors result in 500 status code
- previously 401 were returned which resulted in connectors not retrying

* log as info, not error. Handle errors while validating read

* Unknown errors should continue to be bubbled up the stack
2024-08-22 15:39:37 +02:00
Alessandro Magionami b0a64af835 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-22 15:08:20 +02:00
Chuck Driesler 7bfe36ef9e feat(workspaces): create workspace button (#2645)
* fix(workspaces): it's my passion

* fix(workspaces): actually make workspaces

* Update graphql.ts

* Dechuckify

* Minor housekeeping changes

* useCreateWorkspace WIP

* Updated add workspace button

* Removed dubble dialog

---------

Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-08-22 13:23:12 +01:00
Mike 17b89e4cb4 Feat: Added delete user from workspace button (#2726) 2024-08-22 13:35:32 +02:00
Dimitrie Stefanescu c669dc41e5 Merge pull request #2728 from specklesystems/dimitrie/cnx-326-frontend-clean-the-scene-explorer
feat(scene explorer): filters out noise from scene explorer (CNX-326)
2024-08-22 10:31:13 +01:00
Iain Sproat 8ed98d8404 chore(diff download): close stream as recommended by knex (#2723) 2024-08-22 10:23:35 +01:00
Mike 4189d6a5f0 Fix: dont show workspace projects empty state during search (#2729) 2024-08-22 11:22:22 +02:00
Mike 9a7032f35d Fix: Dont show sidebar when logged out (#2730) 2024-08-22 11:21:52 +02:00
Dimitrie Stefanescu a6fbf88ab2 feat(scene explorer): filters out noise from scene explorer 2024-08-21 22:41:15 +01:00
Iain Sproat 93b970dc07 fix(graphql websocket): keep alive websocket connections if idle (#2720)
- if no data is being sent on a websocket connection then it was closed by nginx after 60s
- it is assumed to be better to keep alive the connection than have the overhead of closing and re-establishing the connection every 60s
2024-08-21 14:54:00 +02:00
Chuck Driesler 63735eb044 feat(workspaces): work(space) invader default logos (#2708)
* feat(workspaces): add default logo index

* Added WorkspaceAvatar component

* Added WorkspaceAvatar component

* Fix issues

* Fix Avatar

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-08-21 13:53:37 +01:00
andrewwallacespeckle b1f4ba1674 refactor(fe2): Update StructureItem click events (#2722)
* Update StructureItem.vue

* Add hover state
2024-08-21 13:20:20 +01:00
Chuck Driesler 79d4e2d402 chore(comments): update comments module to typescript (#2513)
* chore(comments): files to .ts

* chore(comment): services to .ts

* chore(comments): repo to .ts

* chore(comments): resolvers to .ts

* chore(comments): init to .ts

* fix(comments): FIXME for non-null assertions

* chore(comments): drop some comments
2024-08-21 13:03:02 +01:00
andrewwallacespeckle 7cc7539ddc Replace IconConnectors svg (#2721) 2024-08-21 12:09:26 +01:00
Mike 84b3570079 Fix: dashboard count (#2719) 2024-08-21 09:38:33 +02:00
Alexandru Popovici 997e80168c Was checking only for undefined, but color materials can also be null (#2718) 2024-08-20 22:32:27 +03:00
andrewwallacespeckle e79fa67baf Add menuPosition prop to LayoutMenu (#2716) 2024-08-20 17:40:03 +01:00
andrewwallacespeckle 40e50ed0a1 refactor(ui-components): Update Sidebar to Designs (#2710)
* Design changes

* Update group title hover state

* Typo fix

* Fix overflow on mobile selection info
2024-08-20 17:12:01 +01:00
andrewwallacespeckle 2cb2d8ba79 Revert changes to structureitem (#2715) 2024-08-20 16:41:52 +01:00
Gergő Jedlicska 9f78fde1a5 fix(workspaces): await authorization (#2714) 2024-08-20 17:15:51 +02:00
andrewwallacespeckle 0a3a4b5d8e fix(fe2): Re-add ProjectDashboardHeader (#2709)
* Re-add ProjectDashboardHeader

* Remove PromoBannersWrapper
2024-08-20 15:39:24 +01:00
Gergő Jedlicska 5d0b3508b3 fix(automate): fix on model version create error log (#2713) 2024-08-20 16:32:11 +02:00
Kristaps Fabians Geikins 1380d1d17f feat(fe2): error reporting when invite (middleware level) auto-accept doesn't work (#2711)
* feat(fe2): auto-accept error toasts

* smarter error reporting

* typo
2024-08-20 17:27:53 +03:00