feat: add infrastructure checks (DB exists, Spaces prefix) to customer overview
Some checks failed
Build & Release / build (push) Has been cancelled

This commit is contained in:
Ryan Moon
2026-04-03 20:23:48 -05:00
parent bd97d65613
commit 530698f52e
2 changed files with 59 additions and 10 deletions

View File

@@ -219,19 +219,44 @@ export async function customerRoutes(app: FastifyInstance) {
statusEntry = { data: liveStatus, cachedAt: new Date().toISOString() };
}
// ── Size history (last 30 days) ───────────────────────────────────────────
const sizeHistory = await db`
SELECT recorded_at, db_size_bytes, spaces_size_bytes, spaces_object_count
FROM customer_size_snapshots
WHERE slug = ${slug}
ORDER BY recorded_at DESC
LIMIT 30
`;
// ── Infrastructure checks ─────────────────────────────────────────────────
const [dbCheck, sizeHistory, secrets] = await Promise.allSettled([
// Try connecting to the customer DB
(async () => {
const sql = postgres(config.doadminDbUrl.replace(/\/([^/?]+)(\?|$)/, `/${slug}$2`), { max: 1, connect_timeout: 5 });
try {
await sql`SELECT 1`;
return true;
} finally {
await sql.end();
}
})(),
db`
SELECT recorded_at, db_size_bytes, spaces_size_bytes, spaces_object_count
FROM customer_size_snapshots
WHERE slug = ${slug}
ORDER BY recorded_at DESC
LIMIT 30
`,
getSecret(namespace, "lunarfront-secrets").catch(() => null),
]);
const dbExists = dbCheck.status === "fulfilled" ? dbCheck.value : false;
const secretData = secrets.status === "fulfilled" ? secrets.value : null;
const infra = {
database: { exists: dbExists },
spaces: {
configured: !!(secretData?.["spaces-prefix"]),
bucket: secretData?.["spaces-bucket"] ?? null,
prefix: secretData?.["spaces-prefix"] ?? null,
},
};
return reply.send({
customer,
status: { ...statusEntry.data, cachedAt: statusEntry.cachedAt },
sizeHistory,
infra,
sizeHistory: sizeHistory.status === "fulfilled" ? sizeHistory.value : [],
});
});