pub struct PolicyDescriptor {
pub decision: PolicyDecision,
pub matched_scope: String,
pub delegation_mandate_id: Option<String>,
pub act_chain: Vec<String>,
pub attestation_mode: Option<AttestationMode>,
pub delegation_mandate: Option<DelegationMandate>,
}Expand description
The authorization decision and the scope that produced it.
Fields§
§decision: PolicyDecision"AlwaysAllow" | "AskEveryTime" | "NeverAllow".
matched_scope: Stringe.g., "per-channel" | "per-recipient" | "global".
delegation_mandate_id: Option<String>Parent delegation mandate, absent for one-shot AskEveryTime grants.
act_chain: Vec<String>OAuth 2.0 Token Exchange act chain (RFC 8693) — optional cross-system
principal chain. Each element is a DID string.
attestation_mode: Option<AttestationMode>Who proved the authorization (§7.1.7). ABSENT means NotaryAttested.
delegation_mandate: Option<DelegationMandate>The complete parent mandate, embedded so the human’s signature on it verifies offline (§7.1.7.1).
Implementations§
Source§impl PolicyDescriptor
impl PolicyDescriptor
Sourcepub fn effective_attestation_mode(&self) -> AttestationMode
pub fn effective_attestation_mode(&self) -> AttestationMode
The declared mode, resolving ABSENT to NotaryAttested per §7.1.7.
Absence is not “unknown”: §7.1.7 fixes it as NotaryAttested so that
every envelope written before attestationMode existed keeps a single,
unambiguous meaning — the weaker one. Defaulting the other way would
silently promote every legacy envelope to a claim no one made.