Skip to main content

Module release

Module release 

Source
Expand description

The signed release manifest, and the box.json that must agree with it.

These types are the runtime shape check. Node and Python validate the same documents against the canonical JSON schemas at runtime; this crate encodes those schemas as types instead, because the schemas set additionalProperties: false almost everywhere and a typed deny_unknown_fields parse says exactly that — while a JSON Schema evaluator for the eighteen keywords these schemas actually use would be six hundred lines of validation logic whose failure mode is validating less than it claims.

Almost everywhere: Compatibility is the one object the schemas leave open, and the types leave it open too. A typed parse is a faithful stand-in for a schema only where the schema is closed, and reading deny_unknown_fields as the house style rather than as a per-object statement is exactly how this crate once came to refuse releases the format defines as valid.

The equivalence is not assumed. tests/schema.rs validates the same documents against the bundled canonical schemas and asserts the two agree, so a type that drifts from its schema is a red test rather than a silent divergence between implementations.

What the types cannot express — patterns, non-empty strings, positive integers, and the weights/assets co-requirement — is checked explicitly in ReleaseManifest::validate.

Structs§

Archive
Where the archive lives and what it must hash and weigh.
AssetDescriptor
One on-demand asset a caller must materialise before execution.
BoxManifest
The box’s self-description, carried inside the archive.
Compatibility
Host requirements a caller may enforce. Scrollcase records them; it does not decide policy.
PayloadDigestCommitment
What a release commits to about its own extracted tree.
Provenance
How the box was produced. Recorded, signed, and never fabricated.
ReleaseManifest
The immutable description of one built box.
SelfTest
The import check a box must pass with its own interpreter.

Enums§

Execution
The optional, shell-free application entry point.