lablup / lablup/backend.ai-webui
App config: move the system announcement to the domain app config
- Dominant language
- TypeScript
- Stars
- 133
- Forks
- 81
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 355
Description
## Goal
Move the WebUI system announcement from the legacy manager announcement API to the domain app config, in line with the other app-config migrations under FR-1203 (appearance document: FR-1964, FR-3834).
## Current state
- Admins edit the announcement on the Maintenance settings page (`MaintenanceSettingList` → `AnnouncementEditModal`), which writes through `baiClient.service.update_announcement(enabled, message)`.
- `AnnouncementBanner` reads the same legacy endpoint and shows the banner to every user on the cluster.
## Scope
- Store the announcement (enabled flag, message, and any display options) as a slice of the domain app config instead of the legacy announcement endpoint.
- Read it through the app-config hooks introduced by FR-1964 so the banner follows the current domain.
- Update `AnnouncementEditModal` to save into app config (same save path as the Branding "apply to domain" flow in FR-3834).
- Keep the legacy endpoint as a fallback for managers that do not serve app config, or document the cutover.
## Out of scope
- New announcement features (scheduling, per-user dismissal) — separate issues.
JIRA Issue: FR-3877
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with MaintenanceSettingList, AnnouncementEditModal, and AnnouncementBanner, then review the app-config hooks from FR-1964 and the Branding “apply to domain” save flow from FR-3834. Move announcement storage and reads to the domain app config, preserve or document the legacy fallback, and verify the banner and admin editing follow the current domain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100