pub struct SourceConnectorSpec {
pub name: String,
pub connector: String,
pub topic: String,
pub topic_routing: Option<String>,
pub enabled: bool,
pub config: Value,
pub config_secret_ref: Option<String>,
pub topic_config: SourceTopicConfigSpec,
}Expand description
Source connector specification (Kafka Connect style - generic config)
All connector-specific configuration goes in the generic config field.
Connector validation happens at runtime, not at CRD schema level.
This design scales to 300+ connectors without CRD changes.
Fields§
§name: StringUnique name for this source connector
connector: StringConnector type (postgres-cdc, mysql-cdc, http, datagen, kafka, mqtt, etc.)
topic: StringTarget topic to publish events to (fallback/default)
topic_routing: Option<String>Topic routing pattern for CDC connectors Enables dynamic topic selection based on CDC event metadata. Supported placeholders: {database}, {schema}, {table} Example: “cdc.{schema}.{table}” → “cdc.public.users”
enabled: boolWhether this source is enabled
config: ValueConnector-specific configuration (Kafka Connect style) All connector parameters go here. Validated at runtime by the controller. Example for postgres-cdc: {“host”: “…”, “slot”: “…”, “tables”: […]}
config_secret_ref: Option<String>Secret reference for sensitive configuration (passwords, keys, tokens) The referenced Secret’s data will be merged into config at runtime.
topic_config: SourceTopicConfigSpecTopic configuration (partitions, replication)
Trait Implementations§
Source§impl Clone for SourceConnectorSpec
impl Clone for SourceConnectorSpec
Source§fn clone(&self) -> SourceConnectorSpec
fn clone(&self) -> SourceConnectorSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceConnectorSpec
impl Debug for SourceConnectorSpec
Source§impl<'de> Deserialize<'de> for SourceConnectorSpec
impl<'de> Deserialize<'de> for SourceConnectorSpec
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>,
Source§impl JsonSchema for SourceConnectorSpec
impl JsonSchema for SourceConnectorSpec
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl Serialize for SourceConnectorSpec
impl Serialize for SourceConnectorSpec
Source§impl Validate for SourceConnectorSpec
impl Validate for SourceConnectorSpec
Source§impl<'v_a> ValidateArgs<'v_a> for SourceConnectorSpec
impl<'v_a> ValidateArgs<'v_a> for SourceConnectorSpec
Auto Trait Implementations§
impl Freeze for SourceConnectorSpec
impl RefUnwindSafe for SourceConnectorSpec
impl Send for SourceConnectorSpec
impl Sync for SourceConnectorSpec
impl Unpin for SourceConnectorSpec
impl UnwindSafe for SourceConnectorSpec
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
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> 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