pub struct ClusterTopologyValidation {Show 15 fields
pub validation_format_version: u16,
pub scope: TopologyValidationScope,
pub deployment_id: String,
pub parent_version: TopologyVersion,
pub target_version: TopologyVersion,
pub parent_manifest: CatalogManifestRef,
pub target_manifest: CatalogManifestRef,
pub parent_pipeline: PipelineIdentity,
pub target_pipeline: PipelineIdentity,
pub environment_sha256: String,
pub compatibility_sha256: String,
pub statements: Vec<String>,
pub objects: Vec<ClusterTopologyObjectPlan>,
pub requires_processing_pause: bool,
pub required_before_activation: Vec<TopologyActivationRequirement>,
}Expand description
Effect-free candidate validation. This is neither a durable admission nor an activation receipt.
Fields§
§validation_format_version: u16Deterministic local descriptor format, independent of catalog and topology versions.
scope: TopologyValidationScopeExact scope of the returned evidence.
deployment_id: StringExisting control/checkpoint deployment identity.
parent_version: TopologyVersionExpected authoritative parent.
target_version: TopologyVersionProposed exact successor; not a committed version.
parent_manifest: CatalogManifestRefExact durable parent bytes and inventory.
target_manifest: CatalogManifestRefCandidate inventory reference, computed without writing the blob or a catalog head.
parent_pipeline: PipelineIdentityUnmodified strict recovery identity for the parent graph.
target_pipeline: PipelineIdentityFull strict identity for the changed graph; ordinary parent checkpoints will not match it.
environment_sha256: StringGlobal state/routing/delivery ABI and config shared by every object descriptor.
compatibility_sha256: StringDeterministic descriptor digest. Participants must agree on this before admission advances.
statements: Vec<String>Exact submitted DDL, including removals absent from the target inventory. Binds retries and participant compilation to the same ordered payload.
objects: Vec<ClusterTopologyObjectPlan>Parent/target union sorted by name and generation. Explicit reset has two mappings: retirement of the parent incarnation and future-only activation of its successor.
requires_processing_pause: boolA processing pause is required for the implemented old-topology cut contract.
required_before_activation: Vec<TopologyActivationRequirement>Evidence this validation does not supply; the public mutation path remains guarded.
Implementations§
Source§impl ClusterTopologyValidation
impl ClusterTopologyValidation
Sourcepub fn descriptor_digest(&self) -> Result<String, TopologyError>
pub fn descriptor_digest(&self) -> Result<String, TopologyError>
Recompute the existing descriptor digest from its explicit immutable fields.
§Errors
Returns a typed encoding failure; this never writes authority.
Sourcepub fn validate_catalogs(
&self,
parent: &CatalogManifest,
target: &CatalogManifest,
) -> Result<(), TopologyError>
pub fn validate_catalogs( &self, parent: &CatalogManifest, target: &CatalogManifest, ) -> Result<(), TopologyError>
Validate canonical structure and bind every object to the exact ordered catalog inventories. Compilation/connector semantics are independently checked by each DB participant.
§Errors
Rejects malformed, unsupported, divergent or oversized evidence.
Sourcepub fn encode_and_reference(
&self,
) -> Result<(Vec<u8>, TopologyCompatibilityRef), TopologyError>
pub fn encode_and_reference( &self, ) -> Result<(Vec<u8>, TopologyCompatibilityRef), TopologyError>
Canonical bounded report encoding used by all admission and participant paths.
§Errors
Rejects unsupported or noncanonical descriptor fields and size limits.
Trait Implementations§
Source§impl Clone for ClusterTopologyValidation
impl Clone for ClusterTopologyValidation
Source§impl Debug for ClusterTopologyValidation
impl Debug for ClusterTopologyValidation
Source§impl<'de> Deserialize<'de> for ClusterTopologyValidation
impl<'de> Deserialize<'de> for ClusterTopologyValidation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ClusterTopologyValidation
impl StructuralPartialEq for ClusterTopologyValidation
Auto Trait Implementations§
impl Freeze for ClusterTopologyValidation
impl RefUnwindSafe for ClusterTopologyValidation
impl Send for ClusterTopologyValidation
impl Sync for ClusterTopologyValidation
impl Unpin for ClusterTopologyValidation
impl UnsafeUnpin for ClusterTopologyValidation
impl UnwindSafe for ClusterTopologyValidation
Blanket Implementations§
impl<T> Allocation for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].