From 709499c1677186e9e71c19617932f9528e17375c Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sun, 8 Feb 2026 22:24:37 -0600 Subject: [PATCH] fix(api,orchestrator): fix remaining dependency injection issues API: - Add AuthModule import to JobEventsModule - Add AuthModule import to JobStepsModule - Fixes: AuthGuard dependency resolution in job modules Orchestrator: - Add @Optional() decorator to docker parameter in DockerSandboxService - Fixes: NestJS trying to inject Docker class as dependency All modules using AuthGuard must import AuthModule. Docker parameter is optional for testing, needs @Optional() decorator. --- apps/api/src/job-events/job-events.module.ts | 3 ++- apps/api/src/job-steps/job-steps.module.ts | 3 ++- apps/orchestrator/src/spawner/docker-sandbox.service.ts | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/api/src/job-events/job-events.module.ts b/apps/api/src/job-events/job-events.module.ts index 87d9ff4..c28af5a 100644 --- a/apps/api/src/job-events/job-events.module.ts +++ b/apps/api/src/job-events/job-events.module.ts @@ -2,6 +2,7 @@ import { Module } from "@nestjs/common"; import { JobEventsController } from "./job-events.controller"; import { JobEventsService } from "./job-events.service"; import { PrismaModule } from "../prisma/prisma.module"; +import { AuthModule } from "../auth/auth.module"; /** * Job Events Module @@ -10,7 +11,7 @@ import { PrismaModule } from "../prisma/prisma.module"; * Events are stored in PostgreSQL and provide a complete audit trail. */ @Module({ - imports: [PrismaModule], + imports: [PrismaModule, AuthModule], controllers: [JobEventsController], providers: [JobEventsService], exports: [JobEventsService], diff --git a/apps/api/src/job-steps/job-steps.module.ts b/apps/api/src/job-steps/job-steps.module.ts index 72aa478..27dc3e5 100644 --- a/apps/api/src/job-steps/job-steps.module.ts +++ b/apps/api/src/job-steps/job-steps.module.ts @@ -2,6 +2,7 @@ import { Module } from "@nestjs/common"; import { JobStepsController } from "./job-steps.controller"; import { JobStepsService } from "./job-steps.service"; import { PrismaModule } from "../prisma/prisma.module"; +import { AuthModule } from "../auth/auth.module"; /** * Job Steps Module @@ -10,7 +11,7 @@ import { PrismaModule } from "../prisma/prisma.module"; * Tracks step status transitions, token usage, and duration. */ @Module({ - imports: [PrismaModule], + imports: [PrismaModule, AuthModule], controllers: [JobStepsController], providers: [JobStepsService], exports: [JobStepsService], diff --git a/apps/orchestrator/src/spawner/docker-sandbox.service.ts b/apps/orchestrator/src/spawner/docker-sandbox.service.ts index 37c1922..643377f 100644 --- a/apps/orchestrator/src/spawner/docker-sandbox.service.ts +++ b/apps/orchestrator/src/spawner/docker-sandbox.service.ts @@ -1,4 +1,4 @@ -import { Injectable, Logger } from "@nestjs/common"; +import { Injectable, Logger, Optional } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; import { randomBytes } from "crypto"; import Docker from "dockerode"; @@ -86,7 +86,7 @@ export class DockerSandboxService { constructor( private readonly configService: ConfigService, - docker?: Docker + @Optional() docker?: Docker ) { const socketPath = this.configService.get( "orchestrator.docker.socketPath",