Skip to content

docs: fix signature header template escaping, merge template field tables - #1024

Open
alexluong wants to merge 2 commits into
mainfrom
docs/signature-header-template-escaping
Open

docs: fix signature header template escaping, merge template field tables#1024
alexluong wants to merge 2 commits into
mainfrom
docs/signature-header-template-escaping

Conversation

@alexluong

Copy link
Copy Markdown
Collaborator

Closes #1023

The documented header template value carried shell/JSON escaping (\") inline. Copied into a .env file, a Compose environment: entry, or a plain YAML scalar — none of which unescape — Go's template parser rejects the backslash and Outpost refuses to start.

  • Give the template value once, unescaped, and treat quoting as a property of the transport: shell/JSON examples keep \", with .env/Compose and YAML variants alongside. Same in the v0.12 upgrade guide.
  • Merge the content-template and header-template field lists into one table with per-template columns, so the exclusivity of .Body and .Signatures is structural instead of inferred from comparing two lists.

Verified against internal/destregistry/providers/destwebhook/signature.go: SignaturePayload and HeaderPayload are distinct structs, and a cross-used field passes Parse but fails Execute at delivery time — so the doc says "every delivery that renders it fails", not "invalid config".

Docs only, no code changes.

🤖 Generated with Claude Code

alexluong and others added 2 commits August 7, 2026 13:58
…bles

The documented header template value carried shell/JSON escaping (`\"`)
inline. Copied into a .env file, a Compose `environment:` entry, or a
plain YAML scalar — none of which unescape — Go's template parser
rejects the backslash and Outpost refuses to start.

Give the template value once, unescaped, and treat quoting as a property
of the transport: shell/JSON examples keep `\"`, with .env/Compose and
YAML variants alongside. Same in the v0.12 upgrade guide.

Also merge the content-template and header-template field lists into one
table with per-template columns, so the exclusivity of `.Body` and
`.Signatures` is structural rather than inferred from two lists.

Closes #1023

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The transport-matrix sentence claimed .env files pass backslashes
through literally. Most .env readers (godotenv, Compose env_file)
unescape double-quoted values, so the claim was wrong for Outpost's own
config loading; only docker run --env-file is fully literal. Rather than
correcting the matrix, drop it: the values are stated once as literals,
escaping belongs to whatever format carries them, and the per-context
examples show the right form for each. Failure wording updated to the
startup rejection introduced by the signature-validation fix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

Documented signature header template is invalid in .env, compose, and plain YAML

1 participant