mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
docs(nip-fi): fix pinned NIP source links and identifier-classification contradiction
Review findings from Mari and Quinn on #5946 at 2511d1baf:
- Repoint the pinned NIP-42/NIP-98 source links from a nonexistent
upstream commit (404) to the resolved commit
6d2979b3f503a8539c983efbcdcf901bbcf9ed23 (both 200).
- NIP-FI-EDGE no longer classifies transport_contract_id as
interoperability-critical, which contradicted core's exclusive
deployment-local classification. The value stays deployment-local;
the contract semantics EDGE contributes to it are what is normative.
- Core's rejection-and-privacy absolute ("never of private server
state") now carries the authorization_unavailable carve-out its own
table and NIP-FI-CONF already relied on.
Co-authored-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
This commit is contained in:
@@ -19,9 +19,13 @@ The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHALL**, **SHALL NOT**,
|
||||
**OPTIONAL** are to be interpreted as described in BCP 14 when, and only when,
|
||||
they appear in all capitals.
|
||||
|
||||
`transport_contract_id` and every identifier serialized by this document are
|
||||
interoperability-critical. Local adapter revision identifiers and key identifiers
|
||||
are deployment-local and MUST NOT appear in public discovery.
|
||||
Every identifier this document serializes on the wire — header names, the
|
||||
profile identifier, provenance envelope fields, and proof transport codes — is
|
||||
interoperability-critical. `transport_contract_id` remains deployment-local as
|
||||
core classifies it: its value is opaque outside a deployment, while the
|
||||
canonical contract semantics this profile contributes to it are normative and
|
||||
fixed here. Local adapter revision identifiers and key identifiers are
|
||||
deployment-local and MUST NOT appear in public discovery.
|
||||
|
||||
## Common trusted-edge requirements
|
||||
|
||||
|
||||
@@ -447,8 +447,10 @@ assertion revalidation material is destroyed on expiry, close, or invalidation.
|
||||
## Rejection and privacy
|
||||
|
||||
Public class is a function only of evidence the requester supplied, never of
|
||||
private server state. Under the private-posture rule, even `key_mismatch` joins
|
||||
the private-state anonymity set.
|
||||
private per-principal server state; `authorization_unavailable` is the sole
|
||||
exception and reveals only that a required authoritative dependency is
|
||||
unreadable, never any per-principal fact. Under the private-posture rule, even
|
||||
`key_mismatch` joins the private-state anonymity set.
|
||||
|
||||
| Private condition | Public class | Nostr prefix and exact text | HTTP response |
|
||||
|---|---|---|---|
|
||||
@@ -578,8 +580,8 @@ atomically. Availability failures deny rather than degrade to Nostr-only access.
|
||||
|
||||
## Sources
|
||||
|
||||
- NIP-42 authentication: <https://github.com/nostr-protocol/nips/blob/6d2979b369329748734c66846989e453270ced03/42.md>
|
||||
- NIP-98 HTTP authentication: <https://github.com/nostr-protocol/nips/blob/6d2979b369329748734c66846989e453270ced03/98.md>
|
||||
- NIP-42 authentication: <https://github.com/nostr-protocol/nips/blob/6d2979b3f503a8539c983efbcdcf901bbcf9ed23/42.md>
|
||||
- NIP-98 HTTP authentication: <https://github.com/nostr-protocol/nips/blob/6d2979b3f503a8539c983efbcdcf901bbcf9ed23/98.md>
|
||||
- JWT BCP: <https://www.rfc-editor.org/rfc/rfc8725>
|
||||
- JWT access-token profile: <https://www.rfc-editor.org/rfc/rfc9068>
|
||||
- Non-normative composed model: [NIP-FI-MODEL.md](NIP-FI-MODEL.md)
|
||||
|
||||
Reference in New Issue
Block a user