Main dashboard
The first screen after login. A project-scoped overview of cert lifecycle health — counts by status, imminent renewals, distribution outcomes, pending approvals, expiring domains. Everything clickable drills into the appropriate filtered list.
01Scope
- Scoped to the current project (project selector in the top-left).
- Role affects what's shown — viewers see the same data as operators, minus action buttons.
- Updates live via the dashboard API; no polling loop beats the eye.
02Widgets
Summary tiles
Four headline numbers at the top:
- Total managed certs — active + renewal_failed + expired (not revoked).
- Expiring this month — < 30 days remaining. Colour-coded: green 0, amber < 10, red ≥ 10.
- Renewal failures — count in
renewal_failedterminal state. Non-zero = attention. - Pending approvals — count where you're an eligible reviewer. Click to jump to My Requests → Reviews.
Renewal timeline
A 90-day horizon stacking upcoming renewals per day. Hover a bar for the list; click for the filtered cert list. Lets you spot a Monday-morning spike before it arrives.
Risk breakdown
Four bars: critical / high / medium / low. Counts recompute on read, so they reflect current state. Click a bar for the filtered list.
Distribution health
Last 7 days: success / partial / failed ratio. Drills into the distribution history with the same filter applied.
Issuer mix
Donut chart of active certs by issuer. Useful for "we're over-indexed on one CA — what's the migration plan?" conversations. A small legend lists the issuers with counts.
Job queue
Current pending / in-progress counts across all job types in the project. A red badge appears if anything's in dead-letter. Click to open Jobs pre-filtered.
Domain trackers
Summary of tracked domains with expiry < 90 days. Shows registrar and days remaining; links to domain detail.
Discovery summary
Open finding counts per severity. If discovery is disabled or unlicensed, the widget collapses to a call-to-action.
Recent events
Last 20 events across the project. Same data as cert timelines aggregated; filterable by type. The "everything happening right now" ticker.
03Filters
A filter bar at the top narrows the entire dashboard by time range (last 24 h, 7 d, 30 d, custom) and issuer type (ACME / MSCA). The sum tiles stay period-free (total active certs doesn't care about time); everything else respects the filter.
04Mobile
Responsive — tiles stack, charts simplify. Full functionality retained down to 375 px; below that, the dashboard is still usable but you'll miss the visual parallelism.
05Customising
Widget reordering / per-user layout is not yet supported. If
you want a different shape, consume the dashboard API
(/projects/{projectId}/dashboard/summary +
/trends) and render in Grafana or your internal
portal. For the SOC-2 / PCI-DSS readiness view, the
47-Day readiness
dashboard is a purpose-built alternative.
06API
GET /api/v1/projects/{projectId}/dashboard/summary?window=7d
GET /api/v1/projects/{projectId}/dashboard/trends?metric=renewals&window=30d
07Troubleshooting
Dashboard is empty
Wrong project selected (top-left picker). Or brand-new project with no certs yet — widgets render empty states with next-step hints.
Numbers lag the cert list
Some gauges read from Prometheus-style counters that refresh on the scheduler sweep. Give it up to scheduler.interval. For live values, use the cert list.