Skip to content

docs: branded data-plane error pages enhancement proposal#204

Merged
scotwells merged 5 commits into
mainfrom
docs/branded-error-pages-enhancement
Jun 19, 2026
Merged

docs: branded data-plane error pages enhancement proposal#204
scotwells merged 5 commits into
mainfrom
docs/branded-error-pages-enhancement

Conversation

@scotwells

@scotwells scotwells commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

What

Adds a product-focused enhancement proposal: Branded Data-Plane Error Pages (docs/enhancements/branded-error-pages/README.md).

Why

When a visitor reaches a customer's site through Datum's edge and something goes wrong — the Connector tunnel is offline, the origin is down, a request times out — the response is generated by Envoy, not the customer's app. On the downstream / Connector data plane that response is a raw, unstyled error (e.g. 503 no healthy upstream).

That edge error is a trust and brand surface: it's the page a customer's own end-users see during the customer's outage. This proposal delivers a Datum-branded HTML error page for those edge-generated 5xx responses.

Proposal (summary)

  • Render the page via the extension server's per-listener mutation (the component that customizes this data plane during translation); covers HTTP/2 and HTTP/3 listeners uniformly.
  • Source the HTML from a mounted ConfigMap (GitOps-editable, content owned by brand/design) with a compiled-in fallback so a missing/bad page can never block the fail-closed downstream hook.
  • Preserve status codes (brand the body only); keep a runtime kill-switch; roll the ext-server on content change for deterministic propagation.

Doc follows the existing docs/enhancements/ KEP-style format and is marked status: provisional / stage: alpha. Companion to the Envoy Gateway Extension Server proposal.

🤖 Generated with Claude Code

scotwells and others added 5 commits June 19, 2026 08:09
Product-focused proposal to restore the branded HTML error page on the
downstream/Connector data plane. The page was delivered via an
EnvoyPatchPolicy (local-reply-5xx) that went inert when
enableEnvoyPatchPolicy=false was set during the extension-server
migration, so customer outages (e.g. offline Connector) now render raw
Envoy bodies like "no healthy upstream" instead of the branded page.

Proposes delivering the page through the extension server's per-listener
mutation (the supported path now that EnvoyPatchPolicy is disabled there),
sourcing content from a mounted ConfigMap with a compiled-in fallback so
content edits are a GitOps change and a missing/bad page can never block
the fail-closed data plane.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Remove the (incorrect) 'inert for months' claim; how long EnvoyPatchPolicy
  has been disabled is unknown and not relevant to the proposal.
- Consolidate content: Risks table now indexes the detailed design sections
  instead of restating them; Proposal intro defers mechanics to Design Details.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lead with the functionality the branded data-plane error page provides
rather than the migration history. Drop the regression narrative and the
EnvoyPatchPolicy-comparison framing; describe the extension-server delivery
as the design, not a restoration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Motivation content reads directly under the section header.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@scotwells
scotwells merged commit d228eeb into main Jun 19, 2026
11 checks passed
@scotwells
scotwells deleted the docs/branded-error-pages-enhancement branch June 19, 2026 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants