docs(nip-fi): clarify build and delegation boundaries

Signed-off-by: Cea Stapleton Cordasco <261786559+cea@users.noreply.github.com>
This commit is contained in:
Cea Stapleton Cordasco
2026-08-10 19:16:45 -05:00
parent f1fb5df936
commit 19b19b2e36
4 changed files with 91 additions and 0 deletions

View File

@@ -61,6 +61,50 @@ Hermit pins Rust, `just`, Node, pnpm, and other tools to the versions in
upfront. If you don't use Hermit, ensure your toolchain meets the minimum
versions in the table above.
#### Native AWS-LC build requirements
The locked non-FIPS dependency graph includes `aws-lc-rs` and `aws-lc-sys`.
`aws-lc-sys` compiles bundled AWS-LC sources during a clean build, so Rust
alone is not sufficient. Contributors need a working platform C/C++ compiler,
linker, and SDK headers:
- macOS: Xcode Command Line Tools (`xcode-select --install`);
- Debian/Ubuntu: `build-essential` (also included in the desktop package list
below); and
- Windows: Visual Studio Build Tools with the **Desktop development with C++**
workload and a Windows SDK. Windows x86 and x86-64 source builds also need
NASM unless the resolved crate features explicitly enable and permit the
crate-provided prebuilt objects.
For the versions in `Cargo.lock` (`aws-lc-rs` 1.17.0 and `aws-lc-sys`
0.41.0), the default non-FIPS build does not require CMake, Go, or bindgen.
The presence of the `cmake` helper crate in the lockfile or a Hermit-pinned
`cmake` executable does not by itself make CMake an AWS-LC prerequisite. If an
upgrade, target, or feature change selects a different builder, update this
section from the newly locked crate's build requirements in the same change.
On macOS or Linux, verify a fresh-clone bootstrap before a long test run:
```bash
. ./bin/activate-hermit
cc --version
c++ --version
cargo check --locked --workspace --all-targets
```
On Windows, use a Developer Command Prompt after making the repository's
pinned toolchain available on `PATH`:
```text
cl
nasm -v
cargo check --locked --workspace --all-targets
```
If `aws-lc-sys` fails before Rust compilation starts, verify the native tools
first. Do not switch cryptographic backends, disable locked features, or add
unreviewed prebuilt objects to work around a missing contributor toolchain.
### First-Time Setup
```bash

View File

@@ -6,6 +6,26 @@ Historical corporate identity approaches based on provider-specific middleware,
This documentation revision does not include a NIP-FI runtime adapter, activate identity enforcement, or establish conformance. Do not deploy a legacy identity sidecar or trust an identity header as a temporary substitute. A later exact-head implementation and deployment must pass the [behavioral evidence matrix](nips/NIP-FI-CONFORMANCE.md) before discovery or enforcement is enabled.
### Delegation availability
Corporate-identity delegation is currently unsupported. The public production
path does not implement complete delegated issuance, owner-bound resolution,
expiry, invalidation, reconnect, or protected-transport behavior. Operators
must keep delegation disabled, and discovery must report it as false or omit
it. A legacy or downstream configuration flag does not add the missing
authority and must not be used to advertise support.
This documentation-only revision does not change runtime code or configuration
defaults. Operators must verify the effective setting in their deployment;
public wording alone is not activation or conformance evidence. See the
[integration guide's availability boundary](NIP_FI_INTEGRATION.md#delegation-availability)
for the implementation and evidence requirements.
Direct NIP-FI authorization and future delegation are separate capabilities.
Delegation can be advertised only after a reviewed delegated-owner
implementation passes the complete applicable cross-transport lifecycle and
session evidence.
## Supported boundary
NIP-FI combines a valid issuer assertion with independent fresh Nostr key proof, current durable binding and lifecycle state, server-owned request context, and final application admission. For the trusted-proxy profile, the stock Buzz contract requires cryptographic HMAC provenance bound to the complete canonical request. Header presence and network location alone are insufficient.

View File

@@ -8,6 +8,28 @@ This documentation revision does not add a runtime adapter, activate enforcement
Source review, type presence, configuration parsing, route registration, and prose checks are useful review inputs. None proves runtime behavior.
### Delegation availability
NIP-FI delegation is an optional protocol capability, not an implied Buzz
feature. The current public production path has no reviewed delegated-owner
implementation and MUST NOT advertise delegation. Discovery reports
`"delegation": false` or omits the field, and operators keep delegation
disabled. A downstream or legacy configuration switch cannot create the
missing issuance, owner-resolution, expiry, invalidation, reconnect, and
protected-transport behavior.
This documentation-only revision does not change runtime code or configuration
defaults. Operators must verify the effective setting in their deployment;
public wording alone is not evidence that the runtime or its defaults satisfy
this boundary.
The specification, model, sealed types, and conformance vectors may describe
future delegation work without claiming that a route is live. Support can be
advertised only after one reviewed implementation supplies the separate
delegated-owner capability and passes every applicable delegation and session
trace across every advertised transport. Until then, any partially wired
delegation-shaped request must fail closed.
## Integration boundary
NIP-FI is an additional admission authority above NIP-42 or NIP-98 proof of key control. It does not replace Nostr signatures or application authorization. A protected operation proceeds only when all applicable gates agree:
@@ -130,6 +152,10 @@ See [runtime operations](NIP_FI_RUNTIME_OPERATIONS.md) for preconditions, postco
HTTP authorization applies to one request. A WebSocket lease is per key, domain, capability, resource, and exact dependency set. Its deadline is the earliest applicable assertion, key-snapshot, proxy, proof, binding, delegation, policy, and implementation bound.
This section defines the contract for future delegation support; the current
[delegation availability](#delegation-availability) statement remains
controlling for Buzz deployments.
Direct lease reuse rechecks current binding and lifecycle versions, the key-snapshot hard deadline, and JWKS generation. Delegated lease reuse rechecks the current exact owner binding and relationship revision. A lease for one key never covers another key on the connection.
Delegation is optional and separate from federated assertion transport. The delegate supplies its own fresh Nostr proof and no assertion or assertion-provenance field. The owner must remain current and eligible at preparation and final admission. Rotation does not transfer delegation to the new owner key.

View File

@@ -1,6 +1,7 @@
{
"schema": "nip-fi-stock-domain-review-v1",
"document_role": "review-template-not-runtime-schema",
"numeric_values_role": "illustrative-review-values-not-production-defaults",
"domain": {
"id": "community.example.test",
"authority": "community.example.test:443",