Files
cgalo5758 8e3c68c6be Make UI surfaces honestly reflect system state
- Add deployment-name branding to titles, mastheads, and OG tags
- Share one grant delivery-state query with lineage across grants
  surfaces
- Show pool status/usage, org owners, and config readiness
- Make billing views projection-aware with recency and sync vocabulary
- Guard FedWiki creation without domains and render route-aware 404s
2026-08-23 01:45:52 -05:00

2.2 KiB

deployment-identity Specification

Purpose

Give every deployment one configurable name the application uses for itself everywhere it self-identifies, so member and operator surfaces tell one story and the default stays brand-neutral for this general-purpose OSS project.

Requirements

Requirement: Configurable deployment name presented identically on every surface

The system SHALL provide a configuration knob deployment-name (environment MC_DEPLOYMENT_NAME), defaulting to the generic product name Member Console. The configured value SHALL be the single name the application presents for itself: the member masthead, the operator masthead, page <title> values, and OpenGraph metadata SHALL all render the configured deployment name, and no template SHALL hardcode a deployment-specific brand (the hardcoded "Wiki Cafe" strings are removed). The default keeps screenshots and first impressions deployment-neutral; a configured value keeps the member and operator surfaces telling the same story about where the user is. The knob SHALL be validated at startup via the shared config validation path (non-blank after trimming); IdP realm branding (the login screen) is explicitly out of scope — the realm belongs to the identity provider, which may front services beyond this console, and docs MAY note that deployers can align realm display names themselves.

Scenario: Default deployment renders the generic name everywhere

  • WHEN no deployment-name is configured and a user visits member and operator pages
  • THEN both mastheads, page titles, and OpenGraph tags render Member Console
  • AND no page renders a deployment-specific hardcoded brand

Scenario: Configured name appears identically on both surfaces

  • WHEN deployment-name is set to Solidarity Web Collective and a user with both roles navigates from a member page to an operator page
  • THEN both surfaces render Solidarity Web Collective in the masthead
  • AND the name does not change as the user crosses surfaces

Scenario: Blank deployment name is rejected at boot

  • WHEN deployment-name is configured as blank or whitespace-only
  • THEN startup validation fails with an error naming the knob