> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamkap.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Existing Source

> Update an existing source connector.

The `config` object contains connector-specific properties using **dot notation**
(e.g., `table.include.list`, `schema.include.list`, `database.hostname`).
To add tables, include the full `table.include.list` value with the new tables appended.

Use the **GET /sources/connectors** endpoint with a `connector_code` query parameter to
retrieve the full configuration schema for a specific connector type.



## OpenAPI

````yaml /openapi/openapi.json put /sources/{source_id}
openapi: 3.1.0
info:
  title: Streamkap REST API
  description: >-
    The Streamkap REST API allows you to programmatically manage your CDC
    pipelines, sources, destinations, transforms, and more.


    Authenticate using a bearer token obtained from the [Access
    Token](/api-reference/auth/access-token) endpoint with your API client
    credentials.
  contact:
    name: Streamkap Support
    url: https://streamkap.com/
    email: support@streamkap.com
  license:
    name: Proprietary
  version: 2.0.0
servers:
  - url: https://api.streamkap.com
    description: Production
security: []
tags:
  - name: Alerts
    description: Manage alert subscribers, preferences, and notification credentials.
  - name: Authentication
    description: Obtain and refresh access tokens, manage client credentials and roles.
  - name: Billing
    description: Retrieve usage metrics, summaries, and export billing data.
  - name: Consumer Groups
    description: List, inspect, and reset Kafka consumer group offsets.
  - name: Dashboard
    description: Retrieve organisation-level statistics and overview data.
  - name: Destinations
    description: Create, configure, and manage data destinations and their lifecycle.
  - name: Kafka Access
    description: Manage Kafka users and their access permissions.
  - name: Logs
    description: Query and summarise system logs.
  - name: Pipelines
    description: Create, configure, and manage CDC pipelines and their lifecycle.
  - name: Project Keys
    description: Manage project keys that bundle API credentials and optional Kafka access.
  - name: Schema Registry
    description: Browse schema subjects, versions, and retrieve schema definitions.
  - name: Services
    description: View and switch service metadata.
  - name: Sources
    description: >-
      Create, configure, and manage data sources, snapshots, and their
      lifecycle.
  - name: Tags
    description: Create, update, and manage resource tags for organisation.
  - name: Topics
    description: Browse topic details, statistics, configurations, metrics, and messages.
  - name: Transforms
    description: >-
      Create, deploy, and manage data transforms, unit tests, and implementation
      details.
paths:
  /sources/{source_id}:
    put:
      tags:
        - Sources
      summary: Update Existing Source
      description: >-
        Update an existing source connector.


        The `config` object contains connector-specific properties using **dot
        notation**

        (e.g., `table.include.list`, `schema.include.list`,
        `database.hostname`).

        To add tables, include the full `table.include.list` value with the new
        tables appended.


        Use the **GET /sources/connectors** endpoint with a `connector_code`
        query parameter to

        retrieve the full configuration schema for a specific connector type.
      operationId: updateSource
      parameters:
        - name: source_id
          in: path
          required: true
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Source Id
        - name: secret_returned
          in: query
          required: false
          schema:
            type: boolean
            description: Whether to include secret values in the response
            default: false
            title: Secret Returned
          description: Whether to include secret values in the response
        - name: wait
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              When False, save config and return immediately without waiting for
              KC update
            default: true
            title: Wait
          description: >-
            When False, save config and return immediately without waiting for
            KC update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSourceReq'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceConnector'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - FronteggHTTPAuthentication: []
