Documentation Index
Fetch the complete documentation index at: https://parmanasystems.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Every call toexecuteFromSignals passes through a six-stage deterministic pipeline. Each stage either succeeds or throws a typed invariant violation — there is no partial or ambiguous outcome.
Pipeline stages
Canonicalize
Input signals are recursively sorted by key and serialized to a canonical JSON string. This guarantees that
{ b: 2, a: 1 } and { a: 1, b: 2 } produce identical hashes.A SHA-256 execution_fingerprint is derived from the canonical form of (policyId, policyVersion, signals). This fingerprint is the stable identity of this logical decision — if you replay the exact same inputs against the exact same policy version, you always get the same fingerprint.Validate
The signal values are validated against the policy’s This schema is part of the policy definition and is version-pinned — it cannot silently change.
signalsSchema. Each signal has a declared type (boolean, integer, string). A missing or wrong-type signal throws before any evaluation occurs.Evaluate
Policy rules are evaluated in order. The first rule whose
condition matches the signals wins. Conditions support:equals— exact value matchgreater_than— numeric comparisonless_than— numeric comparisonall— logical AND of sub-conditions (can be empty as a catch-all)
"all": []) to ensure every input resolves to a decision.Replay Check
The
execution_fingerprint is submitted to the ReplayStore. If it has been seen before, execution is rejected with a replay violation. This ensures a given logical decision cannot execute twice — protecting against double-spend, double-approval, and replay attacks.MemoryReplayStore— in-process, suitable for testsRedisReplayStore— distributed, suitable for multi-instance production deployments
Issue Token
A signed
ExecutionToken is created, binding the executionId, policyId, policyVersion, schemaVersion, runtimeVersion, decision_payload, and signalsHash. The token is signed with the Signer before execution proceeds.The token is the cryptographic bridge between the governance decision and the execution attestation.Execute and Sign
The token signature is verified. The decision payload is enforced. An
The final
execution_state is derived:| Decision | requires_override | execution_state |
|---|---|---|
approve | false | completed |
reject | false | blocked |
reject or approve | true | pending_override |
ExecutionAttestation is assembled and signed. The signature covers the canonical form of all attestation fields — any modification to any field after signing is detectable.Key properties
Determinism — Given identical(policyId, policyVersion, signals), the pipeline produces an identical execution_fingerprint and identical decision. The runtime has no access to wall-clock time, random state, or external calls during evaluation.
Portability — The attestation signature can be verified by any party with the public key. Verification does not require access to the runtime, the replay store, or any internal state.
Versioning — The runtimeVersion and runtimeHash are embedded in every attestation. An attestation produced by a different runtime version will not verify against an expected runtime hash.
Invariant enforcement — Violations throw InvariantViolation errors with a typed ViolationReport. These are not soft warnings — they are hard stops.