feat(ops): health-fail alerts, optional DB backup, admin UX polish
Wire jobs-worker health probes to Discord/email alerts with cooldown, optional mysqldump, rate-limit /api/health, mark-all-read alerts, ConfirmDialog on destructive admin actions, and raise coverage floors. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
3bd712e744
commit
725e1cb338
16 files changed
+327
-32
No files matched your search
@@ -179,6 +179,23 @@ describe("staff smoke contract", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("ships ops health alerts, optional DB backup, and health rate limit", () => {
|
||||
const worker = readFileSync("scripts/jobs-worker.ts", "utf8");
|
||||
expect(worker).toContain("checkOpsHealth");
|
||||
expect(worker).toContain("healthDegraded");
|
||||
expect(worker).toContain("backupDatabase");
|
||||
expect(readFileSync("src/lib/services/alert.ts", "utf8")).toContain(
|
||||
"healthDegraded",
|
||||
);
|
||||
expect(readFileSync("src/app/api/health/route.ts", "utf8")).toContain(
|
||||
"rateLimit",
|
||||
);
|
||||
expect(readFileSync("src/actions/admin-alerts.ts", "utf8")).toContain(
|
||||
"markAllAlertsRead",
|
||||
);
|
||||
expect(readFileSync("src/env.ts", "utf8")).toContain("DB_BACKUP_DIR");
|
||||
});
|
||||
|
||||
it("documents local-only photo file purge", () => {
|
||||
expect(readFileSync("src/app/admin/photos/page.tsx", "utf8")).toContain(
|
||||
"purgeHint",
|
||||
|
||||
Reference in new issue
Block a user