# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/what-memory-invariants-must-survive-the-expiration-of-a-multi-jurisdictional-data-sharing-agreement.md # Remnant Warrant: https://corpusfetch.com/c/what-memory-invariants-must-survive-the-expiration-of-a-multi-jurisdictional-data-sharing-agreement.warrant.json # Markdown SHA-256: f0b8d811069610532a9510e6a244e2661974165e27017b49385f317ebc9bf739 # Code AST SHA-256: 6a7a79c1e14f15897f5435c022663e167d461e6d4b6ea4c9961b8b101e06a4db # Verified Classes: DispositionAction, ExpirationVerdict, SharedData, ExpirationPolicy, ExpirationManifest, MultiJurisdictionalExpirationGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class DispositionAction(Enum): QUARANTINE = auto() DELETE = auto() ANONYMIZE = auto() class ExpirationVerdict(Enum): AGREEMENT_ACTIVE = auto() EXPIRY_HANDLED = auto() EXPIRY_VIOLATION = auto() @dataclass(frozen=True) class SharedData: data_id: str agreement_ttl_epoch: float post_expiry_disposition: DispositionAction quarantine_receipt: str | None current_epoch: float @dataclass(frozen=True) class ExpirationPolicy: require_quarantine_receipt: bool @dataclass(frozen=True) class ExpirationManifest: verdict: ExpirationVerdict directive: str manifest_digest: str class MultiJurisdictionalExpirationGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_data( cls, data: SharedData, policy: ExpirationPolicy ) -> ExpirationManifest: # Gate 1: Agreement still active if data.current_epoch < data.agreement_ttl_epoch: digest = cls._hash(json.dumps({ "data": data.data_id, "ttl": f"{data.agreement_ttl_epoch:.0f}", "epoch": f"{data.current_epoch:.0f}" }, sort_keys=True)) return ExpirationManifest( verdict=ExpirationVerdict.AGREEMENT_ACTIVE, directive=f"PROCEED: Agreement active until {data.agreement_ttl_epoch:.0f}.", manifest_digest=digest ) # Gate 2: Expiry handled if data.quarantine_receipt: digest = cls._hash(json.dumps({ "data": data.data_id, "disposition": data.post_expiry_disposition.name, "receipt": data.quarantine_receipt, "expiry": f"{data.agreement_ttl_epoch:.0f}" }, sort_keys=True)) return ExpirationManifest( verdict=ExpirationVerdict.EXPIRY_HANDLED, directive=f"PROCEED: Data {data.post_expiry_disposition.name} at expiry with receipt.", manifest_digest=digest ) # Gate 3: Violation return ExpirationManifest( verdict=ExpirationVerdict.EXPIRY_VIOLATION, directive=f"HALT: Agreement expired at {data.agreement_ttl_epoch:.0f}, but no quarantine receipt. Data still accessible.", manifest_digest=cls._hash(f"VIOLATION:{data.data_id}") )