Skip to content

[RFC] OpenSearch Dashboards Banner Plugin #9861

Open
@sidwang42

Description

@sidwang42

RFC: Dashboard Banners UI Plugin for OpenSearch Dashboards

Proposal

Introduce a standalone UI plugin to provide a global, configurable header banner system in OpenSearch Dashboards (OSD). Unlike the existing core banner system, this plugin is dedicated to top-of-page announcements, offering styling, markdown, dismissal, and configuration capabilities. While Phase 1 may appear functionally similar to the current core banner service, the key distinction is architectural: this plugin is not designed for reuse by other plugins and affects layout and configuration scopes that go beyond temporary notifications.

Background

The existing core OverlayBannersService was built to support temporary, client-only notifications within the main body of the OSD layout. Extending it to support global banners would introduce significant risk and complexity:

  1. Separation of Concerns: The core service's implementation is tightly coupled with existing layout logic and expectations. Altering it to support global banners, custom styling, and content types introduces branching logic and degrades its clarity.

  2. Widespread Usage: The core banner system is already used by several plugins, including data source management. Modifying its behavior (e.g., adding support for a new banner location or styling) could lead to regressions.

  3. Scope Differences: The global banner is intended to be persistent and not tied to plugin behavior or runtime logic. It may also eventually require server-side logic (e.g., fetching banner content from external links), which the client-only core banner system cannot support.

  4. Ownership and Lifecycle: The banner plugin manages its own configuration and rendering lifecycle. This isolates it from the OSD core and improves maintainability, versioning, and backporting.

The plugin model also allows the system to evolve—such as integrating with feature flags or server routes—without impacting unrelated parts of Dashboards.

Terminology

  • Header Banner: A persistent, top-of-page banner distinct from ephemeral system notifications.
  • Banner Configuration: YAML or Advanced Settings controlling banner content, visibility, and styling.
  • Banner Dismissal: Per-user setting to hide the banner, persisted in local storage or Advanced Settings.

Design Considerations

Image

Mount Point and Layout

Because OSD does not currently expose a mount point at the very top of the layout, the plugin will require changes to the core layout (e.g., adding a <div id="globalBanner" /> to header.tsx). This modification is minimal and localized, and allows the plugin to render above the main header.

Potential for Future Expansion

Phase 2 anticipates server-side logic and dynamic sources for banner content. This may include:

  • Pulling markdown from a server
  • Introducing REST APIs for banner content
  • Role-based visibility or scheduled banners

Metadata

Metadata

Assignees

Labels

RFCSubstantial changes or new features that require community input to garner consensus.bannerDashboards banner plugin which displays global banner and allows customizationenhancementNew feature or request

Type

No type

Projects

Status

New

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions