nodwyn.

ADR 0006: Unbound egress defaults to deny

  • Status: accepted
  • Date: 2026-09-20

Context

SPEC: bound → silent pass; unbound/unknown → deny or confirm, never fail open. SPEC Risk 2: a bare confirm can be uninformed consent.

Decision

policy.unbound = "deny" by default. "confirm" is opt-in. When a confirm is shown it names the secret class, the destination host, the position and the method, and offers to append the corresponding row to bindings.toml so the next occurrence is a silent, logged pass instead of another prompt.

Consequences

  • The first weeks with a new credential produce a few prompts, each of which converts into a binding. That is the intended way the table gets written.
  • A confirm for an unknown class remains a separate, explicit policy switch.