Skip to content

Announcements

Announcements push information to console users — maintenance windows, release notes, policy changes. They have two scopes and three surfaces.

Two scopes

  • System announcements: published by a platform admin under Overview → System Announcements, visible to every logged-in user. Works across all three deployment forms (private cloud / public personal / public organization).
  • Organization announcements: published by an org admin under Organization → Org Announcements, visible only to members of that organization.

A personal-mode user (not in any organization) sees system announcements only.

Three surfaces

  • Banner: shown at the top of every console page; dismiss it with the close button.
  • Modal: a strong prompt that pops up as a dialog after login and closes once acknowledged.
  • History page: every logged-in user can review their visible announcements (including expired ones) on the Announcements page.

The "dismissed" state is kept in the browser (localStorage), keyed by announcement id + last-updated time. Changing metadata or any translation advances that timestamp and re-surfaces the announcement. Merely switching the console language does not change the dismissal key, so an unchanged announcement does not pop up again. This state does not sync across devices.

Localized content and fallback

An administrator edits Chinese and English titles and bodies on separate tabs and chooses one default language. The default translation must be complete; the other language may be left empty, so a single-language announcement is valid. The editor labels each language as filled or missing and identifies the default.

Reader endpoints return one resolved translation for the current console language rather than exposing the full administrative translation set:

  • an exact translation is shown when present;
  • when it is missing, the announcement's default translation is shown with a fallback notice in details and history;
  • adding or changing either translation later advances the announcement timestamp and re-surfaces a previously dismissed announcement.

Markdown editor

Announcement bodies are stored as Markdown. The editor provides two modes that can be switched at any time:

  • Rich text: format headings, emphasis, lists, links, tables, and other supported structures directly;
  • Source mode: edit the raw Markdown when pasting existing content or controlling syntax precisely.

The current draft is retained when switching locale tabs, editing an existing announcement, or changing editor modes. Rich-text mode can normalize whitespace and marker choices, so the stable contract is the rendered meaning, not byte-for-byte Markdown formatting.

The supported subset includes paragraphs, level 2–4 headings, bold, italic, strikethrough, inline code, block quotes, ordered / unordered / task lists, HTTP(S) and console-relative links, code blocks, thematic breaks, and GFM tables. A pasted HTTP(S) URL is linkified as well.

To prevent announcements from becoming executable or tracking content, raw HTML, MDX / JSX, and images are not rendered. An image shows only its alternative text and does not load its URL. Dangerous link schemes such as javascript: and data: are removed. A body is limited to 8,000 characters.

Fields

FieldNotes
Default languageChinese or English; its complete translation is required.
Chinese / English title and bodyEvery supplied translation needs both fields; the non-default language may be wholly empty. The body uses the restricted Markdown subset above and can be edited in rich-text or source mode.
LevelInfo / Warning / Critical, drives the banner colour.
DisplayBanner or Modal.
PublishedDrafts are not visible to readers.
Starts at / Ends atOptional publish window; leave blank for "immediately" / "no expiry".