Skip to content

Releases: unempyd/sealstack-sdk

SealStack SDK 0.1.4

Choose a tag to compare

@unempyd unempyd released this 21 Sep 17:08

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_URL removed. AuditClient requires base_url= or SEALSTACK_API_URL and raises ValueError naming 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

Choose a tag to compare

@unempyd unempyd released this 21 Sep 11:24

SealStack SDK 0.1.3.

  • The package now imports as sealstack and the command is sealstack (sealstack verify, sealstack export). product remains a working alias for both, resolving to the same module objects, so code written against 0.1.2 keeps running.
  • py.typed is 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 (was product).
  • 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

Choose a tag to compare

@unempyd unempyd released this 21 Sep 10:19

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-key exits 2.

Install: pip install sealstack (https://pypi.org/project/sealstack/0.1.2/).