Contextual Access Enforcement: Policy Graphs Evaluated With Real-Time Telemetry
by Nick Clark | Published March 27, 2026
Access to the adaptive index is keyed on context rather than on static permission tables. Every access decision is parameterized by a tuple that combines the requester's identity tier, the spatial frame within which the request originates, and the capability tier the request is asking to exercise. Each axis of the tuple is evaluated against live signals at the moment of the request, the resulting decision is recorded as an audit-required event, and the audit record is committed into the same lineage structure that anchors all other governance events. Contextual access is not an optional layer above a conventional access-control list; it is the only access path the adaptive index supports, and it is enforced uniformly for every resolution, mutation, and delegation.
Mechanism
The contextual access mechanism is realized as a policy graph attached to each scope within the adaptive index. The policy graph is a directed acyclic structure whose nodes are condition predicates and whose edges express logical composition. The leaves of the graph are bindings to live signals: the identity tier of the requesting principal, the spatial frame of the request, and the capability tier that the request is asking to exercise. The internal nodes combine the leaves through standard logical operators and through scope-specific predicates that may incorporate additional telemetry.
When a request arrives at a scope, the governing anchor that owns the scope evaluates the policy graph against the current state of the three keying axes. The identity tier is determined from the principal's authenticated identity together with the trust score that the scope has accumulated for that principal over recent interactions. The spatial frame is determined from the originating network position, which may include geographic, network, or device-topological coordinates depending on the scope's configuration. The capability tier is determined from the request itself, which declares the operation it intends to perform, and from the policy graph's classification of that operation into a tier of structural impact.
Each axis is bound to its current value at the moment of evaluation. The evaluation does not consult cached state from a previous request; it queries the live signal sources and accepts only signals that carry valid signatures and freshness attestations. A signal that is stale beyond the freshness horizon configured for the axis is rejected, and the request is denied with an audit record that identifies the failed freshness check.
The evaluation produces a binary admit-or-deny outcome together with a structured audit record. The audit record enumerates each predicate that was evaluated, the live values that were bound, the predicate outcomes, and the composition path that produced the final decision. The audit record is signed by the governing anchor, hashed, and committed to the scope's lineage chain. Subsequent consumers of the lineage can reconstruct the exact basis on which any access decision was reached, and any divergence between the recorded decision and the policy graph that was in effect at the time can be detected through standard lineage verification.
The audit-required posture is enforced at the protocol level: a governing anchor that fails to produce a signed audit record cannot return an admit outcome to the requester. The pipeline is structured so that the lineage commitment precedes the response delivery, which means a request that is admitted has, by construction, already been recorded in the lineage. There is no path in the protocol by which an access decision can reach the requester without first being committed to the audit log. This structural property is what allows the system to make the strong claim that every access is auditable.
Operating Parameters
The mechanism exposes a structured set of operating parameters per scope. The first parameter is the identity tier ladder. A scope declares a finite list of identity tiers and the conditions under which a principal occupies each tier. Tiers are typically ordered by trust, with the lowest tier corresponding to anonymous or first-contact principals and the highest tier corresponding to long-tenured principals with strong attestations. The ladder is scope-local: the same principal may occupy different tiers in different scopes.
The second parameter is the spatial frame definition. A scope declares the coordinate system in which spatial frames are evaluated. The coordinate system may be geographic (latitude/longitude with a tolerance), network-topological (autonomous system number, routing path), device-topological (bus, link, or trust-domain locality), or a composite. The scope also declares the bounding regions within which various capability tiers are permitted and outside which the request is denied regardless of identity tier.
The third parameter is the capability tier classification. A scope declares the set of operations it supports and assigns each operation to a capability tier based on its structural impact. Read-only resolution typically occupies a low tier; mutation, delegation, and policy change typically occupy higher tiers. The classification is not negotiable at request time: a request that asks for an operation in a higher tier than its identity-frame combination authorizes is denied.
The fourth parameter is the freshness horizon for each axis. The identity tier may have a freshness horizon measured in minutes, the spatial frame may have a horizon measured in seconds, and the capability tier classification may have a horizon measured in days, depending on how rapidly each signal is expected to change. A signal older than its horizon is treated as absent, and the request is denied accordingly.
The fifth parameter is the audit retention horizon. Audit records are retained for at least the duration mandated by the scope's governance policy, with a hard floor that prevents retention shorter than the evidentiary minimum. Lineage commitments anchored in the scope's chain remain valid indefinitely, even after individual audit records may have been moved to cold storage, because the cryptographic commitment is independent of the storage tier.
The sixth parameter is the re-evaluation policy. Some scopes require that long-running access sessions be re-evaluated against fresh context at a configured interval, with the re-evaluation producing a new audit record on each cycle. Other scopes evaluate only at request time and treat the resulting decision as durable for the lifetime of the response. The re-evaluation policy interacts with the freshness horizon: a scope with a short horizon and a long-running session must re-evaluate frequently or it will fail freshness checks.
The seventh parameter is the deny-explanation depth. A scope may configure how much of the audit record is exposed to a denied requester. Minimal depth returns only a deny outcome; verbose depth returns the predicate outcomes that contributed to the deny. The depth is bounded by the scope's confidentiality policy, since the audit record may itself contain sensitive contextual data that the scope does not wish to disclose.
Alternative Embodiments
In a first embodiment, the policy graph is expressed as a declarative rule set that is compiled into an executable evaluator at scope creation time. The compiled form is signed and committed to the lineage so that the policy in effect at any historical moment can be reconstructed. In a second embodiment, the policy graph is interpreted at request time from a serialized representation. This embodiment trades evaluation speed for the ability to update the policy without recompilation, and is suitable for scopes whose policies change frequently in response to operational conditions.
In a third embodiment, the three keying axes are extended with additional axes that capture domain-specific signals. A medical scope may add a patient-relationship axis. A financial scope may add a transaction-class axis. The number of axes is not fixed by the mechanism; the keying tuple is a generalization that admits any number of orthogonal contextual dimensions.
In a fourth embodiment, the audit record is enriched with optional fields that capture additional context useful for forensic reconstruction, such as the network path the request traversed, the version of the resolver that processed it, and the lineage state of the scope at the moment of evaluation. The enrichment is opt-in per scope so that minimal deployments can avoid the storage overhead while high-assurance deployments can record the full context.
In a fifth embodiment, the evaluation is split between a fast path and a slow path. The fast path handles the common case where all signals are fresh and all predicates evaluate cleanly. The slow path is invoked when any signal is stale, when any predicate requires remote attestation, or when the decision boundary is sensitive enough to warrant additional verification. The split allows the system to scale to high request rates while preserving the option to invoke deeper checks where needed.
In a sixth embodiment, the audit log is exported in real time to an external evidence store operated by an independent party. The lineage commitments produced by the scope are duplicated into the external store, so an auditor can reconstruct the access history without trusting the operator of the scope itself. This embodiment is suitable for regulated environments where independent verification is required.
In a seventh embodiment, the spatial frame is evaluated continuously over the lifetime of a session rather than only at request time. A session that crosses out of the authorized frame is interrupted with a structured deny event, and a new audit record is committed to mark the interruption. In an eighth embodiment, the identity tier is evaluated with a hysteresis bound to prevent rapid oscillation when a principal's trust score is near a tier boundary. The hysteresis bound is itself a governed parameter recorded in the lineage.
Composition
The contextual access mechanism composes directly with the broader adaptive index. The policy graph is the single point of expression for access conditions, which means it composes with delegation: a scope that delegates authority to a child scope can constrain the child's policy graph by intersection, and the child cannot expand its own policy beyond the parent's bound. Composition through delegation is therefore monotone in the direction that the child cannot exceed the parent.
Composition with the lineage layer means that every access decision, every policy change, and every delegation event appears in the same append-only chain. A consumer of the chain can reconstruct the policy in effect at any historical moment, the access decisions made under that policy, and the trust scores that those decisions accumulated. The chain is the system of record for all of these, not a separate audit silo.
Composition with the DNS fallback mechanism, where present, means that fallback eligibility itself is a capability tier within the policy graph. A principal that is permitted to resolve names within an adaptive scope may or may not be permitted to consume fallback responses, and the policy graph expresses both conditions in the same structure. There is no separate fallback ACL.
Composition with the trust score subsystem means that the identity tier evaluation incorporates the trust signal directly. A principal whose trust score has degraded due to recent policy violations or anomalous behavior may slip down the identity tier ladder automatically, without administrative intervention, and the next access decision will reflect the lower tier. Composition is structural rather than procedural: the trust subsystem updates a signal, the signal flows into the policy graph, the policy graph produces a tier, and the tier governs access.
Prior-Art Distinctions
Prior systems for access control fall into several categories, each of which the contextual access mechanism distinguishes itself from. Role-based access control assigns permissions to roles and roles to principals at configuration time. The permissions remain in effect until explicitly revoked, regardless of whether the principal's circumstances have changed. The mechanism described here evaluates context at every request, so a principal whose circumstances have changed sees the change reflected in the next access decision without administrative intervention.
Attribute-based access control evaluates a set of attributes at request time, which superficially resembles the mechanism described here. However, attribute-based access control typically does not produce structured audit records committed to a tamper-evident lineage, does not require freshness attestations on its inputs, and does not enforce that the audit record precede the response delivery. The mechanism described here imposes all three properties as structural requirements.
Zero-trust networking evaluates access at the request layer using identity-aware proxies, which again superficially resembles the mechanism described here. However, zero-trust deployments typically apply the policy at a single chokepoint and treat name resolution as a substrate detail outside the policy. The mechanism described here applies contextual access uniformly to resolution, mutation, and delegation, so name resolution is itself a governed event subject to the same policy graph that governs everything else.
Capability-based security uses unforgeable tokens that grant specific operations on specific objects. The tokens, once issued, can be exercised by any holder until they expire. The mechanism described here does not rely on persistent tokens; each request is evaluated freshly against the live context, so a stolen capability cannot be exercised outside the spatial frame and identity tier in which it was minted. The mechanism subsumes the capability model under a context-keyed policy graph.
Disclosure Scope
The disclosure encompasses any embodiment of the mechanism that satisfies the structural properties described above: access decisions keyed on the tuple of identity tier, spatial frame, and capability tier; live evaluation of each axis against signals subject to freshness horizons; production of a structured audit record committed to a tamper-evident lineage chain prior to response delivery; and uniform application across resolution, mutation, and delegation.
The disclosure encompasses variations in the specific policy graph language, the specific cryptographic primitives, the specific signal sources, and the specific deployment topology. It encompasses extensions to additional keying axes, optional audit enrichment, fast-path/slow-path evaluation splits, external evidence stores, continuous session evaluation, and hysteresis bounds on tier transitions. It encompasses composition with delegation, lineage, fallback mechanisms, and trust score subsystems where these are present.
Embodiments that omit the audit-required posture, that permit access decisions without lineage commitments, or that evaluate policy against stale signals without freshness enforcement fall outside the disclosure. The structural properties are not optional features; they are the properties that distinguish the mechanism from prior art and that justify its use in environments where accountability is required.