- Add COORDINATOR_API_KEY config option to orchestrator.config.ts - Include X-API-Key header in coordinator requests when configured - Log security warning if COORDINATOR_API_KEY not configured in production - Log security warning if coordinator URL uses HTTP in production - Add tests verifying API key inclusion in requests and warning behavior Refs #337
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { registerAs } from "@nestjs/config";
|
|
|
|
export const orchestratorConfig = registerAs("orchestrator", () => ({
|
|
port: parseInt(process.env.ORCHESTRATOR_PORT ?? "3001", 10),
|
|
valkey: {
|
|
host: process.env.VALKEY_HOST ?? "localhost",
|
|
port: parseInt(process.env.VALKEY_PORT ?? "6379", 10),
|
|
password: process.env.VALKEY_PASSWORD,
|
|
url: process.env.VALKEY_URL ?? "redis://localhost:6379",
|
|
},
|
|
claude: {
|
|
apiKey: process.env.CLAUDE_API_KEY,
|
|
},
|
|
docker: {
|
|
socketPath: process.env.DOCKER_SOCKET ?? "/var/run/docker.sock",
|
|
},
|
|
git: {
|
|
userName: process.env.GIT_USER_NAME ?? "Mosaic Orchestrator",
|
|
userEmail: process.env.GIT_USER_EMAIL ?? "[email protected]",
|
|
},
|
|
killswitch: {
|
|
enabled: process.env.KILLSWITCH_ENABLED === "true",
|
|
},
|
|
sandbox: {
|
|
enabled: process.env.SANDBOX_ENABLED !== "false",
|
|
defaultImage: process.env.SANDBOX_DEFAULT_IMAGE ?? "node:20-alpine",
|
|
defaultMemoryMB: parseInt(process.env.SANDBOX_DEFAULT_MEMORY_MB ?? "512", 10),
|
|
defaultCpuLimit: parseFloat(process.env.SANDBOX_DEFAULT_CPU_LIMIT ?? "1.0"),
|
|
networkMode: process.env.SANDBOX_NETWORK_MODE ?? "bridge",
|
|
},
|
|
coordinator: {
|
|
url: process.env.COORDINATOR_URL ?? "http://localhost:8000",
|
|
timeout: parseInt(process.env.COORDINATOR_TIMEOUT_MS ?? "30000", 10),
|
|
retries: parseInt(process.env.COORDINATOR_RETRIES ?? "3", 10),
|
|
apiKey: process.env.COORDINATOR_API_KEY,
|
|
},
|
|
yolo: {
|
|
enabled: process.env.YOLO_MODE === "true",
|
|
},
|
|
}));
|