feat(fastify-core): deny CORS by default when origin unset, add graceful shutdown handlers

This commit is contained in:
saravanakumardb1 2026-02-28 20:23:58 -08:00
parent 04f4a5f81e
commit 4863b62055
2 changed files with 12 additions and 2 deletions

View File

@ -30,8 +30,8 @@ export async function createServiceApp(options: ServiceAppOptions): Promise<Fast
const app = Fastify({ logger });
// CORS
const origin = corsOrigin ? corsOrigin.split(',').map(o => o.trim()) : true;
// CORS — deny all origins when CORS_ORIGIN is not explicitly set
const origin = corsOrigin ? corsOrigin.split(',').map(o => o.trim()) : false;
await app.register(cors, { origin });
// OpenAPI spec (optional — consumer must have @fastify/swagger installed)

View File

@ -6,6 +6,16 @@ import type { FastifyApp, StartOptions } from './types.js';
export async function startService(app: FastifyApp, options: StartOptions): Promise<void> {
const { port, host = '0.0.0.0' } = options;
// Graceful shutdown on SIGTERM/SIGINT (Docker, K8s, Ctrl-C)
for (const signal of ['SIGTERM', 'SIGINT'] as const) {
process.on(signal, async () => {
app.log.info(`Received ${signal}, shutting down gracefully…`);
await app.close();
process.exit(0);
});
}
try {
await app.listen({ port, host });
app.log.info(`Service listening on ${host}:${port}`);