lablup / lablup/backend.ai-webui

App config: move the system announcement to the domain app config

Open
#9,526 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.