← back to Norma

app/api/v1/health/route.ts

25 lines

import { NextRequest, NextResponse } from 'next/server';
import { authAndRateLimit, rateLimitHeaders } from '@/lib/api-key-auth';

/**
 * GET /api/v1/health
 * Public health endpoint — requires Norma API key (any scope).
 * Proof-of-concept for the v1 external API namespace.
 */
export async function GET(request: NextRequest) {
  const result = await authAndRateLimit(request);
  if (result instanceof NextResponse) return result;
  const { auth, rateInfo } = result;

  return NextResponse.json(
    {
      status: 'ok',
      service: 'norma',
      version: '1.0.0',
      timestamp: new Date().toISOString(),
      scopes: auth.scopes,
    },
    { headers: rateLimitHeaders(rateInfo) },
  );
}