Skip to content

Docs-Sync #194: RedactHostnames default + LeaderOnlyAttribute not documented #200

Description

@Sev7eNup

Two doc gaps introduced by PR #194 that need human judgment on wording/placement before an auto-fix can be applied.

Source PR: #194 — "Consolidate outstanding security, Live Ops, settings, and documentation work" (merged 2026-08-13)


Findings

  • OpenTelemetry:RedactHostnames default changed falsetrue — not documented anywhere

    NodePilotTelemetryOptions.cs now initialises RedactHostnames = true. Effect on running deployments after upgrade: ServiceInstanceId switches from hostname:PID to a random hex id; the host.name OTLP resource attribute becomes an empty string; the Serilog telemetry bridge suppresses the hostname field. Operators who rely on hostname attribution in Tempo/Grafana will see it silently vanish with no guidance on how to revert (OpenTelemetry:RedactHostnames: false).

    README.md config table lists OpenTelemetry:Enabled and OpenTelemetry:Exporters:PrometheusScrape but not RedactHostnames. docs/claude-reference.md hardening-flags table doesn't list it either (it fits there conceptually alongside the other privacy defaults). Judgment needed: which table(s) to add it to and what the recommended production value should be.

  • LeaderOnlyAttribute not listed in docs/enterprise-features.md important-files section

    PR Consolidate outstanding security, Live Ops, settings, and documentation work #194 added src/NodePilot.Api/Security/LeaderOnlyAttribute.cs. enterprise-features.md lists LeaderRequiredMiddleware.cs in its important-files section and describes path-based heuristics, but does not mention the new attribute-based mechanism. The middleware now checks endpoint metadata for [LeaderOnly] before path heuristics, and the attribute is already applied to WebhooksController as defense-in-depth. Future contributors adding semantically-mutating GET endpoints need to know the attribute exists. Judgment needed: whether to add a note to the middleware description, add it to the important-files list, or both.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions