Files
2026-07-13 13:32:57 +08:00

28 lines
991 B
TypeScript

import { prisma } from "~/db.server";
import type { LoaderFunction } from "@remix-run/node";
import { env } from "~/env.server";
import { rbac } from "~/services/rbac.server";
export const loader: LoaderFunction = async ({ request }) => {
try {
// Resolve the lazy plugin controller so plugin-load failures surface
// during readiness probes. With REQUIRE_PLUGINS=1, a failed plugin
// load throws here and the rollout's readiness probe fails. The
// fallback path doesn't touch the DB, so this runs even when
// HEALTHCHECK_DATABASE_DISABLED=1 — REQUIRE_PLUGINS protection must
// not be silently bypassed by the DB-disabled flag.
await rbac.isUsingPlugin();
if (env.HEALTHCHECK_DATABASE_DISABLED === "1") {
return new Response("OK");
}
await prisma.$queryRaw`SELECT 1`;
return new Response("OK");
} catch (error: unknown) {
console.log("healthcheck ❌", { error });
return new Response("ERROR", { status: 500 });
}
};