HPPR Repository Service

Tags: repo, overview

© R.A.Sol

The HPPR Repository Service is the standard authenticated packet repository layer built on the packet and wire protocols.

hpprd is the reference daemon implementation of these specs.

The Model

A repository stores packet versions at coordinates.

Clients send commands to retrieve, list, store, watch, replicate, and stream those packet versions. Commands arrive through a command flow. The accepted request envelope establishes a principal. The repository evaluates that principal against policy and then performs the command.

The story is:

  1. packet bytes prove content and signatures
  2. coordinates name packet versions
  3. command messages ask a service to do work
  4. command flows define how requests are accepted
  5. repository envelopes bind commands to principals
  6. Ring1 and Ring2 load identity state
  7. ACL maps principals and coordinates to read, write, and list
  8. storage materializes the abstract packet repository
  9. replication, streams, admin, and joins are repository commands and conventions layered on the same model

Repository requests are interpreted in this order:

  1. transport receives one command message;
  2. command flow determines available state;
  3. request envelope determines principal;
  4. command catalog determines semantics;
  5. Ring1/Ring2 and ACL rules determine authorization;
  6. storage or streaming machinery performs the command.

Conformance Boundary

Repository service conformance covers:

Underlying packet data is defined in 010, addressing in 020, and command-flow vocabulary in 030, 031, and 032. Higher-level data schemes are defined in 100 and 110.

Index