1.13.0 — The admin portal, redesigned
Editorial identity incomplete
2026-08-19
django-mojo 1.13.0 rebuilds the built-in admin portal end to end: a calm dashboard that only turns red for real outages, one Deployments lane for web apps, the API and the framework, CloudWatch metrics and applyable infrastructure upgrades without the AWS console, plain-language settings, and a dissolved Platform page — the dashboard is now the only health page. Breaking for API consumers: the dashboard endpoint's response drops the old worst-of-any-source rollup fields.
Breaking
GET /api/account/admin/dashboardnow returns schema 2:overallandobservable_sourcesare removed, replaced byavailability(down only on proven unavailability) and a separateattentionmessage. Update anything that reads the old rollup before upgrading.- The dashboard payload no longer carries the last deployment's stderr tail; the platform deployments section still serves it to platform viewers.
- Portal bookmarks to the Platform and Advanced diagnostics pages land on the dashboard; the old Web Apps page opens the new Deployments lane.
Added
- Dashboard rows for load balancer target health (with elastic IP), fleet-scoped EC2, RDS, Elasticache, SSL certificates, the public API, the installed django-mojo version (pin-aware update check), jobs (queue and scheduler state, one-hour failure window), and node sanity checks.
- Every dashboard row has a Details drill-in: plain facts, the raw evidence JSON, and lazily fetched fleet-runner and security-posture views.
- Metrics page: CloudWatch charts for the fleet's instances, databases, cache and load balancer without opening the AWS console; reads degrade instead of erroring.
- Maintenance page: pending RDS and Elasticache version upgrades and django-mojo self-update, visible and applyable behind an explicit confirmation.
- One Deployments lane merging web apps, the public API and the framework — what is live, when it last changed, and the one action that matters per row.
- Settings redesigned: plain-language rows, one-topic drill-in panels, per-topic provider writes, secret key hints, and a persisted verify state.
- System Setup is a real sidebar entry for superusers, amber-badged when setup needs attention; bootstrap gains a
setup_attentioncapability. - New AWS helpers for load balancer evidence and RDS/Elasticache version upgrades; a bounded per-app summaries endpoint for web apps; a
sectionsfilter on the platform overview endpoint so callers fetch only what they render.
Changed
- The dashboard headline is colored only by actual availability; open-incident backlog is a muted attention line, never the status color.
- The Platform health page and the Advanced diagnostics page are gone. The advanced overview endpoint still answers, but the advanced view permissions no longer have a portal surface — they are API-only until that data is re-homed.
- The node sanity "local request" self-check is reported only when a static local API target is configured, ending a permanent false amber on default installs.
Fixed
- Settings: unknown focus values fall back to the list view; the SMS provider editor fails closed when text messaging is not installed; narrow viewports no longer overflow.
- A deliberately pinned fleet is never offered a framework update.
- The framework Update control only renders with platform manage permission, matching the endpoint it calls.
- Deployment page actions refresh their row from the server instead of stale local state.
- Drill-ins never present missing evidence as a finding — an unavailable source says so instead of claiming an empty result.
Upgrade notes
- No migrations.
- The new load balancer and EC2 dashboard rows use the ELB describe actions and instance describe; without those IAM grants the rows degrade quietly and name the missing action. Metrics and Maintenance likewise degrade per-source when CloudWatch or modify permissions are absent.