All files / web/src/app/api/build-info route.ts

0% Statements 0/29
0% Branches 0/1
0% Functions 0/1
0% Lines 0/29

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                                                           
import { NextResponse } from 'next/server'
import { hostname } from 'os'
import buildInfo from '@/generated/build-info.json'
import { getRedisClient, isRedisAvailable } from '@/lib/redis'

// Force dynamic evaluation - this route must not be statically cached
// because it reads runtime environment variables and system state
export const dynamic = 'force-dynamic'

export async function GET() {
  const redis = getRedisClient()

  return NextResponse.json({
    ...buildInfo,
    instance: {
      hostname: hostname(),
      containerId: process.env.HOSTNAME || 'unknown',
      nodeEnv: process.env.NODE_ENV,
    },
    redis: {
      configured: !!process.env.REDIS_URL,
      connected: isRedisAvailable(),
      status: redis?.status || 'not configured',
    },
    socketio: {
      adapter: redis ? 'redis' : 'memory',
    },
  })
}