fix(server): relax the rate limits (#4092)

This commit is contained in:
LongYinan
2023-09-01 13:51:37 +08:00
committed by GitHub
parent 3f21b0b45d
commit 83e7e9db8d
6 changed files with 17 additions and 20 deletions

View File

@@ -91,15 +91,13 @@ jobs:
- name: Generate prisma client
run: |
yarn exec prisma generate
yarn exec prisma db push
working-directory: apps/server
yarn workspace @affine/server exec prisma generate
yarn workspace @affine/server exec prisma db push
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: yarn exec ts-node-esm ./scripts/init-db.ts
working-directory: apps/server
run: yarn workspace @affine/server exec ts-node-esm ./scripts/init-db.ts
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
@@ -110,8 +108,7 @@ jobs:
path: ./apps/server
- name: Run server tests
run: yarn test:coverage
working-directory: apps/server
run: yarn workspace @affine/server test:coverage
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine

View File

@@ -44,7 +44,7 @@ export class NextAuthController {
}
@UseGuards(CloudThrottlerGuard)
@Throttle(20, 60)
@Throttle(60, 60)
@All('*')
async auth(
@Req() req: Request,

View File

@@ -10,7 +10,6 @@ import { UsersModule } from './users';
import { WorkspaceModule } from './workspaces';
const { SERVER_FLAVOR } = process.env;
const { NODE_ENV } = process.env;
const BusinessModules: (Type | DynamicModule)[] = [];
@@ -40,13 +39,11 @@ switch (SERVER_FLAVOR) {
break;
}
const Providers: Provider[] = [];
if (NODE_ENV !== 'test') {
Providers.push({
const Providers: Provider[] = [
{
provide: APP_FILTER,
useClass: ExceptionLogger,
});
}
},
];
export { BusinessModules, Providers };

View File

@@ -15,7 +15,7 @@ import { AppModule } from '../app';
const gql = '/graphql';
describe('AppModule', () => {
describe('AppModule', async () => {
let app: INestApplication;
// cleanup database before each test
@@ -54,7 +54,7 @@ describe('AppModule', () => {
await app.close();
});
test('should init app', async () => {
await test('should init app', async () => {
ok(typeof app === 'object');
await request(app.getHttpServer())
.post(gql)
@@ -85,7 +85,7 @@ describe('AppModule', () => {
});
});
test('should find default user', async () => {
await test('should find default user', async () => {
const { token } = await createToken(app);
await request(app.getHttpServer())
.post(gql)
@@ -106,7 +106,7 @@ describe('AppModule', () => {
});
});
test('should be able to upload avatar', async () => {
await test('should be able to upload avatar', async () => {
const { token, id } = await createToken(app);
const png = await Transformer.fromRgbaPixels(
Buffer.alloc(400 * 400 * 4).fill(255),

View File

@@ -62,7 +62,7 @@ describe('Workspace Module', () => {
ok(user.email === 'u1@affine.pro', 'user.email is not valid');
});
it('should be throttled at call signUp', async () => {
it.skip('should be throttled at call signUp', async () => {
let token = '';
for (let i = 0; i < 10; i++) {
token = (await signUp(app, `u${i}`, `u${i}@affine.pro`, `${i}`)).token

View File

@@ -22,6 +22,9 @@ import { getRequestResponseFromContext } from './utils/nestjs';
const options: ThrottlerModuleOptions = {
ttl: config.rateLimiter.ttl,
limit: config.rateLimiter.limit,
skipIf: () => {
return !config.node.prod || config.affine.canary;
},
};
if (config.redis.enabled) {
new Logger(RateLimiterModule.name).log('Use Redis');