mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-09 05:24:49 +09:00
Plan 75 §A5. The frontend could always render unknown (a real 'unknown' state, an n/a chip) — the backend starved it of the signal: - Doctor's cert check read Domain.ssl_expires_at, a column nothing in production writes — structurally incapable of anything but a green 'No certificates tracked.' Empty now warns: expiry is not monitored. - openssl -checkend exits non-zero for 'expires soon' AND for 'unreadable' — an unreadable cert reported needs_renewal=True, and the error path vanished the cert from the expiring list entirely. Unreadable now returns an error result, and the status endpoint surfaces check_errors instead of dropping them. - A failed monitor cert probe bumped cert_checked_at while keeping the old cert_expires_at — a green 'valid / N days' chip from weeks-old data next to a fresh checked timestamp. The stale value is cleared; the UI falls back to n/a until a probe succeeds. - get_expiry_alerts dropped unprobeable certs by omission; they now appear with severity 'unknown'. get_cert_health reported grade 'F' for a DNS timeout; probe failure now yields grade None + error. - A failed certbot inventory reported '0 certificates, nothing expiring' with HTTP 200; list_certificates_report carries the errors and the status endpoint exposes them as list_errors.