Files
dbis_core/src/integration/api-gateway/middleware/admin-central-auth.middleware.ts
2026-04-18 12:05:17 -07:00

32 lines
982 B
TypeScript

/**
* Admin Central API auth middleware
* Used for service-to-service calls from orchestration portal, token-aggregation, multi-chain-execution.
* Expects X-Admin-Central-Key header to match ADMIN_CENTRAL_API_KEY env.
*/
import { Request, Response, NextFunction } from 'express';
export function requireAdminCentralKey(req: Request, res: Response, next: NextFunction): void {
const key = req.headers['x-admin-central-key'] as string | undefined;
const expected = process.env.ADMIN_CENTRAL_API_KEY;
if (!expected) {
// If not configured, allow (dev) or deny (prod). Prefer deny for security.
res.status(501).json({
success: false,
error: { code: 'NOT_CONFIGURED', message: 'Admin central API key not configured' },
});
return;
}
if (!key || key !== expected) {
res.status(401).json({
success: false,
error: { code: 'UNAUTHORIZED', message: 'Invalid or missing X-Admin-Central-Key' },
});
return;
}
next();
}