Docs/Streams/Configuration

Stream Configuration Overview

Use this page when you need to understand how a stream configuration is organized before looking up individual field paths.

A stream configuration defines:

  • what to read in source
  • where to write in target
  • how to control execution with mode, reportingInterval, and optional limits

Saved configurations add metadata such as id and created, but the working shape stays the same.

Core structure

Every stream configuration follows the same top-level pattern:

{
  "name": "My stream",
  "mode": "load",
  "reportingInterval": 5,
  "source": {
    "connections": [],
    "options": {}
  },
  "target": {
    "id": "conn_target",
    "spec": {}
  },
  "limits": {}
}

Mental model:

  • source.connections[] is always an array, even for a single source
  • each source connection chooses one source family: database fields, s3, or files
  • target.spec always contains exactly one target family: db, files, or s3
  • limits is optional and is mainly used for bounded runs and validation

Annotated example

{
  "name": "PostgreSQL to MySQL",
  "mode": "load",
  "reportingInterval": 3,
  "source": {
    "connections": [
      {
        "connectionId": "conn_postgres_prod",
        "database": "postgres",
        "tables": [
          { "name": "public.actor" }
        ]
      }
    ],
    "options": {
      "dataBundleSize": 1000
    }
  },
  "target": {
    "id": "conn_mysql_target",
    "spec": {
      "db": {
        "database": "testdb",
        "schemaPolicy": "create_missing_only",
        "writeMode": "upsert"
      }
    }
  }
}

Read it as:

  • name, mode, and reportingInterval define the run at the top level
  • source.connections[0] selects one stored source connection and scopes what to read from it
  • source.options adds execution settings that belong to the read side
  • target.id selects the destination connection
  • target.spec.db tells DBConvert Streams to write into a database target

Source vs target

source and target are intentionally asymmetric:

  • source.connections[] can contain one or more connections
  • each source connection carries its own scope, such as selected tables, a manifest path, or local file paths
  • target always points to one destination connection at a time
  • target.spec decides how that destination should be written to

Which page to open next

Verification

Before saving or using a payload:

  • confirm it uses source.connections[] rather than an old flat source.id shape
  • confirm each source connection uses only one source family
  • confirm target.spec contains exactly one family object
  • confirm saved configs add metadata such as id and created, but your working payload does not depend on those fields