Skip to content

symfonic.platform.procedural_local_authority

procedural_local_authority

Synchronous process-local authority and acknowledged audit, not durability.

LocalProceduralAudit

LocalProceduralAudit()

Exact synchronous in-memory ACK; no user callbacks, await or reentrancy.

Records contain hashes/identifiers, never payload or idempotency keys. Capacity refusal occurs BEFORE a mutation; callers must rotate the whole local composition, not silently discard replay/audit evidence.

Source code in src/symfonic/platform/procedural_local_authority.py
def __init__(self):
    self._records = []
    self._recording = False
    self._epoch = None
    self._reserved = {}

terminal

terminal(operation)

Completion ACK is provisional; rollback supersedes it on exit fault.

Source code in src/symfonic/platform/procedural_local_authority.py
def terminal(self, operation):
    """Completion ACK is provisional; rollback supersedes it on exit fault."""
    for record in reversed(self._records):
        if record["operation_id"] == operation:
            outcome = record["outcome"]
            return outcome if outcome in {"completed", "rolled_back"} else "unknown"
    return "unknown"

LocalProceduralAuthority

LocalProceduralAuthority(owners)

Explicit server allowlist; possession of a header/grant is not authority.

Scope grants are exact canonical kind-aware owners, never ancestor wildcards. Revocation is synchronous and invalidates all outstanding grants.

Source code in src/symfonic/platform/procedural_local_authority.py
def __init__(self, owners):
    self._owners = {(principal, native_owner(scope).path) for principal, scope in owners}
    self._revision = 0
    self._issued = {}