pub enum IdResolutionMode {
NotApplicable,
UnscopedById,
PrefixScopedToPrimary,
FullAndPrefixScopedToPrimary,
FullUuidOnlyScopedToPrimary,
UnscopedFullUuidOnly,
EdgeOrEventTarget,
}Expand description
How a uuid or array of uuid parameter resolves a caller-supplied
identifier — full UUID and short hex-prefix acceptance, and whether
either form is checked against a namespace. This is a property of the
handler’s own resolution code, declared explicitly per parameter so
VerbRegistry::describe_verb’s rendered contract can never drift from
what the handler actually does (see khive-runtime’s pack.rs
IdResolutionMode rendering table for the exact wording per variant).
Every variant here must correspond to a resolver function that actually
exists in the codebase — this is not a place to guess. When a new uuid
parameter is added, its handler must be read to determine which existing
variant matches (or whether a new one is needed); the parameter name
alone never determines the mode.
Variants§
NotApplicable
Not a UUID-typed identifier parameter — no resolver contract applies.
UnscopedById
ADR-007 Rev 6 by-ID contract: a full UUID and a short hex prefix both
resolve with no namespace predicate at all. The Gate, not
storage-layer filtering, is the authorization seam. Used by get,
update, delete, merge, link’s endpoint parameters, GTD’s
lifecycle id parameters, and brain’s feedback target_id.
PrefixScopedToPrimary
A full UUID resolves as given, with no namespace check performed by
the resolver. A short hex prefix is resolved by searching only the
caller’s primary namespace. Used by graph-read anchors
(neighbors/traverse) and citation targets.
FullAndPrefixScopedToPrimary
Both a full UUID and a short hex prefix are validated against the caller’s primary namespace: a record that exists but belongs to a different namespace resolves as not found.
FullUuidOnlyScopedToPrimary
Only a full UUID is accepted — a short hex prefix is rejected outright — and the UUID is validated against the caller’s own (primary) namespace.
UnscopedFullUuidOnly
Only a full UUID is accepted — a short hex prefix is rejected outright — and no namespace check is performed by the resolver itself (any namespace scoping comes from the enclosing operation, not from this parameter).
EdgeOrEventTarget
list.target_id: edge lists resolve full UUIDs as given and prefixes
or entity names in the primary namespace; event lists accept only an
exact full subject UUID, with visibility applied to event rows.