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
Chuck Driesler
2c66b3aef5
fix(embedTokens): return all metadata on embed token create ( #5055 )
...
* fix(embedTokens): return all metadata on embed token create
* chore(embedTokens): no !
* fix(embedTokens): more correct type usage
* fix(embedTokens): update codegen.yml
2025-07-10 14:36:14 +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
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
Chuck Driesler
0f5c22329b
Chuck/web 3465 auto join discoverable workspace setting ( #4791 )
...
* feat(workspaces): enable toggle for auto-join discoverable workspaces
* fix(workspaces): include auto-join flag on LimitedWorkspace
* chore(workspaces): gqlgen
2025-05-22 10:11:05 +01:00
Kristaps Fabians Geikins
7a59ba5ab8
chore(server): remove unused stream isPublic/isDiscoverable fields ( #4743 )
2025-05-15 09:18:06 +03:00
Kristaps Fabians Geikins
4db1531064
feat: "workspace" project visibility ( #4704 )
...
* WIP new visi
* test fixes
* visibility seems to work
* authz policies & authorizeResolver updated
* various test fixes
* users tests
* frontend changes
* minor adjustments
* shared test fix
* test fixes
* force rerun CI
2025-05-14 15:20:26 +03:00
Kristaps Fabians Geikins
62cc07b072
feat(server): add new workspace disclaimer fields to user meta ( #4434 )
...
* feat(server): add new workspace disclaimer fields to user meta
* unrelated tests fix
2025-04-16 12:47:33 +03:00
Alessandro Magionami
0c18acc452
Alessandro/web 2945 comments hide body ( #4385 )
...
* chore(core): move limits logic into shared
* feat(comments): limit text and rawText for comments
* chore(core): removed test moved to shared
* chore(comments): generate gql types
* feat(comments): rework comment history limits
* chore(comments): fix tests
* chore(shared): add dayjs as dependency
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com >
2025-04-15 10:44:12 +02:00
Kristaps Fabians Geikins
b287702145
feat: version checks + generally improved auth error messaging ( #4384 )
...
* foundation for new version checks
* canUpdate policy
* can req render
* canReceive
* BE implemented
* FE checks implemented?
* test fix
* improved auth error messaging
* fix lint
2025-04-14 10:43:48 +01:00
Kristaps Fabians Geikins
f59c0a72c6
feat: model related auth checks in BE & FE ( #4374 )
...
* limit fragment cleanup
* be updated
* model checks in FE
* tests fix
* fakes util fix
2025-04-11 10:09:54 +03:00
Kristaps Fabians Geikins
5f88f562d3
feat: updated various "read/update" settings related permission checks ( #4356 )
...
* a bunch more tests
* updated GQL resolvers
* project create checks implemented
* project update/settings related checks in FE
* a bunch of tests
* tests fix
* disable app schema check
2025-04-09 16:13:09 +03:00
Kristaps Fabians Geikins
ec2fb34283
feat(shared): new policies for minor fragment refactor ( #4343 )
...
* canUpdate + reworked fragments
* feat(shared): new policies for minor fragment refactor
* some cleanup
* canUpdate tests
* ensureMinimumProjectRoleFragment test
* checkIfPubliclyReadableProjectFragment tests
* get rid of LoadersOf/ErrorsOf
* python dep update
2025-04-08 12:28:20 +03:00
Gergő Jedlicska
f501cc4ad5
gergo/web 2888 workspace project cancreate ( #4294 )
...
* 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
* fix(authz): 0 counts
---------
Co-authored-by: Chuck Driesler <chuck@speckle.systems >
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2025-04-01 16:38:20 +01:00
Kristaps Fabians Geikins
a83bae8d84
feat: Workspace/ProjectCollaborator/WorkspaceCollaborator seatType ( #4284 )
...
* Workspace & ProjectCollaborator seat type
* minor adjustment to FE
* minor adjustment to FE
2025-03-31 13:07:35 +03:00
Mike
ad899a8fd7
Feat: Add isEmailsEnabled to serverInfo ( #4109 )
2025-03-04 15:54:06 +01:00
Iain Sproat
ec98f8d4cb
chore(fe1): remove deprecated frontend ( #3998 )
...
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2025-02-18 12:36:52 +00:00
Gergő Jedlicska
c4a6da410b
feat(core): drop the closure table pls ( #3900 )
...
* feat(core): drop the closure table pls
* feat(core): remove closures feature flag
* feat(core): remove more closure stuff
* feat(core): only drop closure table if it exists
2025-02-07 14:06:53 +01:00
Iain Sproat
c59e6043bb
fix(server/errors): derive errors from BaseError ( #3918 )
2025-01-30 18:15:56 +01:00
Gergő Jedlicska
a282220a72
chore(server): fix nullable type for model author ( #3883 )
...
* chore(server): fix nullable type for model author
* updated fe2 gql types
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
2025-01-24 16:40:25 +01:00
Chuck Driesler
02be49f71f
fix(automate): redirect github auth flow to workspace if possible ( #3632 )
...
* fix(automate): redirect to workspace after auth if possible
* fix(automate): include session in github auth flow
* chore(automate): update props after merge
* fix(automate): pick => fragment
* fix(automate): use fragments correctly
2024-12-06 08:24:23 +00:00
Alessandro Magionami
146060355f
Alessandro/web 2161 commits ( #3511 )
...
* chore(multiregion): commits resolvers multiregion
* chore(multiregion): fix tests
2024-11-19 16:00:45 +01:00
Kristaps Fabians Geikins
f961a6da81
chore(server): various useful multiregion changes from comments pr ( #3499 )
...
* chore(server): various useful multiregion changes from comments pr
* hopefully fixing CI?
* test fix
* more test fixes??
* more test fixes..
* plz work ;((((
* revert multiregion on by default
2024-11-15 15:49:34 +02:00
Gergő Jedlicska
1c19f67dd2
feat(models): support streamId, branchId in models
2024-11-11 06:09:53 +01:00
Alessandro Magionami
23445f91e2
chore(multiregion): add streamId to versions
2024-11-08 17:40:50 +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
Gergő Jedlicska
9e7c90d6ce
feat(projects): add project regions, default to null ( #3429 )
2024-11-01 10:54:51 +01:00
Kristaps Fabians Geikins
5df716bf1c
feat: add & list server regions ( #3423 )
...
* WIP create modal
* babababa
* create dialog looks ok
* FE largely there
* workss
* cleanup
* fixed up test plumbing to avoid deadlocks and simplify GQL calls
* test fix
* added all tests
* CI fix
2024-10-31 16:08:50 +01:00
Gergő Jedlicska
da7f0dda0e
gergo/web 2047 user joins the workspace event ( #3412 )
...
* feat(gatekeeper): add gatekeeper module feature flag
* feat(gatekeeper): add workspace pricing table domain
* feat(gatekeeper): add checkout session creation
* feat(gatekeeper): verify stripe signature
* wip(gatekeeper): checkout callbacks
* feat(gatekeeper): add unlimited and academia plan types
* refactor(envHelper): getStringFromEnv helper
* chore(gatekeeper): add future todos
* feat(gatekeeper): add productId to the subscription domain
* feat(gatekeeper): add in memory repositories
* feat(gatekeeper): add more errors
* feat(gatekeeper): complete checkout session service
* feat(gatekeeper): add stripe client implementation
* feat(gatekeeper): add checkout session completion webhook callback path
* feat(gendo): fix not needing env vars if gendo module is not enabled
* feat(gatekeeper): require a license for billing
* chore(gatekeeper): cleanup before testing
* feat(gatekeeper): subscriptionData parsing model
* ci: add billing integration and gatekeeper modules to test config
* test(gatekeeper): add checkout service tests
* feat(gatekeeper): make completeCheckout callback idempotent properly
* feat(gatekeeper): move to knex based repositories
* test(gatekeeper): billing repository tests
* feat(gatekeeper): add yearly billing cycle toggle
* feat(ci): add stripe integration context to test job
* feat(billingPage): conditionally render the checkout CTAs
* fix(gatekeeper): remove flaky test condition
* feat(helm): add billing integration feature flag
* WIP billing gql api
* feat(gatekeeper): cancel checkout session api
* feat(gatekeeper): handle existing checkout sessions, when trying to create a new one
* feat(gatekeeper): add workspace plans gql api
* feat(gatekeeper): handle cancelation and subscription updates
* fix(gatekeeper): scope initialization
* fix(gatekeeper): eliminate stripe client import sideeffect
* fix(gatekeeper): eliminate stripe client import sideeffect 2
* feat(gatekeeper): upsize subscription on workspace role change
* feat(shared): add command pattern implementation
* refactor(eventBus): remove return capabilities from the event bus
* refactor(workspaces): use new commandFactory in workspace resolver
* feat(core): facelift taskLock
* feat(gatekeeper): shedule subscription downscale
* feat(gatekeeper): manage subscription downscale
* feat(gatekeeper): get workspace subscriptions, that are about to expire
* feat(gatekeeper): manage subscription downscale
* fix(gatekeeper): do not update subscription to canceled subs
* ci: bump postgres and max connections
* feat(workspaces): fix command factory event bugs
2024-10-30 15:51:40 +01:00
Gergő Jedlicska
af3857a209
gergo/web 2038 billing graphql api ( #3379 )
...
* feat(gatekeeper): add gatekeeper module feature flag
* feat(gatekeeper): add workspace pricing table domain
* feat(gatekeeper): add checkout session creation
* feat(gatekeeper): verify stripe signature
* wip(gatekeeper): checkout callbacks
* feat(gatekeeper): add unlimited and academia plan types
* refactor(envHelper): getStringFromEnv helper
* chore(gatekeeper): add future todos
* feat(gatekeeper): add productId to the subscription domain
* feat(gatekeeper): add in memory repositories
* feat(gatekeeper): add more errors
* feat(gatekeeper): complete checkout session service
* feat(gatekeeper): add stripe client implementation
* feat(gatekeeper): add checkout session completion webhook callback path
* feat(gendo): fix not needing env vars if gendo module is not enabled
* feat(gatekeeper): require a license for billing
* chore(gatekeeper): cleanup before testing
* feat(gatekeeper): subscriptionData parsing model
* ci: add billing integration and gatekeeper modules to test config
* test(gatekeeper): add checkout service tests
* feat(gatekeeper): make completeCheckout callback idempotent properly
* feat(gatekeeper): move to knex based repositories
* test(gatekeeper): billing repository tests
* feat(gatekeeper): add yearly billing cycle toggle
* feat(ci): add stripe integration context to test job
* feat(billingPage): conditionally render the checkout CTAs
* fix(gatekeeper): remove flaky test condition
* feat(helm): add billing integration feature flag
* WIP billing gql api
* feat(gatekeeper): cancel checkout session api
* feat(gatekeeper): handle existing checkout sessions, when trying to create a new one
* feat(gatekeeper): add workspace plans gql api
* feat(gatekeeper): handle cancelation and subscription updates
* fix(gatekeeper): scope initialization
* fix(gatekeeper): eliminate stripe client import sideeffect
* fix(gatekeeper): eliminate stripe client import sideeffect 2
* fix(mainConstants): fitler gatekeeper scopes with feature flag
2024-10-25 10:46:09 +02:00
Kristaps Fabians Geikins
7617c94622
chore(server): core IoC #94 - getObjectChildrenFactory
2024-10-18 17:08:09 +03:00
Kristaps Fabians Geikins
f33dcb0849
chore(server): core IoC #88 - createObjectFactory
2024-10-18 16:13:15 +03:00
Kristaps Fabians Geikins
98f045662e
chore(server): core IoC #84 - legacyGetPaginatedUserCommits(Page|TotalCount)Factory
2024-10-17 14:09:13 +03:00
Kristaps Fabians Geikins
afcf1f7c26
chore(server): core IoC #83 - (most) commits resolvers to TS
2024-10-17 13:39:34 +03:00
Kristaps Fabians Geikins
0d2fb7db9b
chore(server): core IoC #82 - (most) branches resolvers to TS
2024-10-17 13:24:33 +03:00
Kristaps Fabians Geikins
93d0ffd31b
chore(server): core IoC #81 - server resolvers to TS ( #3319 )
2024-10-17 13:23:06 +03:00
Kristaps Fabians Geikins
f27f289dc6
chore(server): core IoC #78 - getServerInfoFactory
2024-10-17 12:37:43 +03:00
Kristaps Fabians Geikins
2ba9d86908
chore(server): core IoC #70 - createTokenFactory
2024-10-16 16:46:21 +03:00
Kristaps Fabians Geikins
d2e5385ee4
chore(server): core IoC #49 - markOnboardingBaseStreamFactory
2024-10-14 16:18:13 +03:00
Iain Sproat
f31b35df53
feat(logging): log request query params, redacting sensitive data ( #3164 )
2024-10-10 11:14:59 +02: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
Kristaps Fabians Geikins
af92ad0e78
chore(server): shared IoC 1 - index.js
2024-09-25 14:58:25 +03:00
Kristaps Fabians Geikins
1922c0563b
chore(server): auth IoC 2 - getAllPublicAppsFactory
2024-09-17 14:23:57 +03:00
Iain Sproat
cd14619790
fix(logging): use getRequestPath to more robustly identify debug logs ( #3005 )
2024-09-16 14:01:34 +01:00
Chuck Driesler
bbd5146e5a
fix(workspaces): add pagination to workspace team members ( #2644 )
...
* fix(workspaces): a suggestion of paginated teams
* fix(workspaces): workspace team pagination (?)
* fix(workspaces): pagination based on acl createdAt
* fix(workspaces): fix some roles-related tests
* fix(workspaces): improve query and tests
* fix(workspaces): collaborators query without incorrect groupBy
* fix(workspaces): add default values to migration
* Fixed queries and fragments
* Merged main
* Remove comment
* chore(workspaces): update WorkspaceCollaboratorCollection mocks
* chore(workspaces): fix role test
* chore(workspaces); ope
* fix(workspaces): move workspace acl timestamps to separate table
* Merge?
* fix(workspaces) drop that table
* fix(workspaces): cursor
* fix(workspaceInvites): undo merge borkage
* fix(workspaces): rework workspace member pagination
* fix(workspaces): fix test
* fix(workspaces): test test
* fix(workspaces): literally garbage
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com >
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com >
2024-08-29 21:17:37 +02:00
Gergő Jedlicska
253502adcf
fix(users): verified should be a public limited user field ( #2783 )
2024-08-28 14:59:53 +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
3beed27a24
feat(fe2): workspace role select in project invite dialog ( #2700 )
...
* feat(fe2): workspace role select in project invite dialog
* lint fix
2024-08-20 14:06:18 +03:00
Kristaps Fabians Geikins
2bb7802fb9
feat: accept & decline workspace invite as a registered member ( #2675 )
...
* abstract base invite banner
* WIP banner actions
* WIP modify obj
* minor fix
* invite accept/decline cache mutations
* banner accept/decline basically works
* new block for accepting workspace invite
* WIP wrong account flow
* login/registration block changes
* add email invite related changes
* add new email FE
* add email w/ invite works
* final adjustments
* minor fixes
* addressing cr comments
* no-FF support
* extra workspace ff checks
2024-08-19 13:01:25 +03:00
Kristaps Fabians Geikins
0085bab1db
fix(server): fixed various email lookups/updates being case sensitive ( #2595 )
...
* fix(server): case insensitivity in userEmails repo
* minor fix
* more test improvements + user repo tests
* more tests
* test fixes
2024-08-07 17:48:01 +03:00