HPPR Access Control

© R.A.Sol

ACL rules are defined per repository identity.

Each rule targets a coordinate prefix and controls three operations:

Rule evaluation uses longest-prefix match with per-operation inheritance.

Operations

Rule Format

Rule syntax:

<ops> <coordinate-prefix>

<ops> is exactly three characters:

[r|d|.][w|d|.][l|d|.]

Meaning:

Examples:

ACL-Rule: rwl //u/chess/
ACL-Rule: r.l //u/mail/
ACL-Rule: rdl //u/market/
ACL-Rule: .w. //u/market/nl/eindhoven/

Common patterns:

Rule Ordering

Rules MUST be stored in canonical sorted order.

Sort bytewise, with custom priority:

Equivalent compare mapping:

Resolution

Given a request coordinate:

  1. Find the longest matching rule prefix.
  2. For each operation, apply explicit allow or deny when present.
  3. For . values, continue to the next-longest matching rule.
  4. If no explicit decision is found, deny.

For read and write checks, evaluate against the packet versioned coordinate.

Prefix examples:

Prefix Matches
//u/a/README.md/| exact README.md location
//u/a/README.md/ README.md and children
//u/a/README.md also README.md-draft

Identity Storage

Rules are stored as ACL-Rule Plex headers.

Location depends on identity scheme: