feat: ( passenger ) wire IAM global guard, org seeder, and backoffice auth

This commit is contained in:
Abubeker Yasin
2026-06-23 14:25:10 +03:00
parent 707e32c43c
commit 1eaffa7ba0
17 changed files with 658 additions and 99 deletions

View File

@@ -8,10 +8,15 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
import { ScheduleModule } from '@nestjs/schedule';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
// Subpath import: the @tria-plc/iamapi-common barrel does not resolve under moduleResolution:"Node".
// Aliased to avoid clashing with the app's existing custom ./common/iam.module (remote IamGuard).
import { IamModule as TriaIamModule } from '@tria-plc/iamapi-common/iam.module';
import { DataSeeder } from '@tria-plc/iamapi-common/db/seed/seeder';
import { SharedAuthModule } from '@tria-plc/api-common/modules/auth/shared-auth.module';
import {
EDR_PASSENGER_APPLICATION,
EDR_PASSENGER_PERMISSIONS,
} from './seed/edr-passenger.seed';
import { EdrPassengerOrgSeeder } from './seed/edr-passenger-org.seeder';
import { PassengerStaffUsersSeeder } from './seed/passenger-staff-users.seeder';
import { PrismaModule } from './common/prisma.module';
import { AuditModule } from './common/audit.module';
import { I18nModule } from './common/i18n/i18n.module';
@@ -77,7 +82,11 @@ import { CurrenciesModule } from './modules/currencies/currencies.module';
useFactory: (config: ConfigService): TypeOrmModuleOptions =>
config.get<TypeOrmModuleOptions>('iamDatabase')!,
}),
TriaIamModule.forRoot(),
TriaIamModule.forRoot({
applications: [EDR_PASSENGER_APPLICATION],
permissions: EDR_PASSENGER_PERMISSIONS,
}),
SharedAuthModule,
PrismaModule,
AuditModule,
I18nModule,
@@ -108,21 +117,25 @@ import { CurrenciesModule } from './modules/currencies/currencies.module';
AuditModuleFeature,
CurrenciesModule,
],
providers: [
EdrPassengerOrgSeeder,
PassengerStaffUsersSeeder,
],
})
export class AppModule implements OnApplicationBootstrap {
constructor(
private readonly seeder: DataSeeder,
// private readonly edrOrgSeeder: EdrOrgSeeder,
// private readonly demoUsersSeeder: DemoUsersSeeder,
) { }
private readonly seeder: DataSeeder,
private readonly edrPassengerOrgSeeder: EdrPassengerOrgSeeder,
private readonly passengerStaffUsersSeeder: PassengerStaffUsersSeeder,
) {}
async onApplicationBootstrap() {
try {
await this.seeder.run();
} catch (err) {
console.error('[DataSeeder] Seed failed (non-fatal during IAM migration phase):', (err as Error).message);
console.error('[DataSeeder] Seed failed (non-fatal):', (err as Error).message);
}
// await this.edrOrgSeeder.run();
// await this.demoUsersSeeder.run();
await this.edrPassengerOrgSeeder.run();
await this.passengerStaffUsersSeeder.run();
}
}