Authorization and gateway

A write needs a real signature over the real body from the right key; replays, other namespaces and reserved paths are refused.

93 tests in 15 files. Source: Typescript/tests/

namespaceWriteAuthorization.test.ts4 tests

A write is authorized only by a real signature over the real body from the right key; an echoed identityHash or a signature over another body is refused.

chainHeadWriteAuthorization.test.ts4 tests

Signed writes are bound to the chain head: resending a body, an old grant or a write meant for another namespace fails.

namespaceCollisionAuthorization.test.ts3 tests

An identity claiming an unrelated namespace string cannot write into the real root's apps.* or keychain storage.

rootWriteDirectionCheck.test.ts11 tests

The root's claim cannot write into or read users.<other>.* content; malformed paths get 400.

appAuthorization.test.ts3 tests

apps.<appId>.* writes: ownership, scoped grants, isolation between apps, revocation, and no writes under a foreign root.

keychainMinimalWalkthrough.test.ts5 tests

Keychain: list, register, sign, revoke, reject; the last admin key cannot be revoked; control recovers from the identity alone.

gatewayAuthority.test.ts10 tests

Signed gateway bootstrap, grant, revoke and transfer; a generic write cannot touch daemon.gateways.*.

mainServerAuthority.test.ts7 tests

netget.main.server.name changes only by the owner's signature; replays and altered bodies are refused.

mainServerName.test.ts8 tests

The main server name is a public path, declared only when asked, normalized, and never writable unsigned over HTTP.

netgetReservedPathAuthorization.test.ts12 tests

Unsigned writes to netget.* are refused for unclaimed namespaces; ordinary writes are not blocked.

netgetRegistration.test.ts4 tests

Builds the netget exposure and registration payload from bootstrap, including public host aliases.

internalToken.test.ts7 tests

The gateway's routing records need an internal caller; a wrong token is as good as none.

sessionHostFlowDisabled.test.ts7 tests

The session and host token flow is disabled after the 2026-10-04 audit: no token or nonce for an arbitrary username.

crossPackageSigning.test.ts2 tests

A payload signed by this.me verifies in monad, and a mismatched canonical message is rejected.

signedNamespaceSpelling.test.ts6 tests

A proof is checked over the namespace spelling that was sent; an alias is the same identity, a proof for another namespace is refused.