components:
  schemas:
    UpdateSourceReq:
      properties:
        name:
          type: string
          title: Name
          description: Display name for the source connector.
        connector:
          type: string
          title: Connector
          description: >-
            Connector type identifier (e.g., 'postgresql', 'mysql', 'mongodb',
            'dynamodb', 'sqlserveraws').
        config:
          oneOf:
            - $ref: '#/components/schemas/AlloydbSourceConfig'
            - $ref: '#/components/schemas/Db2SourceConfig'
            - $ref: '#/components/schemas/DocumentdbSourceConfig'
            - $ref: '#/components/schemas/DynamodbSourceConfig'
            - $ref: '#/components/schemas/ElasticsearchSourceConfig'
            - $ref: '#/components/schemas/KafkadirectSourceConfig'
            - $ref: '#/components/schemas/MariadbSourceConfig'
            - $ref: '#/components/schemas/MongodbSourceConfig'
            - $ref: '#/components/schemas/MongodbhostedSourceConfig'
            - $ref: '#/components/schemas/MysqlSourceConfig'
            - $ref: '#/components/schemas/OracleSourceConfig'
            - $ref: '#/components/schemas/OracleawsSourceConfig'
            - $ref: '#/components/schemas/PlanetscaleSourceConfig'
            - $ref: '#/components/schemas/PostgresqlSourceConfig'
            - $ref: '#/components/schemas/RedisSourceConfig'
            - $ref: '#/components/schemas/S3SourceConfig'
            - $ref: '#/components/schemas/SalesforceWebhookSourceConfig'
            - $ref: '#/components/schemas/SqlserverawsSourceConfig'
            - $ref: '#/components/schemas/SupabaseSourceConfig'
            - $ref: '#/components/schemas/VitessSourceConfig'
            - $ref: '#/components/schemas/WebhookSourceConfig'
            - $ref: '#/components/schemas/ZendeskWebhookSourceConfig'
          title: Config
          description: >-
            Connector-specific configuration properties. The schema depends on
            the connector type specified in the 'connector' field.
        kc_cluster_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Kc Cluster Id
          description: KC cluster to deploy this connector to. Omit for default cluster.
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
          description: List of tag IDs to assign to this source
      additionalProperties: true
      type: object
      required:
        - name
        - connector
        - config
      title: UpdateSourceReq
      description: Request body for updating an existing source connector.
    SourceConnector:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: User-defined connector name
        connector:
          anyOf:
            - type: string
            - type: 'null'
          title: Connector
          description: Connector type (e.g., 'postgresql', 'mysql', 'mongodb')
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: Unique identifier
        connector_display_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Connector Display Name
          description: Human-readable connector type name
        created_timestamp:
          anyOf:
            - type: string
            - type: string
              format: date-time
            - type: 'null'
          title: Created Timestamp
          description: Creation timestamp (ISO 8601)
        sub_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Sub Id
          description: Subscription identifier
        tenant_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tenant Id
          description: Tenant identifier for multi-tenancy
        service_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Service Id
          description: Associated service identifier
        config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AlloydbSourceConfig'
                - $ref: '#/components/schemas/Db2SourceConfig'
                - $ref: '#/components/schemas/DocumentdbSourceConfig'
                - $ref: '#/components/schemas/DynamodbSourceConfig'
                - $ref: '#/components/schemas/ElasticsearchSourceConfig'
                - $ref: '#/components/schemas/KafkadirectSourceConfig'
                - $ref: '#/components/schemas/MariadbSourceConfig'
                - $ref: '#/components/schemas/MongodbSourceConfig'
                - $ref: '#/components/schemas/MongodbhostedSourceConfig'
                - $ref: '#/components/schemas/MysqlSourceConfig'
                - $ref: '#/components/schemas/OracleSourceConfig'
                - $ref: '#/components/schemas/OracleawsSourceConfig'
                - $ref: '#/components/schemas/PlanetscaleSourceConfig'
                - $ref: '#/components/schemas/PostgresqlSourceConfig'
                - $ref: '#/components/schemas/RedisSourceConfig'
                - $ref: '#/components/schemas/S3SourceConfig'
                - $ref: '#/components/schemas/SalesforceWebhookSourceConfig'
                - $ref: '#/components/schemas/SqlserverawsSourceConfig'
                - $ref: '#/components/schemas/SupabaseSourceConfig'
                - $ref: '#/components/schemas/VitessSourceConfig'
                - $ref: '#/components/schemas/WebhookSourceConfig'
                - $ref: '#/components/schemas/ZendeskWebhookSourceConfig'
            - type: 'null'
          title: Config
          description: Connector configuration parameters
        topic_ids:
          anyOf:
            - items:
                anyOf:
                  - type: string
                  - type: integer
              type: array
            - type: 'null'
          title: Topic Ids
          description: List of associated topic identifiers
        topic_map:
          anyOf:
            - additionalProperties:
                items:
                  anyOf:
                    - type: string
                    - type: integer
                type: array
              type: object
            - type: 'null'
          title: Topic Map
          description: Mapping of topics to their partitions or related entities
        topics:
          anyOf:
            - items:
                anyOf:
                  - type: string
                  - type: integer
              type: array
            - type: 'null'
          title: Topics
          description: List of topic names
        tasks:
          anyOf:
            - items:
                type: integer
              type: array
            - type: 'null'
          title: Tasks
          description: List of task identifiers
        connector_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Connector Status
          description: >-
            Current status: Active, Paused, Stopped, Broken, Starting,
            Unassigned, Unknown, Pending
        desired_state:
          anyOf:
            - type: string
            - type: 'null'
          title: Desired State
          description: 'Desired state: Pending, Active, Paused, Stopped'
        kc_cluster_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Kc Cluster Id
          description: >-
            KC cluster this connector is deployed to. None means default
            cluster.
        task_statuses:
          anyOf:
            - additionalProperties:
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: integer
                type: object
              type: object
            - type: 'null'
          title: Task Statuses
          description: Status information for each connector task
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
          description: List of tag IDs assigned to this source
      additionalProperties: true
      type: object
      title: SourceConnector
      description: Source connector configuration and status.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AlloydbSourceConfig:
      type: object
      title: AlloyDB
      description: Configuration properties for the AlloyDB source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: PostgreSQL Hostname.
        database.port.user.defined:
          type: string
          description: PostgreSQL Port. For example, 5432
          default: '5432'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.dbname:
          type: string
          description: Database from which to stream data
        snapshot.read.only.user.defined:
          type: string
          enum:
            - 'Yes'
            - 'No'
          description: >-
            When connecting to a read replica PostgreSQL database, this must be
            set to 'Yes' to support Streamkap snapshots
          default: 'Yes'
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including schema and table name (e.g.,
            'public.streamkap_signal'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        column.include.list.toggled:
          type: boolean
          description: >-
            Toggle between Inclusion (include only selected columns) and
            Exclusion (exclude selected columns). Defaults to Inclusion (On).
          default: true
        column.include.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be included in
            change event record values. Fully-qualified names for columns are of
            the form schemaName[.]tableName[.](columnName1|columnName2)
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        slot.name:
          type: string
          description: The name of the replication slot for the connector to use.
          default: streamkap_pgoutput_slot
        publication.name:
          type: string
          description: The name of the publication for the connector to use.
          default: streamkap_pub
        schema.include.list:
          type: string
          description: Schemas to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        database.sslmode:
          type: string
          enum:
            - require
            - disable
          description: Whether to use an encrypted connection to the PostgreSQL server
          default: require
        include.source.db.name.in.table.name.user.defined:
          type: boolean
          description: Changes the format of topics to 'DatabaseName_TopicName'
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - slot.name
        - publication.name
        - schema.include.list
        - table.include.list.user.defined
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    Db2SourceConfig:
      type: object
      title: Db2
      description: Configuration properties for the Db2 source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: IP address or hostname of the Db2 database server
        database.port.user.defined:
          type: string
          description: Port number of the Db2 database server
          default: '50000'
        database.user:
          type: string
          description: >-
            Name of the Db2 database user for connecting to the DB2 database
            server
        database.password:
          type: string
          format: password
          description: Password to use when connecting to the Db2 database server
        database.dbname:
          type: string
          description: The name of the Db2 database from which to stream the changes
        schema.include.list.user.defined:
          type: string
          description: Source schemas to sync.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Path to the signal table as schema.table (e.g.,
            'MYSCHEMA.STREAMKAP_SIGNAL'). The database name will be added
            automatically. This table is used for incremental snapshotting.
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - schema.include.list.user.defined
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    DocumentdbSourceConfig:
      type: object
      title: DocumentDB
      description: Configuration properties for the DocumentDB source connector.
      properties:
        mongodb.connection.string.user.defined:
          type: string
          format: password
          description: >-
            DocumentDB Connection String. See DocumentDB documentation for
            further details.
        transforms.unwrap.array.encoding:
          type: string
          enum:
            - value: array
              label: Native array
            - value: array_string
              label: Stringified JSON array
          description: >-
            How to encode arrays. 'Array' encodes them as Array objects but
            requires all values in the array to be of the same type.
            'Array_String' encodes them as JSON Strings and should be used if
            arrays have mixed types
          default: array_string
        transforms.unwrap.document.encoding:
          type: string
          enum:
            - value: document
              label: Nested document
            - value: string
              label: Stringified JSON
          description: >-
            How to encode nested documents. 'Document' encodes them as JSON
            Objects, 'String' encodes them as JSON Strings
          default: document
        database.include.list:
          type: string
          description: Source databases to sync.
        collection.include.list.user.defined:
          type: string
          description: Source collections to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal collection including database and collection
            name (e.g., 'mydb.streamkap_signal'). This collection is used for
            incremental snapshotting. Follow the documentation for creating this
            collection.
        cursor.oversize.handling.mode:
          type: string
          enum:
            - skip
            - split
          description: >-
            The strategy used to handle change events for documents exceeding
            specified BSON size.
          default: skip
        cursor.oversize.skip.threshold:
          type: integer
          minimum: 1000000
          maximum: 16000000
          description: >-
            The maximum allowed size in bytes of the stored document for which
            change events are processed. This includes both, the size before and
            after database operation, more specifically this limits the size of
            fullDocument and fullDocumentBeforeChange filed of MongoDB change
            events.
          default: 16000000
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - mongodb.connection.string.user.defined
        - database.include.list
        - collection.include.list.user.defined
        - signal.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    DynamodbSourceConfig:
      type: object
      title: DynamoDB
      description: Configuration properties for the DynamoDB source connector.
      properties:
        aws.region:
          type: string
          description: AWS Region
        aws.access.key.id:
          type: string
          format: password
          description: AWS Access Key ID
        aws.secret.key:
          type: string
          format: password
          description: AWS Secret Key
        s3.export.bucket.name:
          type: string
          description: used for backfill (snapshot)
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        batch.size:
          type: integer
        dynamodb.service.endpoint:
          type: string
          description: Dynamodb Service Endpoint (optional)
        tasks.max:
          type: integer
          minimum: 1
          maximum: 40
          description: The maximum number of active tasks
          default: 10
        snapshot.parallel.time.offset:
          type: integer
          minimum: 0
          maximum: 604800000
          description: >-
            If > 0, snapshot will run in parallel with streaming and snapshot
            records _streamkap_ts_ms will be set back in time by this amount to
            prioritize CDC events downstream
          default: 0
        poll.timeout.ms:
          type: integer
          description: Poll Timeout (ms)
          default: '180000'
        incremental.snapshot.chunk.size:
          type: integer
          description: Incremental snapshot chunk size
          default: '32768'
        incremental.snapshot.max.threads:
          type: integer
          description: Incremental snapshot max threads
          default: '8'
        full.export.expiration.time.ms:
          type: integer
          description: Full Export Expiration Time (ms)
          default: '86400000'
        signal.kafka.poll.timeout.ms:
          type: integer
          description: Signal Kafka Poll Timeout (ms)
          default: '1000'
        array.encoding.json:
          type: string
          description: Force nested lists as JSON string
          default: true
        struct.encoding.json:
          type: string
          description: Force nested maps as JSON string
          default: true
      required:
        - aws.region
        - aws.access.key.id
        - aws.secret.key
        - s3.export.bucket.name
        - table.include.list.user.defined
    ElasticsearchSourceConfig:
      type: object
      title: ElasticSearch
      description: Configuration properties for the ElasticSearch source connector.
      properties:
        es.host:
          type: string
          description: >-
            ElasticSearch host. Optionally it is possible to specify many hosts
            using ; as separator (host1;host2;host3)
        es.scheme:
          type: string
          enum:
            - http
            - https
          description: ElasticSearch protocol (http/https)
          default: https
        es.port:
          type: string
          description: Port for ElasticSearch HTTP/HTTPS REST API. For example, 443 or 9200
          default: 443
        http.auth.user.defined:
          type: string
          enum:
            - None
            - Basic
          description: Type of Authentication
          default: Basic
        http.auth.user:
          type: string
          description: Elasticsearch username
        http.auth.password:
          type: string
          format: password
          description: Elasticsearch password
        endpoint.include.list.user.defined:
          type: string
          description: The name of ElasticSearch indices
        datetime.field.name:
          type: string
          description: The name of datetime field to use to detect new records.
        datetime.field.value:
          type: string
          description: >-
            The day and time to start consuming records from. Leave it empty if
            you want to consume records as of now.
        tasks.max:
          type: integer
          minimum: 1
          maximum: 10
          description: The maximum number of active tasks
          default: 5
      required:
        - es.host
        - es.port
        - http.auth.user
        - http.auth.password
        - endpoint.include.list.user.defined
        - datetime.field.name
    KafkadirectSourceConfig:
      type: object
      title: Kafka Direct
      description: Configuration properties for the Kafka Direct source connector.
      properties:
        topic.prefix:
          type: string
          description: Prefix for the topic
        topic.include.list.user.defined:
          type: string
          description: Comma-separated topic names to stream from this Kafka cluster.
        format:
          type: string
          enum:
            - json
            - string
            - avro
          description: The serialised format of the data written to the Kafka topic
          default: string
        schemas.enable:
          type: boolean
          description: >-
            If untoggled (default), Streamkap attempts to infer schema from your
            data - depending on the Destination. Otherwise, Streamkap assumes
            the Kafka message key and value contain `schema` and `payload`
            structures
          default: false
      required:
        - topic.prefix
        - topic.include.list.user.defined
    MariadbSourceConfig:
      type: object
      title: MariaDB
      description: Configuration properties for the MariaDB source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: >-
            The IP address or hostname of the MariaDB database server. For
            example, mariadb.something.rds.amazonaws.com
        database.port.user.defined:
          type: string
          description: Port number of the MariaDB database server. For example, 3306
          default: '3306'
        database.user:
          type: string
          description: >-
            The name of the MariaDB user that the connector uses to connect to
            the MariaDB database server.
        database.password:
          type: string
          format: password
          description: >-
            The password of the MariaDB user that the connector uses to connect
            to the MariaDB database server.
        database.include.list.user.defined:
          type: string
          description: >-
            Databases to include. The connector does not capture changes in any
            database whose name is not included.
        table.include.list.user.defined:
          type: string
          description: >-
            Source tables to sync. The connector does not capture changes in any
            table that is not included.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including database and table name
            (e.g., 'mydb.streamkap_signal'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The database containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        database.connectionTimeZone:
          type: string
          enum:
            - SERVER
            - UTC
            - Africa/Cairo
            - ' Asia/Riyadh'
            - Africa/Casablanca
            - Asia/Seoul
            - Africa/Harare
            - Asia/Shanghai
            - Africa/Monrovia
            - Asia/Singapore
            - Africa/Nairobi
            - Asia/Taipei
            - Africa/Tripoli
            - Asia/Tehran
            - Africa/Windhoek
            - Asia/Tokyo
            - America/Araguaina
            - Asia/Ulaanbaatar
            - America/Asuncion
            - Asia/Vladivostok
            - America/Bogota
            - Asia/Yakutsk
            - America/Buenos_Aires
            - Asia/Yerevan
            - America/Caracas
            - Atlantic/Azores
            - America/Chihuahua
            - Australia/Adelaide
            - America/Cuiaba
            - Australia/Brisbane
            - America/Denver
            - Australia/Darwin
            - America/Fortaleza
            - Australia/Hobart
            - America/Guatemala
            - Australia/Perth
            - America/Halifax
            - Australia/Sydney
            - America/Manaus
            - Brazil/East
            - America/Matamoros
            - Canada/Newfoundland
            - America/Monterrey
            - Canada/Saskatchewan
            - America/Montevideo
            - Canada/Yukon
            - America/Phoenix
            - Europe/Amsterdam
            - America/Santiago
            - Europe/Athens
            - America/Tijuana
            - Europe/Dublin
            - Asia/Amman
            - Europe/Helsinki
            - Asia/Ashgabat
            - Europe/Istanbul
            - Asia/Baghdad
            - Europe/Kaliningrad
            - Asia/Baku
            - Europe/Moscow
            - Asia/Bangkok
            - Europe/Paris
            - Asia/Beirut
            - Europe/Prague
            - Asia/Calcutta
            - Europe/Sarajevo
            - Asia/Damascus
            - Pacific/Auckland
            - Asia/Dhaka
            - Pacific/Fiji
            - Asia/Irkutsk
            - Pacific/Guam
            - Asia/Jerusalem
            - Pacific/Honolulu
            - Asia/Kabul
            - Pacific/Samoa
            - Asia/Karachi
            - US/Alaska
            - Asia/Kathmandu
            - US/Central
            - Asia/Krasnoyarsk
            - US/Eastern
            - Asia/Magadan
            - US/East-Indiana
            - Asia/Muscat
            - US/Pacific
            - Asia/Novosibirsk
          description: >-
            Set the connection timezone. If set to SERVER, the source will
            detect the connection time zone from the values configured on the
            MariaDB server session variables 'time_zone' or 'system_time_zone' 
          default: SERVER
        snapshot.gtid:
          type: string
          enum:
            - 'Yes'
            - 'No'
          description: >-
            Whether or not to use a read-only connection. MariaDB has GTID
            enabled by default, so no additional configuration is necessary.
          default: 'Yes'
        SourceRegexSupport.enabled:
          type: boolean
          description: >-
            Enable regex support. Useful for merging multiple tables into the
            same output topic. NOTE: most times when regex support is enabled
            there will be 100s of 1000s of tables and "Capture Only Captured
            Tables DDL?" must also be enabled.
          default: false
        transforms.SourceRegexSupport.regex.replacement:
          type: string
          description: Replacement string for matching regex snippets.
          default: REGEX
        transforms.SourceRegexSupport.key.field.template:
          type: string
          description: >-
            Regex support key field template. An extra key field is needed to
            ensure unique data across all tables. Use this template with
            available variables: database, schema, table, sourceId
          default: '{{database}}.{{table}}'
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        transforms.SourceRegexSupport.metadata.field.name:
          type: string
          description: >-
            Name of the extra metadata field to store source information and
            ensure uniqueness across all tables when regex support is enabled.
          default: _streamkap_source_metadata
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        database.ssl.mode:
          type: string
          enum:
            - disable
            - trust
          description: >-
            Enables SSL/TLS in a specific mode. 'disable' = unencrypted
            connection. 'trust' = encrypted, no certificate verification.
          default: trust
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.include.list.user.defined
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    MongodbSourceConfig:
      type: object
      title: MongoDB Atlas
      description: Configuration properties for the MongoDB Atlas source connector.
      properties:
        mongodb.connection.string.user.defined:
          type: string
          format: password
          description: >-
            Mongodb Connection String. See Mongodb documentation for further
            details.
        mongodb.connection.hostname:
          type: string
          description: The hostname(s) extracted from the MongoDB connection string.
          default: ''
        transforms.unwrap.array.encoding:
          type: string
          enum:
            - value: array
              label: Native array
            - value: array_string
              label: Stringified JSON array
            - value: string
              label: Raw JSON string (Deprecated)
          description: >-
            How to encode arrays. 'Array' encodes them as Array objects but
            requires all values in the array to be of the same type.
            'Array_String' encodes them as JSON Strings and should be used if
            arrays have mixed types. 'String' is deprecated, use 'Array_String'
            instead
          default: array_string
        transforms.unwrap.document.encoding:
          type: string
          enum:
            - value: document
              label: Nested document
            - value: string
              label: Stringified JSON
          description: >-
            How to encode nested documents. 'Document' encodes them as JSON
            Objects, 'String' encodes them as JSON Strings
          default: document
        database.include.list:
          type: string
          description: Source databases to sync.
        collection.include.list.user.defined:
          type: string
          description: Source collections to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal collection including database and collection
            name (e.g., 'mydb.streamkap_signal'). This collection is used for
            incremental snapshotting. Follow the documentation for creating this
            collection.
        cursor.pipeline:
          type: string
          description: >-
            A JSON array of additional pipeline stages to apply when reading
            change events from MongoDB. This can be used to filter or transform
            change stream events before they are processed by the connector
        cursor.oversize.handling.mode:
          type: string
          enum:
            - skip
            - split
          description: >-
            The strategy used to handle change events for documents exceeding
            specified BSON size. 'Skip' ignores oversized documents, 'Split'
            breaks them into smaller chunks
          default: skip
        cursor.oversize.skip.threshold:
          type: integer
          minimum: 1000000
          maximum: 16000000
          description: >-
            The maximum allowed size in bytes of the stored document for which
            change events are processed. This includes both the size before and
            after the database operation, specifically this limits the size of
            fullDocument and fullDocumentBeforeChange fields of MongoDB change
            events
          default: 16000000
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - mongodb.connection.string.user.defined
        - database.include.list
        - collection.include.list.user.defined
        - signal.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    MongodbhostedSourceConfig:
      type: object
      title: MongoDB
      description: Configuration properties for the MongoDB source connector.
      properties:
        mongodb.connection.string.user.defined:
          type: string
          format: password
          description: >-
            Mongodb Connection String. See Mongodb documentation for further
            details.
        mongodb.connection.hostname:
          type: string
          description: The hostname(s) extracted from the MongoDB connection string.
          default: ''
        transforms.unwrap.array.encoding:
          type: string
          enum:
            - value: array
              label: Native array
            - value: array_string
              label: Stringified JSON array
            - value: string
              label: Raw JSON string (Deprecated)
          description: >-
            How to encode arrays. 'Array' encodes them as Array objects but
            requires all values in the array to be of the same type.
            'Array_String' encodes them as JSON Strings and should be used if
            arrays have mixed types. 'String' is deprecated, use 'Array_String'
            instead
          default: array_string
        transforms.unwrap.document.encoding:
          type: string
          enum:
            - value: document
              label: Nested document
            - value: string
              label: Stringified JSON
          description: >-
            How to encode nested documents. 'Document' encodes them as JSON
            Objects, 'String' encodes them as JSON Strings
          default: document
        database.include.list:
          type: string
          description: Source databases to sync.
        collection.include.list.user.defined:
          type: string
          description: Source collections to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal collection including database and collection
            name (e.g., 'mydb.streamkap_signal'). This collection is used for
            incremental snapshotting. Follow the documentation for creating this
            collection.
        cursor.pipeline:
          type: string
          description: >-
            A JSON array of additional pipeline stages to apply when reading
            change events from MongoDB. This can be used to filter or transform
            change stream events before they are processed by the connector
        cursor.oversize.handling.mode:
          type: string
          enum:
            - skip
            - split
          description: >-
            The strategy used to handle change events for documents exceeding
            specified BSON size. 'Skip' ignores oversized documents, 'Split'
            breaks them into smaller chunks
          default: skip
        cursor.oversize.skip.threshold:
          type: integer
          minimum: 1000000
          maximum: 16000000
          description: >-
            The maximum allowed size in bytes of the stored document for which
            change events are processed. This includes both the size before and
            after the database operation, specifically this limits the size of
            fullDocument and fullDocumentBeforeChange fields of MongoDB change
            events
          default: 16000000
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - mongodb.connection.string.user.defined
        - database.include.list
        - collection.include.list.user.defined
        - signal.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    MysqlSourceConfig:
      type: object
      title: MySQL
      description: Configuration properties for the MySQL source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: MySQL Hostname. For example, mysqldb.something.rds.amazonaws.com
        database.port.user.defined:
          type: string
          description: MySQL Port. For example, 3306
          default: '3306'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.include.list.user.defined:
          type: string
          description: Databases to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including database and table name
            (e.g., 'mydb.streamkap_signal'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        column.include.list.toggled:
          type: boolean
          description: >-
            Toggle between Inclusion (include only selected columns) and
            Exclusion (exclude selected columns). Defaults to Inclusion (On).
          default: true
        column.include.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be included in
            change event record values. Fully-qualified names for columns are of
            the form schemaName[.]tableName[.](columnName1|columnName2)
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The database containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        database.connectionTimeZone:
          type: string
          enum:
            - SERVER
            - UTC
            - Africa/Cairo
            - ' Asia/Riyadh'
            - Africa/Casablanca
            - Asia/Seoul
            - Africa/Harare
            - Asia/Shanghai
            - Africa/Monrovia
            - Asia/Singapore
            - Africa/Nairobi
            - Asia/Taipei
            - Africa/Tripoli
            - Asia/Tehran
            - Africa/Windhoek
            - Asia/Tokyo
            - America/Araguaina
            - Asia/Ulaanbaatar
            - America/Asuncion
            - Asia/Vladivostok
            - America/Bogota
            - Asia/Yakutsk
            - America/Buenos_Aires
            - Asia/Yerevan
            - America/Caracas
            - Atlantic/Azores
            - America/Chihuahua
            - Australia/Adelaide
            - America/Cuiaba
            - Australia/Brisbane
            - America/Denver
            - Australia/Darwin
            - America/Fortaleza
            - Australia/Hobart
            - America/Guatemala
            - Australia/Perth
            - America/Halifax
            - Australia/Sydney
            - America/Manaus
            - Brazil/East
            - America/Matamoros
            - Canada/Newfoundland
            - America/Monterrey
            - Canada/Saskatchewan
            - America/Montevideo
            - Canada/Yukon
            - America/Phoenix
            - Europe/Amsterdam
            - America/Santiago
            - Europe/Athens
            - America/Tijuana
            - Europe/Dublin
            - Asia/Amman
            - Europe/Helsinki
            - Asia/Ashgabat
            - Europe/Istanbul
            - Asia/Baghdad
            - Europe/Kaliningrad
            - Asia/Baku
            - Europe/Moscow
            - Asia/Bangkok
            - Europe/Paris
            - Asia/Beirut
            - Europe/Prague
            - Asia/Calcutta
            - Europe/Sarajevo
            - Asia/Damascus
            - Pacific/Auckland
            - Asia/Dhaka
            - Pacific/Fiji
            - Asia/Irkutsk
            - Pacific/Guam
            - Asia/Jerusalem
            - Pacific/Honolulu
            - Asia/Kabul
            - Pacific/Samoa
            - Asia/Karachi
            - US/Alaska
            - Asia/Kathmandu
            - US/Central
            - Asia/Krasnoyarsk
            - US/Eastern
            - Asia/Magadan
            - US/East-Indiana
            - Asia/Muscat
            - US/Pacific
            - Asia/Novosibirsk
          description: >-
            Set the connection timezone. If set to SERVER, the source will
            detect the connection time zone from the values configured on the
            MySQL server session variables 'time_zone' or 'system_time_zone' 
          default: SERVER
        snapshot.gtid:
          type: string
          enum:
            - 'Yes'
            - 'No'
          description: >-
            Whether or not to use a read-only connection. Requires GTID mode to
            be enabled on the source database.
          default: 'Yes'
        SourceRegexSupport.enabled:
          type: boolean
          description: >-
            Enable regex support. Useful for merging multiple tables into the
            same output topic. NOTE: most times when regex support is enabled
            there will be 100s of 1000s of tables and "Capture Only Captured
            Tables DDL?" must also be enabled.
          default: false
        transforms.SourceRegexSupport.regex.replacement:
          type: string
          description: Replacement string for matching regex snippets.
          default: _REGEX_
        transforms.SourceRegexSupport.key.field.template:
          type: string
          description: >-
            Regex support key field template. An extra key field is needed to
            ensure unique data across all tables. Use this template with
            available variables: database, schema, table, sourceId
          default: '{{database}}.{{table}}'
        transforms.SourceRegexSupport.metadata.field.name:
          type: string
          description: >-
            Name of the extra metadata field to store source information and
            ensure uniqueness across all tables when regex support is enabled.
          default: _streamkap_source_metadata
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.include.list.user.defined
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    OracleSourceConfig:
      type: object
      title: Oracle
      description: Configuration properties for the Oracle source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: Oracle Hostname Or IP address
        database.port.user.defined:
          type: string
          description: Oracle Port. For example, 1521
          default: '1521'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.dbname:
          type: string
          description: >-
            Database from which to stream data. If you're working with container
            databases (CDB), this should be the CDB name.
        database.pdb.name:
          type: string
          description: >-
            Pluggable database from which to stream data. Use this for container
            database (CDB) installations only.
        schema.include.list:
          type: string
          description: Schemas to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including schema and table name (e.g.,
            'MYSCHEMA.STREAMKAP_SIGNAL'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - schema.include.list
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    OracleawsSourceConfig:
      type: object
      title: Oracle RDS
      description: Configuration properties for the Oracle RDS source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: Oracle Hostname Or IP address
        database.port.user.defined:
          type: string
          description: Oracle Port. For example, 1521
          default: '1521'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.dbname:
          type: string
          description: Database from which to stream data.
        schema.include.list:
          type: string
          description: Schemas to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including schema and table name (e.g.,
            'MYSCHEMA.STREAMKAP_SIGNAL'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - schema.include.list
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    PlanetscaleSourceConfig:
      type: object
      title: Planetscale Vitess
      description: Configuration properties for the Planetscale Vitess source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: IP address or hostname of the PlanetScale database server (VTGate).
        database.port.user.defined:
          type: string
          description: Integer port number of the PlanetScale database server (VTGate).
          default: '443'
        database.user:
          type: string
          description: Username of the PlanetScale database server (VTGate).
        database.password:
          type: string
          format: password
          description: Password of the PlanetScale database server (VTGate).
        vitess.keyspace:
          type: string
          description: The name of the keyspace from which to stream the changes.
        vitess.tablet.type:
          type: string
          enum:
            - MASTER
            - REPLICA
            - RDONLY
          description: The type of Tablet (hence MySQL) from which to stream the changes
          default: MASTER
        converter.tinyintBool.user.defined:
          type: string
          description: Convert tinyInt(1) columns to boolean
          default: false
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - vitess.keyspace
        - table.include.list.user.defined
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    PostgresqlSourceConfig:
      type: object
      title: PostgreSQL
      description: Configuration properties for the PostgreSQL source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: >-
            PostgreSQL Hostname. For example,
            postgres.something.rds.amazonaws.com
        database.port.user.defined:
          type: string
          description: PostgreSQL Port. For example, 5432
          default: '5432'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.dbname:
          type: string
          description: Database from which to stream data
        snapshot.read.only.user.defined:
          type: string
          enum:
            - 'Yes'
            - 'No'
          description: >-
            When connecting to a read replica PostgreSQL database, this must be
            set to 'Yes' to support Streamkap snapshots
          default: 'Yes'
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including schema and table name (e.g.,
            'public.streamkap_signal'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        column.include.list.toggled:
          type: boolean
          description: >-
            Toggle between Inclusion (include only selected columns) and
            Exclusion (exclude selected columns). Defaults to Inclusion (On).
          default: true
        SourceRegexSupport.enabled:
          type: boolean
          description: >-
            Enable regex support. Useful for merging multiple tables into the
            same output topic
          default: false
        transforms.SourceRegexSupport.regex.replacement:
          type: string
          description: Replacement string for matching regex snippets.
          default: _REGEX_
        transforms.SourceRegexSupport.key.field.template:
          type: string
          description: >-
            Regex support key field template. An extra key field is needed to
            ensure unique data across all tables. Use this template with
            available variables: database, schema, table, sourceId
          default: '{{database}}.{{table}}'
        transforms.SourceRegexSupport.metadata.field.name:
          type: string
          description: >-
            Name of the extra metadata field to store source information and
            ensure uniqueness across all tables when regex support is enabled.
          default: _streamkap_source_metadata
        column.include.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be included in
            change event record values. Fully-qualified names for columns are of
            the form schemaName[.]tableName[.](columnName1|columnName2)
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        slot.name:
          type: string
          description: The name of the replication slot for the connector to use.
          default: streamkap_pgoutput_slot
        publication.name:
          type: string
          description: The name of the publication for the connector to use.
          default: streamkap_pub
        schema.include.list:
          type: string
          description: >-
            Comma-separated schemas to capture from this database. Tables inside
            the listed schemas can be picked individually on the next step.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        database.sslmode:
          type: string
          enum:
            - require
            - disable
          description: Whether to use an encrypted connection to the PostgreSQL server
          default: require
        include.source.db.name.in.table.name.user.defined:
          type: boolean
          description: Changes the format of topics to 'DatabaseName_TopicName'
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        streamkap.snapshot.large.table.threshold:
          type: integer
          minimum: 1
          maximum: 64000
          description: >-
            The threshold in MB for a Large Table to require multiple chunks to
            be read in parallel.
          default: 20000
        streamkap.snapshot.custom.table.config.user.defined:
          type: string
          description: >-
            Explicitly set nb of parallel chunks for tables. Format:
            {"db.Some_Tbl": {"chunks": 5}}. This allows manual settings for
            parallelization when stats are outdated and estimated table size
            cannot be computed reliably.
        streamkap.snapshot.parallelism:
          type: integer
          minimum: 1
          maximum: 10
          description: How many parallel chunk requests to send to the source DB.
          default: 1
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - slot.name
        - publication.name
        - schema.include.list
        - table.include.list.user.defined
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    RedisSourceConfig:
      type: object
      title: Redis
      description: Configuration properties for the Redis source connector.
      properties:
        connector.class.type:
          type: string
          enum:
            - Stream
            - Keys
          description: Type of Redis source connector
          default: Stream
        redis.host.user.defined:
          type: string
          description: Redis hostname (e.g., redis.example.com or 127.0.0.1)
        redis.port.user.defined:
          type: string
          description: Redis port number
          default: '6379'
        redis.username:
          type: string
          description: Redis username (optional, for Redis 6+ ACL)
        redis.password:
          type: string
          format: password
          description: Redis password (optional)
        ssl.enabled:
          type: boolean
          description: Enable TLS/SSL for secure connections
          default: true
        redis.stream.name:
          type: string
          description: Name of the Redis stream to read from
        redis.stream.offset.user.defined:
          type: string
          enum:
            - Latest
            - Earliest
          description: Starting point for reading from the stream
          default: Latest
        redis.stream.delivery.user.defined:
          type: string
          enum:
            - At Least Once
            - At Most Once
          description: Delivery guarantee mode
          default: At Least Once
        redis.stream.block.seconds.user.defined:
          type: integer
          minimum: 1
          maximum: 60
          description: Block duration when waiting for new messages
          default: 1
        redis.stream.consumer.group:
          type: string
          description: Consumer group name for coordinating multiple consumers
          default: kafka-consumer-group
        redis.stream.consumer.name.user.defined:
          type: string
          description: Base name for consumer instances
          default: consumer
        redis.keys.pattern.user.defined:
          type: string
          description: Key pattern to monitor (e.g., user:*, order:*, or * for all keys)
          default: '*'
        redis.keys.timeout.seconds.user.defined:
          type: integer
          minimum: 60
          maximum: 3600
          description: Idle timeout before connector stops if no activity
          default: 300
        mode:
          type: string
          enum:
            - LIVE
            - LIVEONLY
          description: >-
            LIVE performs initial snapshot then streams updates. LIVEONLY only
            streams updates.
          default: LIVE
        topic.use.stream.name:
          type: boolean
          description: >-
            Use Redis stream name as Kafka topic name (only for Stream
            connectors)
          default: false
        topic.user.defined:
          type: string
          description: Kafka topic name to publish messages to
        tasks.max:
          type: integer
          minimum: 1
          maximum: 10
          description: 'Number of parallel tasks (Stream: 1-10, Keys: always 1)'
          default: 1
      required:
        - redis.host.user.defined
        - redis.port.user.defined
        - redis.username
        - redis.password
        - redis.stream.name
        - redis.stream.consumer.group
        - redis.stream.consumer.name.user.defined
        - redis.keys.pattern.user.defined
        - topic.user.defined
    S3SourceConfig:
      type: object
      title: S3
      description: Configuration properties for the S3 source connector.
      properties:
        format:
          type: string
          enum:
            - json
            - csv
            - avro
          description: The input file format
          default: json
        csv.has.headers:
          type: boolean
          description: >-
            When enabled, treat the first row of each CSV file as column names.
            When disabled, columns are auto-generated as column1, column2, ...
          default: true
        topic.routing.enabled:
          type: boolean
          description: >-
            When enabled, derive the Kafka topic name per file from the S3 key.
            When disabled, all files go to the single default topic.
          default: false
        topic.routing.folder.skip:
          type: integer
          minimum: 0
          description: >-
            Number of leading path segments to drop from the S3 key before using
            folders for the topic name. Example: with key
            'archive/public/users/file.csv' set 2 to drop 'archive/public'.
          default: 0
        topic.routing.folder.levels:
          type: integer
          minimum: 0
          description: >-
            Number of folder segments (after the skip) to include in the topic
            name, joined with dots. Set 0 to skip folder-based routing entirely.
          default: 0
        topic.routing.advanced.expression:
          type: string
          description: >-
            ScEL expression for building the topic suffix. When set, overrides
            Folder Skip and Folder Levels. The connector ID is always prepended.
            See the S3 Source documentation for available functions and
            examples.
          default: ''
        topic.postfix:
          type: string
          description: >-
            The default topic name suffix. When Dynamic Topic Routing is
            disabled, all files are streamed to this single topic. When enabled,
            this is used as a fallback for files that do not match the routing
            rules.
          default: default
        topic.include.list.user.defined:
          type: string
          description: >-
            Topics produced by this S3 source. Populated automatically as topics
            are discovered.
          default: ''
        aws.access.key.id:
          type: string
          description: The AWS Access Key ID used to connect to S3
          default: ''
        aws.secret.access.key:
          type: string
          format: password
          description: The AWS Secret Access Key used to connect to S3
          default: ''
        aws.s3.region:
          type: string
          enum:
            - value: eu-west-2
              label: Europe (London) — eu-west-2
            - value: eu-west-1
              label: Europe (Ireland) — eu-west-1
            - value: eu-central-1
              label: Europe (Frankfurt) — eu-central-1
            - value: ap-south-1
              label: Asia Pacific (Mumbai) — ap-south-1
            - value: ap-northeast-2
              label: Asia Pacific (Seoul) — ap-northeast-2
            - value: ap-northeast-1
              label: Asia Pacific (Tokyo) — ap-northeast-1
            - value: ap-southeast-1
              label: Asia Pacific (Singapore) — ap-southeast-1
            - value: ap-southeast-2
              label: Asia Pacific (Sydney) — ap-southeast-2
            - value: us-east-1
              label: US East (N. Virginia) — us-east-1
            - value: us-east-2
              label: US East (Ohio) — us-east-2
            - value: us-west-1
              label: US West (N. California) — us-west-1
            - value: us-west-2
              label: US West (Oregon) — us-west-2
          description: The AWS region to be used
          default: us-west-2
        aws.s3.bucket.name:
          type: string
          description: The S3 Bucket to use
          default: ''
        aws.s3.bucket.prefix:
          type: string
          description: >-
            Prefix for S3 object keys to scan (e.g. "data/2024/"). Can be used
            to specify a directory.
          default: file-pulse/
        fs.scan.interval.ms:
          type: integer
          minimum: 100
          maximum: 100000
          description: The interval in milliseconds at which to scan for new files.
          default: 10000
        fs.cleanup.policy.class.user.defined:
          type: string
          enum:
            - Log
            - Delete
          description: >-
            The policy to use for cleaning up files after processing. Log marks
            files as processed without deleting. Delete removes files from S3
            after processing.
          default: Log
        tasks.max:
          type: integer
          minimum: 1
          maximum: 10
          description: The maximum number of active tasks
          default: 5
      required:
        - aws.access.key.id
        - aws.secret.access.key
    SalesforceWebhookSourceConfig:
      type: object
      title: Salesforce CDC
      description: Configuration properties for the Salesforce CDC source connector.
      properties:
        webhook.url:
          type: string
          description: Webhook URL for Apex triggers. Generated after source is created.
          default: ''
        api.key:
          type: string
          format: password
          description: >-
            API Key for webhook authentication. Generated after source is
            created.
          default: <API_KEY>
        camel.source.snapshot.salesforce.instance.url:
          type: string
          description: >-
            Salesforce instance URL (e.g., https://myorg.my.salesforce.com or
            https://myorg.lightning.force.com)
          default: ''
        camel.source.snapshot.salesforce.auth.client.id:
          type: string
          description: >-
            OAuth2 Consumer Key from your Salesforce Connected App / External
            Client App
          default: ''
        camel.source.snapshot.salesforce.auth.client.secret:
          type: string
          format: password
          description: >-
            OAuth2 Consumer Secret from your Salesforce Connected App / External
            Client App
          default: ''
        camel.source.snapshot.salesforce.auth.username:
          type: string
          description: >-
            Salesforce username (optional, needed only if client_credentials
            flow is not enabled)
          default: ''
        camel.source.snapshot.salesforce.auth.password:
          type: string
          format: password
          description: >-
            Salesforce password + security token (optional, needed only if
            client_credentials flow is not enabled)
          default: ''
        topic.include.list.user.defined:
          type: string
          description: >-
            Salesforce objects to capture. Select the objects you want to
            receive change events for.
          default: Account,Contact,Lead,Opportunity
        camel.source.cdc.enabled:
          type: boolean
          description: >-
            Enable native Salesforce CDC subscription. When enabled, the
            connector subscribes directly to Salesforce change events without
            needing Apex triggers.
          default: true
        camel.source.payload.router.unknown.type.behavior:
          type: string
          enum:
            - DEFAULT_TOPIC
            - SKIP
            - FAIL
          description: How to handle events for unselected objects
          default: DEFAULT_TOPIC
        camel.source.payload.router.unknown.type.default.topic:
          type: string
          description: Topic for events from unselected objects
          default: unknown
        camel.source.payload.router.flatten.detail:
          type: boolean
          description: >-
            Flatten nested record fields to top-level. Recommended for most
            destinations.
          default: true
        camel.source.payload.router.flatten.detail.prefix:
          type: string
          description: >-
            Prefix for flattened fields (empty = no prefix, Salesforce field
            names like 'Name', 'BillingCity' are used directly)
          default: ''
        camel.source.payload.router.include.event:
          type: boolean
          description: >-
            Include change metadata (ChangeEventHeader) in output. Disable for
            upsert/state-table use cases.
          default: false
        camel.source.dlq.enabled:
          type: boolean
          description: Enable dead letter queue for failed records
          default: true
      required:
        - camel.source.snapshot.salesforce.instance.url
        - camel.source.snapshot.salesforce.auth.client.id
        - camel.source.snapshot.salesforce.auth.client.secret
    SqlserverawsSourceConfig:
      type: object
      title: SQL Server
      description: Configuration properties for the SQL Server source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: >-
            The Endpoint of the SQL Server database server. For example,
            sqlserverdb.abcdefgh.us-west-2.rds.amazonaws.com
        database.port.user.defined:
          type: string
          description: SQL Server Port. For example, 1433
          default: '1433'
        database.encrypt:
          type: boolean
          description: Use TLS encryption with the SQL Server?
          default: true
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.names:
          type: string
          description: Database to stream from.
        schema.include.list:
          type: string
          description: Schemas to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Path to the signal table as schema.table (e.g.,
            'dbo.streamkap_signal'). The database name will be added
            automatically. This table is used for incremental snapshotting.
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
          default: streamkap
        schema.history.internal.store.only.captured.databases.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical databases in the database instance or only captured
            databases. Enabling this when you have many databases in your
            instance can improve performance and avoid timeouts.
          default: false
        schema.history.internal.store.only.captured.tables.ddl:
          type: string
          description: >-
            Specifies whether the connector records schema structures from all
            logical tables in the captured schemas or databases, or only
            captured tables. Enabling this when you have many tables can improve
            performance and avoid timeouts.
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        streamkap.snapshot.parallelism:
          type: integer
          minimum: 1
          maximum: 50
          description: How many parallel chunk requests to send to the source DB.
          default: 1
        streamkap.snapshot.large.table.threshold:
          type: integer
          minimum: 1
          maximum: 64000
          description: >-
            The threshold in MB for a Large Table to require multiple chunks to
            be read in parallel.
          default: 20000
        streamkap.snapshot.custom.table.config.user.defined:
          type: string
          description: >-
            Explicitly set nb of parallel chunks for tables. Format:
            {"db.Some_Tbl": {"chunks": 5}}. This allows manual settings for
            parallelization when stats are outdated and estimated table size
            cannot be computed reliably.
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.names
        - schema.include.list
        - table.include.list.user.defined
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    SupabaseSourceConfig:
      type: object
      title: Supabase
      description: Configuration properties for the Supabase source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: >-
            PostgreSQL Hostname. For example,
            postgres.something.rds.amazonaws.com
        database.port.user.defined:
          type: string
          description: PostgreSQL Port. For example, 5432
          default: '5432'
        database.user:
          type: string
          description: Username to access the database
        database.password:
          type: string
          format: password
          description: Password to access the database
        database.dbname:
          type: string
          description: Database from which to stream data
        snapshot.read.only.user.defined:
          type: string
          enum:
            - 'Yes'
            - 'No'
          description: >-
            When connecting to a read replica PostgreSQL database, this must be
            set to 'Yes' to support Streamkap snapshots
          default: 'Yes'
        signal.data.collection.schema.or.database:
          type: string
          description: >-
            Full path to the signal table including schema and table name (e.g.,
            'public.streamkap_signal'). This table is used for incremental
            snapshotting. Follow the documentation for creating this table.
        column.include.list.toggled:
          type: boolean
          description: >-
            Toggle between Inclusion (include only selected columns) and
            Exclusion (exclude selected columns). Defaults to Inclusion (On).
          default: true
        column.include.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be included in
            change event record values. Fully-qualified names for columns are of
            the form schemaName[.]tableName[.](columnName1|columnName2)
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        heartbeat.enabled:
          type: boolean
          description: >-
            When enabled, the connector sends periodic heartbeat messages to a
            Kafka topic to track connector liveness. In read-write mode, the
            connector also periodically writes to the 'streamkap_heartbeat'
            table in the source database to keep the transaction log active —
            this table must be created before enabling. See the Streamkap
            documentation for table setup instructions.
          default: true
        heartbeat.data.collection.schema.or.database:
          type: string
          description: >-
            The schema containing the 'streamkap_heartbeat' table. This table
            must be created before enabling heartbeat — see the Streamkap
            documentation for setup instructions.
        slot.name:
          type: string
          description: The name of the replication slot for the connector to use.
          default: streamkap_pgoutput_slot
        publication.name:
          type: string
          description: The name of the publication for the connector to use.
          default: streamkap_pub
        schema.include.list:
          type: string
          description: Schemas to include.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        database.sslmode:
          type: string
          enum:
            - require
            - disable
          description: Whether to use an encrypted connection to the PostgreSQL server
          default: require
        include.source.db.name.in.table.name.user.defined:
          type: boolean
          description: Changes the format of topics to 'DatabaseName_TopicName'
          default: false
        binary.handling.mode:
          type: string
          enum:
            - value: bytes
              label: Bytes
            - value: base64
              label: Base64
            - value: base64-url-safe
              label: Base64 (URL-safe)
            - value: hex
              label: Hex
          description: >-
            Specifies how the data for binary columns e.g. blob, binary,
            varbinary should be represented. This setting depends on what the
            destination is. See the documentation for more details.
          default: bytes
        transforms.InsertStaticKey1.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey1.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue1.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue1.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        transforms.InsertStaticKey2.static.field:
          type: string
          description: The name of the static field to be added to the message key.
        transforms.InsertStaticKey2.static.value:
          type: string
          description: The value of the static field to be added to the message key.
        transforms.InsertStaticValue2.static.field:
          type: string
          description: The name of the static field to be added to the message value.
        transforms.InsertStaticValue2.static.value:
          type: string
          description: The value of the static field to be added to the message value.
        predicates.IsTopicToEnrich.pattern:
          type: string
          description: Regex pattern to match topics for enrichment.
          default: $^
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - database.dbname
        - signal.data.collection.schema.or.database
        - heartbeat.data.collection.schema.or.database
        - slot.name
        - publication.name
        - schema.include.list
        - table.include.list.user.defined
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    VitessSourceConfig:
      type: object
      title: Vitess
      description: Configuration properties for the Vitess source connector.
      properties:
        database.hostname.user.defined:
          type: string
          description: IP address or hostname of the Vitess database server (VTGate).
        database.port.user.defined:
          type: string
          description: Integer port number of the Vitess database server (VTGate).
          default: '15991'
        database.user:
          type: string
          description: >-
            An optional username of the Vitess database server (VTGate). If not
            configured, unauthenticated VTGate gRPC is used.
        database.password:
          type: string
          format: password
          description: >-
            An optional password of the Vitess database server (VTGate). If not
            configured, unauthenticated VTGate gRPC is used.
        vitess.keyspace.user.defined:
          type: string
          description: The name of the keyspace from which to stream the changes.
        vitess.tablet.type:
          type: string
          enum:
            - MASTER
            - REPLICA
            - RDONLY
          description: The type of Tablet (hence MySQL) from which to stream the changes
          default: MASTER
        vitess.vtctld.host.user.defined:
          type: string
          description: IP address or hostname of the VTCtld server.
        vitess.vtctld.port.user.defined:
          type: string
          description: Integer port number of the VTCtld server.
          default: '15999'
        vitess.vtctld.user:
          type: string
          description: The username of the VTCtld server.
        vitess.vtctld.password:
          type: string
          format: password
          description: The password of the VTCtld database server.
        table.include.list.user.defined:
          type: string
          description: Source tables to sync.
        ssh.enabled:
          type: boolean
          description: >-
            Streamkap will connect to SSH server in your network which has
            access to your database. This is necessary if Streamkap cannot
            connect directly to your database.
          default: false
        ssh.host:
          type: string
          description: Hostname of your SSH server
        ssh.port:
          type: string
          description: Port of your SSH server
          default: '22'
        ssh.user:
          type: string
          description: User that allows Streamkap to connect to SSH server
          default: streamkap
        column.exclude.list.user.defined:
          type: string
          description: >-
            An optional, comma-separated list of regular expressions that match
            the fully-qualified names of columns that should be excluded from
            change event record values. Fully-qualified names for columns are of
            the form schemaName.tableName.columnName.
        ssh.public.key.user.displayed:
          type: string
          description: Public key to add to SSH server
          default: <SSH.PUBLIC.KEY>
      required:
        - database.hostname.user.defined
        - database.port.user.defined
        - database.user
        - database.password
        - vitess.keyspace.user.defined
        - vitess.vtctld.host.user.defined
        - vitess.vtctld.port.user.defined
        - vitess.vtctld.user
        - vitess.vtctld.password
        - table.include.list.user.defined
        - ssh.host
        - ssh.port
        - ssh.user
        - ssh.public.key.user.displayed
    WebhookSourceConfig:
      type: object
      title: Webhook
      description: Configuration properties for the Webhook source connector.
      properties:
        webhook.url:
          type: string
          description: Webhook URL. This URL will be generated after the source is created
          default: ''
        api.key:
          type: string
          description: API. This key will be generated after the source is created
          default: <API_KEY>
        camel.source.camelMessageHeaderKey:
          type: string
          description: >-
            Camel Message Header contains key field details for Kafka Message,
            default is 'key'
          default: key
        topic.include.list.user.defined:
          type: string
          description: Topic names to use as output
          default: default_topic
        format:
          type: string
          enum:
            - json
            - string
          description: The incoming format of the data receive by webhook
          default: json
        transforms.inferSchema.add.delete.field:
          type: boolean
          description: >-
            Whether to add a 'delete' field to the schema when DELETE HTTP
            method is used
          default: false
    ZendeskWebhookSourceConfig:
      type: object
      title: Zendesk Webhook
      description: Configuration properties for the Zendesk Webhook source connector.
      properties:
        webhook.url:
          type: string
          description: Webhook URL. This URL will be generated after the source is created
          default: ''
        api.key:
          type: string
          format: password
          description: API Key. This key will be generated after the source is created
          default: <API_KEY>
        camel.source.payload.router.unknown.type.behavior:
          type: string
          enum:
            - DEFAULT_TOPIC
            - SKIP
            - FAIL
          description: Behavior when an unknown Zendesk event type is encountered
          default: DEFAULT_TOPIC
        camel.source.payload.router.unknown.type.default.topic:
          type: string
          description: >-
            Topic name for unknown event types (used when Unknown Event Behavior
            is DEFAULT_TOPIC)
          default: unknown
        camel.source.payload.router.flatten.detail:
          type: boolean
          description: >-
            Flatten nested detail fields to top-level with a prefix. Recommended
            for destinations that do not support nested objects.
          default: false
        camel.source.payload.router.flatten.detail.prefix:
          type: string
          description: >-
            Prefix for flattened detail fields to avoid name collisions (e.g.
            detail.id becomes detail_id)
          default: detail_
        camel.source.payload.router.include.event:
          type: boolean
          description: >-
            Include the event field in output records. Enable for audit-log use
            cases (append mode). Disable for state-table use cases (upsert mode)
            where only the entity state matters.
          default: true
        camel.source.payload.router.fanout.fields:
          type: string
          description: >-
            Comma-separated list of domain-scoped fields to fan out into
            separate topics (e.g. ticket.tags, ticket.custom_fields,
            organization.tags). When empty, arrays stay inline.
          default: ''
        camel.source.dlq.enabled:
          type: boolean
          description: >-
            Enable dead letter queue. Failed records are written to a DLQ topic
            instead of crashing the connector.
          default: false
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    FronteggHTTPAuthentication:
      type: http
      scheme: bearer

````