62 lines
3.3 KiB
JavaScript
62 lines
3.3 KiB
JavaScript
"use strict";
|
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.AppModule = void 0;
|
|
const common_1 = require("@nestjs/common");
|
|
const config_1 = require("@nestjs/config");
|
|
const identity_module_1 = require("./modules/identity/identity.module");
|
|
const auth_module_1 = require("./modules/auth/auth.module");
|
|
const health_module_1 = require("./modules/health/health.module");
|
|
const authorization_module_1 = require("./modules/authorization/authorization.module");
|
|
const audit_module_1 = require("./modules/audit/audit.module");
|
|
const application_module_1 = require("./modules/application/application.module");
|
|
const debt_module_1 = require("./modules/bot-debt/debt.module");
|
|
let AppModule = class AppModule {
|
|
};
|
|
exports.AppModule = AppModule;
|
|
exports.AppModule = AppModule = __decorate([
|
|
(0, common_1.Module)({
|
|
imports: [
|
|
config_1.ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
// Load .env files depending on NODE_ENV. Default to development .env
|
|
envFilePath: process.env.NODE_ENV === 'production' ? '.env.production' : '.env',
|
|
// Basic validation: ensure expected frontend URLs and OIDC settings are present
|
|
validate: (env) => {
|
|
const errors = [];
|
|
const nodeEnv = env.NODE_ENV || process.env.NODE_ENV || 'development';
|
|
if (!env.FRONTEND_URL)
|
|
errors.push('FRONTEND_URL is not set');
|
|
if (nodeEnv === 'production' && !env.PRODUCTION_FRONTEND_URL)
|
|
errors.push('PRODUCTION_FRONTEND_URL is not set');
|
|
// OIDC required settings
|
|
if (!env.AUTHENTIK_ISSUER)
|
|
errors.push('AUTHENTIK_ISSUER is not set');
|
|
if (!env.AUTHENTIK_CLIENT_ID)
|
|
errors.push('AUTHENTIK_CLIENT_ID is not set');
|
|
if (!env.AUTHENTIK_CLIENT_SECRET)
|
|
errors.push('AUTHENTIK_CLIENT_SECRET is not set');
|
|
if (!env.AUTHENTIK_REDIRECT_URI)
|
|
errors.push('AUTHENTIK_REDIRECT_URI is not set');
|
|
if (errors.length > 0)
|
|
throw new Error('Environment validation error: ' + errors.join('; '));
|
|
return env;
|
|
},
|
|
}),
|
|
identity_module_1.IdentityModule,
|
|
auth_module_1.AuthModule,
|
|
health_module_1.HealthModule,
|
|
// Authorization module provides permission checks and cache
|
|
authorization_module_1.AuthorizationModule,
|
|
audit_module_1.AuditModule,
|
|
application_module_1.ApplicationModule,
|
|
debt_module_1.DebtModule,
|
|
],
|
|
})
|
|
], AppModule);
|
|
//# sourceMappingURL=app.module.js.map
|