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

pub type Metadata {
  Metadata(
    run: run.RunId,
    parent: option.Option(Link),
    children: List(Link),
    settled: Bool,
  )
}

Constructors

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.

pub const version: Int

Change this version whenever a new record format or state changes the projection, so storage integrations can refresh their retained indexes.

✨ Search Document