Commit Graph

31 Commits

Author SHA1 Message Date
andrewwallacespeckle 2fddcd78b7 feat(server+fe): Implement LimitedWorkspace for PendingWorkspaceCollaborator (#4984) 2025-06-27 09:35:37 +01:00
Chuck Driesler 855185245e feat(workspaces): consolidate workspace role/seat reporting (#4315)
* feat(workspaces: shuffle seat type counts around

* fix(workspaces): use new counts

* fix(workspaces): better field placement

* Updated FE

* chore(workspaces): fix tests

* fix(workspaces): use correct flags

* fix(workspaces): correct another test

* fix(workspaces): use correct model count function

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2025-04-04 10:27:49 +01:00
Chuck Driesler 6cea72e4f8 feat(workspaces): add query for fetching usage (#4306)
* WIP can create project

* WIP can create project more work

* complete body, stencil tests

* feat(shared): move workspace plan types into shared

* test progress wip

* feat(shared): add more logic to canCreateWorkspaceProject

* a few more tests, as a treat

* chore(authz): round out tests

* fixed loaders, new GQL checks, dataLoaders in auth loaders

* fix(authz): get workspace limits loader

* chore(authz): update loaders

* frontend fixed up to snuff

* fix(authz): fix workspace plans for tests

* fix(authz): classic

* feat(workspaces): emit plan usage from BE

* fix(authz): 0 counts

* fix(workspaces): fix counts for 0

* chore(workspaces): gqlgen

* fix(workspaces): update fragment to use new fields

* fix(workspaces): count regional projects correctly

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-04-03 09:06:34 +01:00
Alessandro Magionami 4a7d37e3d7 Merge pull request #4300 from specklesystems/alessandro/web-2874-return-user-counts-by-role-and-seat-type
Alessandro/web 2874 return user counts by role and seat type
2025-03-31 18:50:15 +02:00
Alessandro Magionami de1054720b feat(workspaces): member by role counts 2025-03-31 17:15:36 +02:00
Alessandro Magionami 99d9c9a2ad feat(workspaces): seats by type counts in workspace 2025-03-31 16:43:00 +02:00
Alessandro Magionami 9b106b49a1 feat(workspaces): resolver for invitable collaborators 2025-03-31 09:38:17 +02:00
Alessandro Magionami a38bbd4066 feat(workspaces): add viewers count 2025-03-26 10:24:14 +01:00
Alessandro Magionami eaf3b3a479 feat(gatekeeper): seats counts 2025-03-25 09:47:13 +01:00
Kristaps Fabians Geikins 28b49107b7 feat(server): upgrade workspace seat type (#4158)
* feat(server): upgrade workspace seat type

* test/lint fixes
2025-03-11 12:41:18 +02:00
Kristaps Fabians Geikins fb6dc448ca feat(server): prevent viewer seat from becoming project contributor/owner + extra fixes (#4117)
* unrelated fixes that i noticed

* tests for fix

* tests & working restrictions

* test fix

* test fixx
2025-03-06 13:26:16 +02:00
Alessandro Magionami 85ce151264 feat(workspaces): make query for single workspace 2025-01-14 12:02:57 +01:00
Alessandro Magionami bb73ecbe3c feat(workspaces): list workspace join requests for admin 2025-01-14 12:02:57 +01:00
Alessandro Magionami c32026b6d6 feat(workspaces): dismiss workspace mutation 2025-01-09 11:21:46 +01:00
Alessandro Magionami a363f0e81a feat(workspaces): expose graphql field readonly for workspace type (#3659)
* feat(workspaces): add readOnly field to workspace gql type

* feat(workspaces): add readOnly logic for workspace

* refactor(gatekeeper): use exhaustive switch pattern

* chore(billing): fix test

* feat(gatekeeper): fix tests

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-12-18 13:47:27 +00:00
Kristaps Fabians Geikins 51579b76ef fix(server): various fixes related to subs + further improved utils + way quicker tests (#3573)
* fixed test util throwing + added new tests

* more tests

* more tests

* various model tests

* version tests

* removed shitty old tests

* lint fix

* workspaceProjectsUpdated test

* workspace updated on invite

* workspace subs support team changes

* tests fix

* test fix hopefully?
2024-12-02 13:30:24 +02:00
Gergő Jedlicska ec27e394d9 feat(workspaces): add workspace creation state (#3578) 2024-11-28 20:50:53 +01:00
Gergő Jedlicska e30b8c83b9 gergo/workspacesMultiRegion (#3477)
* feat(webhook-service): learn to speak multi region

* feat(fileimport-service): talk multi region to me

* feat(fileuploads, blobs): multi region

* feat(workspaces): update delet workspace with billing and regions

* fix typo

* feat(workspaces): remove old billing resolvers

* test(workspaces): fix tests

* fix(workspaces): remove unused schema
2024-11-19 15:45:03 +01:00
Gergő Jedlicska f210d9b749 gergo/web 2109 project region based db connection selector (#3434)
* feat(projects): add project regions, default to null

* feat(multiregion): add projectRegion Db client lookup logic

* feat(multiregion): add project region repositories and caching

* feat(multiRegion): db initialization and get project db client

* feat(docker-compose): add second db for regions testing

* feat(multiRegion): initialize region with pubs and subs working

* fix(multiRegion): get region client even if it was registered in another pod

* feat(workspaces): create workspace resolver split

* feat: update server region metadata

* feat(projects): rewrite project creation

* feat(multiRegion): getRegionDb

* fix(workspaces): get projects now can retur null

* feat(multiRegion): make local multi region DB-s work

* feat: set d efault workspace region

* CR changes

* tests

* feat(multiRegion): bind region properly

* fe update

* test fixes

* feat(multiRegion): automatically create aiven extras plugin

* ci(postgres): use published postgres with aiven extras

* fix(multiRegion): roll back the aiven extras migration, there is a better way

* tests fix

* fix(billing): we do not need to add a seat, if the workspace is on a plan, but has no sub

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2024-11-06 17:29:08 +01:00
andrewwallacespeckle ebef771c3a refactor(fe2): Update queries to use workspaceBySlug (#3177)
* Use workspaceBySlug

* workspace invite support slug

* fix workspace invite email link

* added tests

* Update workspaceInvite query to use new option

* useSlug directly in query

---------

Co-authored-by: Fabis <fabis94@live.com>
2024-10-02 13:01:38 +01:00
Gergő Jedlicska 00c01db923 feat(workspaces): add workspace slug support (#2982)
* feat(workspaces): add workspace slug support

* chore(workspaces): lint

* feat(workspaces): add slug validation and generation

* fix(workspaces): test lint miss
2024-09-18 13:29:36 +02:00
Alessandro Magionami 3fa2bcd4f3 Alessandro/web 1836 billing tab show x10 free guest (#2896)
* feat(workspaces): add label field to cost items

* feat(workspaces): use label field to display cost items
2024-09-06 10:42:31 +02:00
Kristaps Fabians Geikins c92938eff3 chore(server): apollo server v3 -> v4 (#2880)
* main changes seem to be done?

* lint fix

* minor cleanup

* dataloader clear
2024-09-05 12:27:13 +03:00
Alessandro Magionami 76ba0792df feat(workspaces): disable domain protection and discoverability on la… (#2850)
* feat(workspaces): disable domain protection and discoverability on last workspace domain delete

* chore(workspaces): minor cleanup
2024-09-02 16:53:30 +02:00
Alessandro Magionami ff29654b66 feat(workspaces): add discount and total fields 2024-08-29 15:20:51 +02:00
Alessandro Magionami a0224e2f40 Alessandro/web 1660 workspace cost items subtotal and currency (#2793)
* chore(workspaces): workspace cost schema

* chore(workspaces): test helper for workspace cost

* feat(workspaces): workspace billing cost

* fix(workspaces): fix onProjectCreated failing for the project creator if the creator is a member

* refactor(workspaces): change workspace cost calculation to a simpler query

* test(workspaceCost): fix costing logic and tests

* fix(workspaceTests): project emmiter needs owner now

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-08-29 13:45:04 +02:00
Alessandro Magionami de956a4e92 fix(workspaces): projects resolver only returns projects for the user 2024-08-27 09:40:27 +02:00
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
Kristaps Fabians Geikins 0b417c9ba0 feat(fe2): workspace invite cancel/resend + Invite dialog CTA in workspace home (#2691)
* feat(server): resend invite mutation

* invite resend/cancel from FE

* functional invite cta on workspace page
2024-08-20 10:17:42 +03:00
Kristaps Fabians Geikins 455b21cba3 fix(server): manual workspace role assignment on project invite create + more bugfixes (#2581)
* prep for new projectinvite create mutation

* fix for serverRole not being taken into account in stream invite

* new workspace invite create mutation
2024-08-06 13:42:10 +03:00
Kristaps Fabians Geikins ede566eed9 feat(server): serverInvites refactor + workspace invites CRUD & GQL API (#2530)
* prep for new resources algo

* typescriptifying stuff

* minor types fix

* migrate to resources col

* repo & creation updated, WIP processing/retrieval

* WIP invite processing

* finished finalization refactor

* project invite management

* transformed all invites services

* fixed up projects & core serverinvites resolvers

* test fixes

* WIP workspace create GQL & test

* basic invite creation test works

* a buncha working tests

* more tests

* cancelation tests

* minor invite use refactor

* invite retrieval tasks

* invite use() works as expected

* filtering out broken invites

* enabled invite retrieval by token irregardless of who is it for

* minor adjustments

* tests fix

* test config improvements

* test env adjustment

* extra test case

* making resource access limits harder to ignore

* linter fixes

* eventBus type cleanup

* better generic names

* refactored serverinvites resource migration

* fix(server): better error message in project invite edge case
2024-07-29 14:37:54 +03:00