HPPR Repository Message Flow

Tags: repo, command-flow, message

© R.A.Sol

Repository message flow processes one complete request packet and returns one complete response packet. It does not create or use a connection-local session.

Message requests are replayable by design. Use them for public reads and packet-authorized admission.

Accepted Envelopes

Non-HELLO message requests use the public message Seal envelope defined in 042:

Group: repo
API: 🖧<COMMAND>
Key: message/anyone

The server resolves read identity as Ring1 anyone and applies anyone policy. Session envelopes and trusted local Null command envelopes are rejected on repository message-flow listeners.

HTTP /hppr

HTTP is a repository message-flow endpoint. The request body is one complete HPPR request packet and the response body is one complete HPPR response packet. HTTP transport behavior is defined in 034.

Default commands:

🖧STORE, 🖧ADD, 🖧DETACH, 🖧TIPS, 🖧MEMBERS, 🖧EXCHANGE, 🖧WATCH, 🖧AUDIT, 🖧STREAM_PUB, and 🖧STREAM_SUB are not accepted on the default HTTP message flow.

HTTP HELLO advertises endpoint-specific commands and includes these metadata headers:

🖧: 0.H3
Command-Flow: message
Repo-Name: <repo-name>
Seal-By: <repo-verifier>
Format: H3
Transport: tcp:4777 flow=session
Transport: quib:4776 flow=session
Transport: http:4778 flow=message path=/hppr
Message-Commands: 🖧HELLO 1 | 🖧GET 1 | 🖧HEADERS 1 | 🖧LIST 1 | 🖧INGEST 1
Allow-Null-Command: 0
Status: ok
Data-Length: 0

Repository message flow uses the public message Seal envelope for non-HELLO commands. It does not accept trusted local Null command envelopes.

UDP

Repository UDP is a stricter datagram message-flow subset. UDP transport behavior is defined in 035.

UDP accepts only:

UDP does not accept 🖧HELLO, 🖧LIST, 🖧INGEST, 🖧STORE, or stream commands. Other HELLO responses advertise it as:

Transport: udp:<port> flow=message

Oversized responses return TOO_LARGE when possible.

Flow-specific Command Notes

Command semantics are defined in 041. 🖧INGEST uses the submitted packet signer as authority; Ring2 validation rules are specified in 052.

🖧STORE remains session flow only because STORE authorizes the request principal rather than the submitted packet signer.