diff --git a/packages/backend/server/src/core/auth/next-auth.controller.ts b/packages/backend/server/src/core/auth/next-auth.controller.ts index 22ef1dca5f5c1..d8e37af641222 100644 --- a/packages/backend/server/src/core/auth/next-auth.controller.ts +++ b/packages/backend/server/src/core/auth/next-auth.controller.ts @@ -58,7 +58,7 @@ export class NextAuthController { @Throttle({ default: { limit: 60, - ttl: 60, + ttl: 60 * 1000, }, }) @Get('/challenge') @@ -73,7 +73,7 @@ export class NextAuthController { @Throttle({ default: { limit: 60, - ttl: 60, + ttl: 60 * 1000, }, }) @All('*') diff --git a/packages/backend/server/src/core/auth/resolver.ts b/packages/backend/server/src/core/auth/resolver.ts index 8ab9ef089d924..9d8bcc8816b2d 100644 --- a/packages/backend/server/src/core/auth/resolver.ts +++ b/packages/backend/server/src/core/auth/resolver.ts @@ -56,7 +56,7 @@ export class AuthResolver { @Throttle({ default: { limit: 20, - ttl: 60, + ttl: 60 * 1000, }, }) @ResolveField(() => TokenType) @@ -93,7 +93,7 @@ export class AuthResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => UserType) @@ -111,7 +111,7 @@ export class AuthResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => UserType) @@ -128,7 +128,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => UserType) @@ -161,7 +161,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => UserType) @@ -192,7 +192,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Boolean) @@ -215,7 +215,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Boolean) @@ -245,7 +245,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Boolean) @@ -268,7 +268,7 @@ export class AuthResolver { @Throttle({ default: { limit: 5, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Boolean) diff --git a/packages/backend/server/src/core/users/management.ts b/packages/backend/server/src/core/users/management.ts index 08e3bd4defd56..eaf8f089a0708 100644 --- a/packages/backend/server/src/core/users/management.ts +++ b/packages/backend/server/src/core/users/management.ts @@ -29,7 +29,7 @@ export class UserManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Int) @@ -52,7 +52,7 @@ export class UserManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Int) @@ -73,7 +73,7 @@ export class UserManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Query(() => [UserType]) diff --git a/packages/backend/server/src/core/users/resolver.ts b/packages/backend/server/src/core/users/resolver.ts index e76079d797545..dfccd6139cde4 100644 --- a/packages/backend/server/src/core/users/resolver.ts +++ b/packages/backend/server/src/core/users/resolver.ts @@ -50,7 +50,7 @@ export class UserResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Publicable() @@ -82,7 +82,7 @@ export class UserResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Query(() => UserOrLimitedUser, { @@ -115,7 +115,12 @@ export class UserResolver { }; } - @Throttle({ default: { limit: 10, ttl: 60 } }) + @Throttle({ + default: { + limit: 10, + ttl: 60 * 1000, + }, + }) @ResolveField(() => UserQuotaType, { name: 'quota', nullable: true }) async getQuota(@CurrentUser() me: User) { const quota = await this.quota.getUserQuota(me.id); @@ -123,7 +128,12 @@ export class UserResolver { return quota.feature; } - @Throttle({ default: { limit: 10, ttl: 60 } }) + @Throttle({ + default: { + limit: 10, + ttl: 60 * 1000, + }, + }) @ResolveField(() => Int, { name: 'invoiceCount', description: 'Get user invoice count', @@ -137,7 +147,7 @@ export class UserResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => UserType, { @@ -172,7 +182,7 @@ export class UserResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => RemoveAvatar, { @@ -193,7 +203,7 @@ export class UserResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => DeleteAccount) diff --git a/packages/backend/server/src/core/workspaces/management.ts b/packages/backend/server/src/core/workspaces/management.ts index f4e2752290a8f..7e8e57a932259 100644 --- a/packages/backend/server/src/core/workspaces/management.ts +++ b/packages/backend/server/src/core/workspaces/management.ts @@ -28,7 +28,7 @@ export class WorkspaceManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Int) @@ -47,7 +47,7 @@ export class WorkspaceManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Mutation(() => Int) @@ -66,7 +66,7 @@ export class WorkspaceManagementResolver { @Throttle({ default: { limit: 10, - ttl: 60, + ttl: 60 * 1000, }, }) @Query(() => [WorkspaceType]) diff --git a/packages/backend/server/src/core/workspaces/resolvers/workspace.ts b/packages/backend/server/src/core/workspaces/resolvers/workspace.ts index b0d1c039bc15d..96e1580ddc744 100644 --- a/packages/backend/server/src/core/workspaces/resolvers/workspace.ts +++ b/packages/backend/server/src/core/workspaces/resolvers/workspace.ts @@ -196,7 +196,7 @@ export class WorkspaceResolver { @Throttle({ default: { limit: 10, - ttl: 30, + ttl: 30 * 1000, }, }) @Public() @@ -229,6 +229,12 @@ export class WorkspaceResolver { return workspace; } + @Throttle({ + default: { + limit: 10, + ttl: 120 * 1000, + }, + }) @Mutation(() => WorkspaceType, { description: 'Create a new workspace', }) @@ -305,6 +311,12 @@ export class WorkspaceResolver { }); } + @Throttle({ + default: { + limit: 10, + ttl: 120 * 1000, + }, + }) @Mutation(() => Boolean) async deleteWorkspace(@CurrentUser() user: UserType, @Args('id') id: string) { await this.permissions.checkWorkspace(id, user.id, Permission.Owner); @@ -320,6 +332,12 @@ export class WorkspaceResolver { return true; } + @Throttle({ + default: { + limit: 10, + ttl: 120 * 1000, + }, + }) @Mutation(() => String) async invite( @CurrentUser() user: UserType, @@ -419,7 +437,7 @@ export class WorkspaceResolver { @Throttle({ default: { limit: 10, - ttl: 30, + ttl: 30 * 1000, }, }) @Public() @@ -480,6 +498,12 @@ export class WorkspaceResolver { }; } + @Throttle({ + default: { + limit: 10, + ttl: 120 * 1000, + }, + }) @Mutation(() => Boolean) async revoke( @CurrentUser() user: UserType, @@ -524,6 +548,12 @@ export class WorkspaceResolver { return this.permissions.acceptWorkspaceInvitation(inviteId, workspaceId); } + @Throttle({ + default: { + limit: 10, + ttl: 120 * 1000, + }, + }) @Mutation(() => Boolean) async leaveWorkspace( @CurrentUser() user: UserType,