config: Readonly<
{
host: string;
port: number;
dbBackend: "postgres";
postgresUrl: string
| null;
postgresConnectTimeoutMs: number;
jwtSecret: string;
jwtTimeExpiration: string;
userLimit: number;
adminEmail: string;
adminPassword: string;
createAdmin: boolean;
registrationMode: string;
registrationDefaultRole: string;
editorCanPublish: boolean;
dashboardDefaultVisibility: string;
dashboardPublicListingEnabled: boolean;
executionMode: string;
policyEditLock: boolean;
authLoginMaxAttempts: number;
authLoginWindowSeconds: number;
authLoginLockSeconds: number;
apiTrustProxyHops: number;
securityLimiterBackend: SecurityLimiterBackend;
securityLimiterFailureMode: "fail-open" | "fail-closed";
securityLimiterNamespace: string;
securityLimiterHashSalt: string;
securityLimiterMemoryMaxKeys: number;
jwtGatewaySecret: string;
gatewayServiceToken: string;
credentialEncryptionKey: Buffer<ArrayBufferLike> | null;
fetchTimeoutMs: number;
fetchMaxResponseBytes: number;
datasourceTokenMintRateLimitUserPerMin: number;
datasourceTokenMintRateLimitPublicIpPerMin: number;
datasourceTokenMintRateLimitShareTokenPerMin: number;
datasourceSessionTtlSeconds: number;
gatewayIntrospectionRateLimitPerMin: number;
gatewayRevokedTokensRateLimitPerMin: number;
gatewayRevokedTokensMaxBatch: number;
realtimeRevokeEventRetentionSeconds: number;
},
> = ...
Application configuration, loaded from environment variables or defaults.