Skip to content

Maintenance/incident notice: in-app banner that works when the backend is down #691

Description

@lilyshen0722

Sam's ask: users should see a short notice when we're doing something disruptive, instead of a mysteriously broken app.

Design constraints that shape this:

  • Deploys are zero-downtime since fix: keep Redis stable and make backend rollouts zero-downtime #676 — so this is NOT a deploy banner. It's for (a) unplanned incidents and (b) rare planned maintenance (migrations).
  • It must render when the backend is unreachable — so it cannot be served by the backend. The frontend nginx pod survives backend outages independently.

Scope:

  1. Automatic incident banner (no ops action needed): the SPA already knows when API calls fail — on repeated health/API failure, show a slim top banner: "Having a brief hiccup — reconnecting…" and clear it on recovery. Pairs with fix(socket): kalıcı pes etme yerine sınırsız yeniden bağlanma + backoff #685's socket reconnect. This covers 95% of real cases with zero operator work.
  2. Planned-maintenance notice (operator-set): frontend polls a static /maintenance.json served by its own nginx (mounted via ConfigMap so ops can set a message + window with kubectl apply, no rebuild). When present: banner with the message; landing + login also render it.
  3. Both banners: dismissible, non-blocking, v2-token styled.

Explicitly not in scope: a separate status-page product/domain. The GitHub Actions uptime probe (#674) remains the external truth; link "status" in the footer to its workflow page for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions