docs(arch): ConnectionCredentials decouples dial from call protocol (ADR-091) + migration plan cleanups
ADR-091: ConnectionCredentials — decouple the dial credential bundle from the call protocol. CallCredentials (call-protocol-level, carries auth_token) was being used as the dial's credential type, coupling the dial to the call protocol. The auth_token is a hub-layer identity correlation mechanism (browsers, alknet/register), not a transport credential. ConnectionCredentials (transport-level: local_identity + remote_identity) is the dial's credential bundle; all three dial signatures unify on &ConnectionCredentials; dial_iroh's node_id parameter is derived from remote_identity.fingerprint. CallCredentials stays in alknet-call with auth_token. The shape is validated by the future dial_ssh pattern (russh's check_server_key + authenticate_publickey consume the same two dimensions). Amends ADR-089 §3 (dial signatures) and §5 (move consequence), ADR-087 (input framing). Updates client/tls/call/core crate specs and the extraction plan's Phase 0/3/4/5. Migration plan cleanups (findings.md): - Remove duplicated ordering-rationale bullets (copy-paste artifact) - TL;DR: six phases -> seven (Phase 0 promoted); four compilable intermediate states -> each phase leaves workspace compilable - Remove inline 'Wait — that's 10, not 8' self-correction; fix Category B header to (10 tests) - Replace contradictory line ranges in Net Phase 5 test impact with name-based references - Decide quinn feature fate: removed (not no-op) - Note webpki-roots always-present per ADR-088 §5 in Phase 1 dep list
This commit is contained in:
1 parent
16ae3cf6c9
commit
613bf680cd
9 files changed
+599
-154
No files matched your search
@@ -2,7 +2,10 @@
|
||||
|
||||
## Status
|
||||
|
||||
Accepted (resolves OQ-64)
|
||||
Accepted (resolves OQ-64; input framing amended 2026-07-16 by ADR-091 —
|
||||
`ClientVerifierContext` is derived from `ConnectionCredentials.remote_identity`,
|
||||
not `CallCredentials.remote_identity`; the `auth_token` is not in the
|
||||
dial's credential bundle)
|
||||
|
||||
## Context
|
||||
|
||||
@@ -122,6 +125,16 @@ in ADR-034; the struct is a bag of already-decided inputs). It is
|
||||
sketched lightly here; the full variant-granularity of `TlsError` is
|
||||
OQ-63 (the next session).
|
||||
|
||||
> **Amendment 2026-07-16 (ADR-091):** `ClientVerifierContext` is derived
|
||||
> from `ConnectionCredentials.remote_identity` (the transport-level
|
||||
> credential bundle), not `CallCredentials.remote_identity`. The dial
|
||||
> (`AlknetClient::dial_quic` / `dial_tcp_tls`) extracts
|
||||
> `creds.remote_identity` from `ConnectionCredentials` and builds
|
||||
> `ClientVerifierContext` from it. `CallCredentials` is no longer in the
|
||||
> dial's path — its `auth_token` dimension is a call-protocol concept,
|
||||
> not a transport credential. See
|
||||
> [ADR-091](091-connectioncredentials-decouple-dial-from-call.md).
|
||||
|
||||
This is **not** the dial. `TlsClientConfig` produces a
|
||||
`rustls::ClientConfig`; the caller (the transport-specific dial helper
|
||||
— now `AlknetClient::dial_quic` / `dial_tcp_tls` per ADR-089; the
|
||||
|
||||
Reference in new issue
Block a user