fabric/store/retention
Storage integrations use this projection to retain complete execution
families. It contains no prompts, outputs or deployed code. A backend
must also verify reciprocal links, complete membership, age and leases
atomically before deleting anything; settled alone is not permission.
Types
The run at the other end of a link and an opaque attachment key. A child’s parent key must equal the key its parent retained for that child. The key is JSON text, so even provider action IDs containing NUL are safe to index.
pub type Link {
Link(run: run.RunId, key: String)
}
Constructors
-
Link(run: run.RunId, key: String)
pub type Metadata {
Metadata(
run: run.RunId,
parent: option.Option(Link),
children: List(Link),
settled: Bool,
)
}
Constructors
-
Metadata( run: run.RunId, parent: option.Option(Link), children: List(Link), settled: Bool, )
Values
pub fn encode(storage_key: String, encoded: String) -> String
Canonical projection for a storage index. An unknown record is represented by the version alone, and can never pass a complete-family check. The storage key must match the record’s ID. Refresh when the projection version or source revision differs; retain original record bytes separately.
pub fn inspect(encoded: String) -> Result(Metadata, Nil)
Reads supported execution and budget records with their actual decoder. Unknown, corrupt and incompatible formats are not eligible for retention decisions. No deployed definition is required and nothing executes.