Repository navigation
Releases: unempyd/sealstack-sdk
Release list
SealStack SDK 0.1.4
SealStack SDK 0.1.4
What changed:
- The exporter parses input bundles with the same strict parser as the verifier: duplicate keys, NaN/Infinity and out-of-range numbers are rejected instead of being re-signed (SPEC-RECEIPT.md Section 3).
DEFAULT_BASE_URLremoved.AuditClientrequiresbase_url=orSEALSTACK_API_URLand raisesValueErrornaming both otherwise, before creating a state directory. The old fallback named a domain this project does not operate.- 32 native conformance vectors published as JSON (
sdk/tests/fixtures/native-vectors.json), including re-signed cases using the public test seeds; the limitations text published as exact bytes; a standalone golden evidence bundle for zero-setup verification. - The noa export is tested against the noa project's independent Python verifier (
impl-py/noa_verify.py, commit 025ee2cc); COMPATIBILITY.md records the result. A CI job rebuilds the AERF, obsigna and noa verifiers from pinned versions and re-runs the interoperability tests. - README rewritten: verify a receipt in 60 seconds with unedited output, then break it; what is proved and what is not; interoperability results with exact verifier versions; no hosted service is described anywhere.
- SECURITY.md, the reference-server README and its module text no longer refer to a hosted service; the security contact is shown as text so it is not auto-linked.
Why: no verifier defect was found in the audit; the public evidence was thinner than the implementation, one exporter path did not apply a MUST of the format, and the compiled-in fallback URL had to go.
Proof: the public suite passes with the four upstream verifiers (AERF at tag and main, obsigna 0.16.0, noa 025ee2cc) and without them; ruff and mypy --strict clean; the README's verification block is reproduced from a wheel-only install.
Compatibility: native format unchanged (golden vector bytes identical); exports unchanged; product import and command remain aliases of sealstack. Breaking: a client that set neither base_url nor SEALSTACK_API_URL now raises instead of contacting a third-party domain.
Security implications: none new. Removing the fallback URL closes a latent exposure where an unconfigured client would have sent its bearer token to a domain outside the project.
Migration: set base_url= or SEALSTACK_API_URL to the origin of the server you run (for example the reference server, http://127.0.0.1:8000).
SealStack SDK 0.1.3
SealStack SDK 0.1.3.
- The package now imports as
sealstackand the command issealstack(sealstack verify,sealstack export).productremains a working alias for both, resolving to the same module objects, so code written against 0.1.2 keeps running. py.typedis shipped; the distribution is typed.- Package metadata: authors, keywords, classifiers and project URLs.
- The reference server is documented as clone-and-run; it is not part of the PyPI package and it is not the hosted service.
- The SDK logger is named
sealstack(wasproduct). - No change to the receipt format, signatures, verifier exit codes or exports.
Install: pip install sealstack (https://pypi.org/project/sealstack/0.1.3/).
SealStack SDK 0.1.2
SealStack SDK 0.1.2. First public release.
- Python SDK that signs every agent action with an Ed25519 key held on the customer host, hash-chains the actions of one runtime, and uploads them for a counter-signed service receipt.
product verify: offline verifier for evidence bundles (exit 0 valid, 1 invalid, 2 unverifiable).product export --format aerf|agent-receipts|scitt: exports to AERF v0.1.0-draft.1, Agent Receipt Protocol 0.5.0 and the noa SCITT agent receipt profile, signed on the customer side. See COMPATIBILITY.md for what was verified externally and what was not.- Single-tenant SQLite reference server for running the SDK end to end without the hosted service. It is not the hosted service.
- Agent key rotation is disabled in this release;
product rotate-keyexits 2.
Install: pip install sealstack (https://pypi.org/project/sealstack/0.1.2/).