pub struct MaintenancePolicy {
pub schema_version: u16,
pub policy_id: String,
pub policy_version: u64,
pub require_authentication: bool,
pub require_authorization: bool,
pub require_fencing_token: bool,
pub max_request_lifetime_millis: u64,
pub resource_budget: MaintenanceResourceBudget,
pub principal_bindings: Vec<MaintenancePrincipalBinding>,
pub role_grants: Vec<MaintenanceRoleGrant>,
}Expand description
Versioned fail-closed maintenance policy.
Fields§
§schema_version: u16Policy schema version.
policy_id: StringStable policy identifier used by audit records.
policy_version: u64Monotonically increasing policy version.
require_authentication: boolAuthentication must remain enabled for maintenance.
Authorization must remain enabled for maintenance.
require_fencing_token: boolEvery state-changing request must carry a non-zero fencing token.
max_request_lifetime_millis: u64Maximum allowed request lifetime from authorization time.
resource_budget: MaintenanceResourceBudgetResource budget enforced by checkpoint coordinators.
principal_bindings: Vec<MaintenancePrincipalBinding>Authenticated identities and their independent maintenance roles.
role_grants: Vec<MaintenanceRoleGrant>Role-to-capability grants.
Implementations§
Source§impl MaintenancePolicy
impl MaintenancePolicy
Sourcepub fn validate(&self) -> Result<(), SecurityContractViolation>
pub fn validate(&self) -> Result<(), SecurityContractViolation>
Validates every policy invariant without granting authorization.
§Errors
Returns SecurityContractViolation when the policy could authorize an
operation without authentication, authorization, fencing, or a bounded
resource budget.
Sourcepub fn into_validated(
self,
) -> Result<ValidatedMaintenancePolicy, SecurityContractViolation>
pub fn into_validated( self, ) -> Result<ValidatedMaintenancePolicy, SecurityContractViolation>
Consumes a completely validated policy for use by an authorizer.
§Errors
Returns SecurityContractViolation for the same fail-closed invariants
checked by Self::validate.