Skip to main content

StepFact

Enum StepFact 

Source
#[non_exhaustive]
pub enum StepFact { CeremonyStarted { name: String, started_at: DateTime<Utc>, }, ActStarted { id: ActId, label: String, }, StepStarted { id: StepId, label: String, role: RoleId, role_name: String, started_at: DateTime<Utc>, }, PromptAnswered { step: Option<StepId>, prompt: Prompt, response: ResponseRecord, at: DateTime<Utc>, }, BackendOperation { step: StepId, kind: String, inputs: Value, outputs: Value, fingerprint: Option<String>, }, AttestationRecorded { step: StepId, role: RoleId, statement: String, at: DateTime<Utc>, }, ArtifactWritten { step: StepId, name: String, path: PathBuf, sha256: String, }, DeviationRecorded { step: Option<StepId>, text: String, at: DateTime<Utc>, }, StepCompleted { id: StepId, outcome: StepOutcome, completed_at: DateTime<Utc>, }, CeremonyCompleted { completed_at: DateTime<Utc>, }, CeremonyFailed { error: ErrorRecord, failed_at: DateTime<Utc>, }, }
Expand description

Durable, transcript-worthy fact.

Every variant is recorded by the runtime’s transcript sink synchronously before being forwarded to the UI. Action handlers emit BackendOperation and AttestationRecorded; all other variants are emitted by the executor at the corresponding lifecycle boundary.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

CeremonyStarted

Ceremony has started running.

Fields

§name: String

Ceremony name from the DSL.

§started_at: DateTime<Utc>

Wall-clock timestamp at start.

§

ActStarted

Beginning of an act (named subdivision of a ceremony).

Fields

§id: ActId

Act identifier.

§label: String

Act label as authored in the DSL.

§

StepStarted

Beginning of a step.

Fields

§id: StepId

Step identifier.

§label: String

Step label as authored in the DSL.

§role: RoleId

Role responsible for this step (stable id).

§role_name: String

Human-readable role name, from the ceremony’s role definition. Carried alongside the id so transcripts stay self-contained for reports and verifiers without re-reading the ceremony YAML.

§started_at: DateTime<Utc>

Wall-clock timestamp at start.

§

PromptAnswered

A prompt has been answered and validated.

Fields

§step: Option<StepId>

Step that issued the prompt, if any. None for ceremony-level prompts emitted before the first step (e.g. the ceremony-start confirmation) or after the last step.

§prompt: Prompt

The prompt as issued.

§response: ResponseRecord

Redacted response record.

§at: DateTime<Utc>

Wall-clock timestamp when the response was accepted.

§

BackendOperation

A backend operation completed and produced structured evidence.

Fields

§step: StepId

Step under which the operation ran.

§kind: String

Stable operation kind (e.g. generate_keypair, sign_data).

§inputs: Value

Structured inputs to the operation (parameters, references).

§outputs: Value

Structured outputs from the operation (artifact ids, hashes).

§fingerprint: Option<String>

Optional fingerprint of the produced material.

§

AttestationRecorded

A human attestation was recorded.

Fields

§step: StepId

Step under which the attestation was recorded.

§role: RoleId

Role that issued the attestation.

§statement: String

Verbatim attestation statement.

§at: DateTime<Utc>

Wall-clock timestamp when the attestation was recorded.

§

ArtifactWritten

An artifact was written to disk.

Fields

§step: StepId

Step that produced the artifact.

§name: String

Artifact name as declared in the DSL.

§path: PathBuf

Path on disk.

§sha256: String

Lowercase hex SHA-256 of the artifact bytes.

§

DeviationRecorded

A deviation was logged by the operator.

Fields

§step: Option<StepId>

Step in which the deviation was logged, if any. None for deviations logged outside of a step (before the first step or while a ceremony-level prompt is pending).

§text: String

Verbatim deviation text.

§at: DateTime<Utc>

Wall-clock timestamp when the deviation was recorded.

§

StepCompleted

Step finished executing.

Fields

§id: StepId

Step identifier.

§outcome: StepOutcome

Outcome (completed or skipped).

§completed_at: DateTime<Utc>

Wall-clock timestamp at completion.

§

CeremonyCompleted

Ceremony finished successfully.

The transcript’s cryptographic identity is SHA-256(line_bytes) for this line, recoverable by any reader, so the fact itself carries no fingerprint field. The runtime forwards the value to frontends through an out-of-band channel event.

Fields

§completed_at: DateTime<Utc>

Wall-clock timestamp at completion.

§

CeremonyFailed

Ceremony failed or was aborted.

Fields

§error: ErrorRecord

Structured error record.

§failed_at: DateTime<Utc>

Wall-clock timestamp at failure.

Trait Implementations§

Source§

impl Clone for StepFact

Source§

fn clone(&self) -> StepFact

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StepFact

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StepFact

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for StepFact

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,