forked from veridatum-labs/earnproof-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.module.ts
More file actions
65 lines (64 loc) · 2.15 KB
/
Copy pathapp.module.ts
File metadata and controls
65 lines (64 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { APP_GUARD, APP_INTERCEPTOR } from "@nestjs/core";
import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler";
import { ScheduleModule } from "@nestjs/schedule";
import { AuditModule } from "./audit/audit.module";
import { ApiKeysModule } from "./api-keys/api-keys.module";
import { AuthModule } from "./auth/auth.module";
import { configuration } from "./config/configuration";
import { validateEnv } from "./config/env.validation";
import { CredentialsModule } from "./credentials/credentials.module";
import { DatabaseModule } from "./database/database.module";
import { HealthModule } from "./health/health.module";
import { HttpMetricsInterceptor } from "./common/interceptors/http-metrics.interceptor";
import { ObservabilityModule } from "./common/observability/observability.module";
import { JobsModule } from "./jobs/jobs.module";
import { IssuersModule } from "./issuers/issuers.module";
import { OrganizationsModule } from "./organizations/organizations.module";
import { PaymentsModule } from "./payments/payments.module";
import { ProofsModule } from "./proofs/proofs.module";
import { TrustedSourcesModule } from "./trusted-sources/trusted-sources.module";
import { WebhooksModule } from "./webhooks/webhooks.module";
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
load: [configuration],
validate: validateEnv,
}),
ThrottlerModule.forRoot([
{
name: "default",
ttl: 60_000, // 1 minute in milliseconds
limit: 1000, // generous default; per-route overrides tighten this
},
]),
ScheduleModule.forRoot(),
ObservabilityModule,
DatabaseModule,
AuditModule,
ApiKeysModule,
AuthModule,
HealthModule,
OrganizationsModule,
IssuersModule,
PaymentsModule,
ProofsModule,
CredentialsModule,
TrustedSourcesModule,
JobsModule,
WebhooksModule,
],
providers: [
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
{
provide: APP_INTERCEPTOR,
useClass: HttpMetricsInterceptor,
},
],
})
export class AppModule {}