[AVAILABLE], precisely scoped.
packages/runtime/src/services/verification-service.ts.An earlier six-stage verification pipeline (
@parmana/verification) existed
and was removed, it had no real implementation and no test coverage. It is not
documented here as existing. If you see references to Authority/Intent/
Evidence verification stages elsewhere, they describe that retired package or
a not-yet-built future addition, not current behavior.The 3 checks, exactly
- Integrity, recompute the Trust Record’s canonical hash; must match the stored
trustRecordHash. - Signature, the stored cryptographic signature must verify against the stored public key.
- Authorization binding, every
APPROVEDexecution must carry a non-emptyauthorizationIdin its metadata.REJECTED-decision executions are exempt.
runChecks() accumulates failures into an array rather than short-circuiting).
Two different operations, two different routes
These are genuinely different routes (
packages/api/src/routes/verify.ts vs.
verify-get.ts), not the same endpoint called twice. See Python SDK for how
each SDK exposes them.
Real output
python/examples/verify/.
Tampering is actually caught
packages/api/tests/integration/verification-negative.integration.test.ts, “reports FAILED when the
persisted record is tampered after execution”, proves this end to end, not just at the
unit level.
Verify without Parmana’s server
The checks above run on Parmana’s server. To check a record yourself, with no network access and no trust in Parmana’s servers or database, use the Verification SDK,@parmana/sign on npm:
GET /keys/{keyId}.