Version workflow artifacts
The top-level artifacts catalog preserves model and dataset declarations in
crab.yaml. A declaration names a clean repository-relative path and its kind;
it does not make a stage executable or infer a release version.
Artifact version path
Scroll horizontally to explore the full diagram →
Declare an artifact
artifacts:
fraud-model:
path: models/fraud-model.bin
type: model
desc: Model used by batch fraud scoring
labels: [fraud, batch]The path must be repository-relative. The declaration is metadata; producing or updating the file remains the responsibility of a workflow stage or another tool.
Follow the CLI lifecycle
| Command | Purpose | Mutation |
|---|---|---|
crab artifacts list | Inspect declarations, versions, and labels | None |
crab artifacts version create <NAME> | Create an immutable BLAKE3-addressed manifest from a clean output | Adds one version and payload when absent |
crab artifacts get <NAME> --version <ID> | Copy one verified immutable payload | Writes a new destination only |
crab artifacts promote <NAME> <VERSION> <STAGE> | Move a stage label | Compare-and-swap registry update |
crab artifacts history <NAME> | Inspect promotion events | None |
crab artifacts version create fraud-model --json
crab artifacts show fraud-model
crab artifacts get fraud-model --version <version-id> --output ./model.binCreation rejects missing or dirty outputs. The manifest records the source Git commit, content identity, size, creation time, and bounded annotations. A version ID is content-addressed and is never a mutable label.
When a crab:// primary remote is configured, create, list, show, history,
promote, and get use the remote registry as the canonical state. Payloads are
uploaded content-addressably and downloads stream into a verified destination;
the local registry remains a cache and recovery mirror. Without a Crab remote,
the same commands operate on local Crab-owned state. Remote artifact refs and
clean-clone retrieval are live-qualified on the RustFS file-artifact path;
remote artifact GC retention is still a release gate, so no command removes
old versions automatically.
Verify from a clean client
After creating or promoting a remote artifact, use another clone to run
artifacts show and retrieve the exact version into a new path. Confirm the
downloaded version matches the requested manifest and that an existing
destination is not overwritten. This proves registry visibility, payload
availability, streaming hash verification, and the no-overwrite boundary.