Source commit: 20b59dc46b72103c2f8a516c692b5cc3d54fab19 Public tree identity: sha256:aaa5ac7b58b2a0d23c6b11e5f76324bf3839ca1f62653a83deb736932adcfbd9
37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# Artifacts
|
|
|
|
Artifacts are named, content-addressed results retained by the node that
|
|
produced or received their bytes. The coordinator stores authorization and
|
|
location metadata, not an implicit copy of every output.
|
|
|
|
## Publish, flush, and sync
|
|
|
|
- Publishing from a Wasm task transfers bytes to its retaining node and records
|
|
the digest and size.
|
|
- `flush()` publishes metadata so downstream tasks can refer to the artifact. It
|
|
does not imply coordinator storage or durable replication.
|
|
- `sync()` is an explicit movement decision to another node or user-provided
|
|
storage integration.
|
|
|
|
Large bytes should travel node-to-node or node-to-receiver. Task arguments carry
|
|
artifact handles rather than embedding output data.
|
|
|
|
## Download and export
|
|
|
|
`disasmer artifact download <artifact>` asks the coordinator for an authorized,
|
|
scoped stream and retrieves the real bytes from a retaining node. Authorization
|
|
is bound to tenant, project, process, artifact, actor, retention state, expiry,
|
|
and quota. Missing, expired, revoked, oversized, or unreachable artifacts fail
|
|
explicitly before success is reported.
|
|
|
|
Final export is also explicit. A project can attach a receiver node or invoke a
|
|
user-provided storage tool from an allowed environment. The MVP intentionally
|
|
does not advertise a managed artifact-store product.
|
|
|
|
Node retention is best effort unless project code synchronizes the artifact to
|
|
a durable destination. Coordinator restart does not manufacture or preserve
|
|
artifact bytes. Each node enforces configured byte, object-count, and age
|
|
bounds. Artifacts required by active tasks, live downloads, or a retained
|
|
restart boundary are pinned; garbage collection evicts eligible older objects
|
|
and reports unavailable bytes honestly. Coordinator metadata and download
|
|
session histories are independently count- and time-bounded.
|