Skip to content

tile,config: serve redacted config export on the log index page - #8

Merged
mcpherrinm merged 1 commit into
mainfrom
redacted-config-index
Jun 3, 2026
Merged

tile,config: serve redacted config export on the log index page#8
mcpherrinm merged 1 commit into
mainfrom
redacted-config-index

Conversation

@mcpherrinm

Copy link
Copy Markdown
Owner

Add config.Config.Redacted(), a public-safe view of the running configuration built as an allowlist: only fields that are neither secrets, filesystem paths, nor internal bind addresses are copied across, so a newly added field is excluded by default rather than leaking by accident. Dropped: data_dir, all seed/key/TLS paths, every *_path field, and the acme/monitoring/metrics/sign-subtree listen addresses (only external_url values are exposed).

cmd/cactus marshals cfg.Redacted() and hands the JSON to the tile server via WithConfigJSON; the read-path server stays decoupled from config and just serves the bytes at GET /config (404 when unset). The browser UI gains a collapsible Configuration panel that fetches and displays it.

Tests: a leak guard fills every secret/path/listen field with a sentinel and asserts none survive redaction; tile tests cover /config enabled and disabled.

Add config.Config.Redacted(), a public-safe view of the running
configuration built as an allowlist: only fields that are neither
secrets, filesystem paths, nor internal bind addresses are copied
across, so a newly added field is excluded by default rather than
leaking by accident. Dropped: data_dir, all seed/key/TLS paths, every
*_path field, and the acme/monitoring/metrics/sign-subtree listen
addresses (only external_url values are exposed).

cmd/cactus marshals cfg.Redacted() and hands the JSON to the tile
server via WithConfigJSON; the read-path server stays decoupled from
config and just serves the bytes at GET /config (404 when unset). The
browser UI gains a collapsible Configuration panel that fetches and
displays it.

Tests: a leak guard fills every secret/path/listen field with a
sentinel and asserts none survive redaction; tile tests cover /config
enabled and disabled.
@mcpherrinm
mcpherrinm merged commit e5f8c16 into main Jun 3, 2026
1 check passed
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.

1 participant