-
Task
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
False
-
-
False
-
-
Implement a dynamic system banner in the Dashboard UI to communicate platform-wide announcements (e.g., Atlas SBOM outages) without requiring a redeploy. The banner content should be externally configurable and fetched at runtime by the frontend. The backend will expose a /system/banner endpoint that reads values from a ConfigMap, and the frontend will poll this endpoint periodically to display updates automatically.
This feature enables the team to communicate outages (or other kind of relevant events) quickly to our customers.
Requirements
- Add dashboard-banner ConfigMap containing:
-
- enabled (boolean)
-
- level (info | warning | danger)
-
- message (string)
- Add /system/banner FastAPI endpoint returning banner config as JSON
- Mount ConfigMap in backend Deployment (envFrom or mounted files)
- Frontend polls /system/banner every X seconds/minutes and displays banner dynamically
- Display banner using PatternFly Alert or AlertGroup
- No frontend redeploy necessary when banner changes
- Allow disabling banner by switching enabled to false
Acceptance Criteria
- When enabled=true and a message is set, banner is visible in the UI
- When enabled=false, banner is hidden
- Changes to the ConfigMap propagate within polling interval without redeploy
- Polling interval can be adjusted via environment variable or hardcoded default
- Tested in multiple environments (dev / stage / prod)
- Resilient behavior when endpoint unavailable:
-
- Logs warning
-
- Does not break UI rendering
Notes
Useful for Atlas SBOM outage alert:
"⚠️ Atlas SBOM service is currently unavailable. SBOM links for new artifacts will be temporarily missing until service is restored."
Example patch command:
oc patch configmap dashboard-banner --type merge -p '{"data":{"enabled":"true","message":"Atlas SBOM service is currently unavailable"'}}