/** * GET /api/print-agent/backup (Bearer agent token) — latest /etc/cups backup of this agent, * or 404. Used by the agent's `restore-cups` step on a re-imaged / replacement box. */ import { createReadStream, existsSync, statSync } from 'node:fs' import { requireAgent } from '../../utils/printAgentAuth' import { backupPath } from './backup.post' export default defineEventHandler(async (event) => { const agent = requireAgent(event) const file = backupPath(agent.id) if (!existsSync(file)) throw createError({ statusCode: 404, statusMessage: 'no backup stored for this agent' }) const st = statSync(file) setResponseHeaders(event, { 'Content-Type': 'application/gzip', 'Content-Length': String(st.size), 'Last-Modified': st.mtime.toUTCString(), 'Cache-Control': 'no-store' }) return sendStream(event, createReadStream(file)) })