pub struct CeremonyEventRecord {Show 17 fields
pub event_id: String,
pub event_type: String,
pub schema_version: u32,
pub ceremony_id: String,
pub definition_name: String,
pub definition_version: String,
pub sequence: u64,
pub occurred_at: String,
pub actor: Option<CeremonyEventActor>,
pub correlation_id: String,
pub causation_id: String,
pub trace_id: String,
pub event_schema_version: u32,
pub event: Option<Struct>,
pub previous_record_hash: Vec<u8>,
pub record_hash: Vec<u8>,
pub authorization: Option<CeremonyAuthorizationEvidence>,
}Expand description
One sealed record of a ceremony’s stream: the fact, its position, and everything that binds it to the records before it.
The fields are the record’s own rather than a rendering of them, so a caller can rebuild the record and verify the chain itself instead of trusting the engine that sent it.
Fields§
§event_id: StringOccurs once in the stream. Derived from the fact, so one command decided twice cannot land twice.
event_type: StringCatalogue entry this record is an instance of, in snake_case: “step_completed”, “intervention_requested”, and so on.
schema_version: u32Version of the record’s field set: 3 seals authorization evidence, 2 carries the event without authorization, and 1 has no event payload.
ceremony_id: String§definition_name: String§definition_version: String§sequence: u64Position in the stream. From one, contiguous, no gaps.
occurred_at: StringRFC 3339.
actor: Option<CeremonyEventActor>§correlation_id: StringThe opening record’s id: what ties one session’s records together. Empty when the record names none.
causation_id: StringThe record this one was decided against. Empty on the first.
trace_id: StringEmpty until a fact carries a trace.
event_schema_version: u32The shape the payload below was sealed in. Zero on a version-1 record, which has no payload to shape.
event: Option<Struct>The sealed event, exactly as the digest covers it. Absent on a version-1 record.
A Struct rather than one message per event type: the payload is
versioned by event_schema_version and read through the engine’s
own upcasters, so freezing its shape in this contract would put
the same thing in two places and make every payload change a
contract change.
previous_record_hash: Vec<u8>The previous record’s digest, 32 bytes. Empty on the first record of a stream.
record_hash: Vec<u8>This record’s digest, over its content and the previous digest. 32 bytes.
Mandatory for schema 3; absent from historical schema 1 and 2. These are the exact authorization fields covered by record_hash.
Trait Implementations§
Source§impl Clone for CeremonyEventRecord
impl Clone for CeremonyEventRecord
Source§fn clone(&self) -> CeremonyEventRecord
fn clone(&self) -> CeremonyEventRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CeremonyEventRecord
impl Debug for CeremonyEventRecord
Source§impl Default for CeremonyEventRecord
impl Default for CeremonyEventRecord
Source§fn default() -> CeremonyEventRecord
fn default() -> CeremonyEventRecord
Source§impl Message for CeremonyEventRecord
impl Message for CeremonyEventRecord
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for CeremonyEventRecord
impl PartialEq for CeremonyEventRecord
impl StructuralPartialEq for CeremonyEventRecord
Auto Trait Implementations§
impl Freeze for CeremonyEventRecord
impl RefUnwindSafe for CeremonyEventRecord
impl Send for CeremonyEventRecord
impl Sync for CeremonyEventRecord
impl Unpin for CeremonyEventRecord
impl UnsafeUnpin for CeremonyEventRecord
impl UnwindSafe for CeremonyEventRecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request