From 854df5bb2d9da185c565e53a41f062f93e0bb1ca Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Mon, 17 Aug 2026 16:10:27 +0200 Subject: [PATCH] fix: export guard dependencies so cross-module @UseGuards resolves NestJS resolves a guard referenced via @UseGuards(SomeGuard) using the consuming module's injector, not the guard's own declaring module's injector. OidcAuthGuard and TripMembershipGuard are shared across several feature modules, so every constructor dependency they need (UsersRepository/UsersService, TripMembersRepository, etc.) must be re-exported by AuthModule/TripsLibModule/UsersLibModule, not just the guard classes themselves. Found via the Phase 02 end-to-end smoke test against a mocked IdP, which failed to boot the API before this fix. --- backend/libs/auth/src/auth.module.ts | 5 +++-- backend/libs/trips/src/trips.module.ts | 9 ++++++++- backend/libs/users/src/users.module.ts | 7 ++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/libs/auth/src/auth.module.ts b/backend/libs/auth/src/auth.module.ts index 5ea9c2f..23f9a47 100644 --- a/backend/libs/auth/src/auth.module.ts +++ b/backend/libs/auth/src/auth.module.ts @@ -1,11 +1,12 @@ -import { Module } from '@nestjs/common'; +import { Global, Module } from '@nestjs/common'; import { UsersLibModule } from '../../users/src'; import { OidcDiscoveryService } from './oidc-discovery.service'; import { OidcAuthGuard } from './oidc-auth.guard'; +@Global() @Module({ imports: [UsersLibModule], providers: [OidcDiscoveryService, OidcAuthGuard], - exports: [OidcDiscoveryService, OidcAuthGuard], + exports: [OidcDiscoveryService, OidcAuthGuard, UsersLibModule], }) export class AuthModule {} diff --git a/backend/libs/trips/src/trips.module.ts b/backend/libs/trips/src/trips.module.ts index 502b2a9..93aa99b 100644 --- a/backend/libs/trips/src/trips.module.ts +++ b/backend/libs/trips/src/trips.module.ts @@ -1,4 +1,4 @@ -import { Module } from '@nestjs/common'; +import { Global, Module } from '@nestjs/common'; import { DatabaseModule } from '../../database/src'; import { TripsRepository } from './trips.repository'; import { TripsService } from './trips.service'; @@ -14,6 +14,7 @@ import { TravelersService } from './travelers.service'; import { TripPreferenceOverridesRepository } from './trip-preference-overrides.repository'; import { TripPreferenceOverridesService } from './trip-preference-overrides.service'; +@Global() @Module({ imports: [DatabaseModule], providers: [ @@ -32,12 +33,18 @@ import { TripPreferenceOverridesService } from './trip-preference-overrides.serv TripPreferenceOverridesService, ], exports: [ + TripsRepository, TripsService, + TripSettingsRepository, TripSettingsService, + TripMembersRepository, TripMembersService, TripMembershipGuard, + TripInvitationsRepository, TripInvitationsService, + TravelersRepository, TravelersService, + TripPreferenceOverridesRepository, TripPreferenceOverridesService, ], }) diff --git a/backend/libs/users/src/users.module.ts b/backend/libs/users/src/users.module.ts index b86fc3a..daa28d9 100644 --- a/backend/libs/users/src/users.module.ts +++ b/backend/libs/users/src/users.module.ts @@ -13,6 +13,11 @@ import { UserPreferencesService } from './user-preferences.service'; UserPreferencesRepository, UserPreferencesService, ], - exports: [UsersService, UserPreferencesService], + exports: [ + UsersRepository, + UsersService, + UserPreferencesRepository, + UserPreferencesService, + ], }) export class UsersLibModule {}