SYNQ Recon Configuration

Type: object

Configuration file format for synq-recon database reconciliation tool

No Additional Properties

Type: string

Short machine identifier for the suite.

Must match regular expression: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$

Must be at least 1 characters long

Must be at most 255 characters long

Type: string

Human-readable title for the suite.

Type: string

Human-readable description.

Type: object

Database connection definitions.

Each additional property must conform to the following schema

Type: object

Connection is a single database connection entry in a connections map.

No Additional Properties

Type: string

Display name for this connection. Defaults to the connection ID (map key).

Type: boolean

When true, the connection is skipped during execution.

Type: integer

Maximum number of parallel queries. Range: 1-256. Defaults to 8.

Value must be greater or equal to 1 and lesser or equal to 256

Type: object

PostgresConf contains PostgreSQL connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: boolean

Disable SSL certificate verification.

Type: object

SnowflakeConf contains Snowflake connection parameters.

No Additional Properties

Type: string

Snowflake account identifier.

Type: string

Virtual warehouse to use for queries.

Type: string

Role to assume after connecting.

Type: string

PEM-encoded private key content for key-pair authentication.

Type: string

Path to a PEM-encoded private key file.

Type: string

Passphrase to decrypt the private key.

Type: array of string

Databases to include. If empty, all accessible databases are scraped.

No Additional Items

Each item of this array must be:

Type: boolean

Use GET_DDL() to retrieve DDL for tables and views.

Type: string

Database containing the ACCOUNT_USAGE schema. Defaults to SNOWFLAKE.

Type: string

Set to "externalbrowser" to use SSO browser-based authentication.

Type: object

BigQueryConf contains BigQuery connection parameters.

No Additional Properties

Type: string

GCP project ID.

Type: string

Region for BigQuery resources.

Type: string

Inline JSON content of the service account key.

Type: string

Path to the service account key JSON file.

Type: array of string

Explicit list of dataset names to scrape. When set, only these datasets are queried
and project-level bigquery.datasets.list permission is not required.

No Additional Items

Each item of this array must be:

Type: object

RedshiftConf contains Amazon Redshift connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: boolean

Estimate table freshness from Redshift query logs instead of metadata.

Type: object

MySQLConf contains MySQL connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: boolean

Disable SSL certificate verification.

Type: object

Additional DSN parameters passed to the driver.

Each additional property must conform to the following schema

Type: string

Type: object

ClickhouseConf contains ClickHouse connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: string

Database to connect to. If empty, all databases are scraped.

Type: boolean

Disable SSL certificate verification.

Type: object

TrinoConf contains Trino / Starburst connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: boolean

Use a plain HTTP connection instead of HTTPS.

Type: array of string

Catalogs to include. Required for most Trino deployments.

No Additional Items

Each item of this array must be:

Type: object

DatabricksConf contains Databricks connection parameters.

No Additional Properties

Type: string

Databricks workspace URL.

Type: string

Personal access token for authentication.

Type: string

OAuth client ID (M2M authentication).

Type: string

OAuth client secret (M2M authentication).

Type: string

SQL warehouse ID to use for queries.

Type: object

MSSQLConf contains Microsoft SQL Server / Azure SQL Database connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: boolean

Trust the server certificate without validation.

Type: string

Encryption mode (e.g. "true", "false", "strict").

Type: string

Federated authentication method (e.g. "ActiveDirectoryDefault").

Type: string

Pre-acquired access token for Azure AD authentication.

Type: string

Azure AD application client ID for service principal auth.

Type: object

OracleConf contains Oracle Database connection parameters.

No Additional Properties

Type: integer

Value must be greater or equal to 1 and lesser or equal to 65535

Type: string

Oracle service name.

Type: boolean

Enable SSL/TLS for the connection.

Type: boolean

Verify the server's SSL certificate.

Type: string

Path to Oracle Wallet directory for authentication.

Type: boolean

Enable Oracle Diagnostics Pack features (AWR, ASH).

Type: object

DuckDBConf contains DuckDB / MotherDuck connection parameters.

No Additional Properties

Type: string

File path, ':memory:' for in-memory, or MotherDuck database name.

Type: string

MotherDuck organization/account name (for cloud mode).

Type: string

MotherDuck authentication token (required for cloud MotherDuck).

Type: object

AthenaConf contains Amazon Athena connection parameters.

No Additional Properties

Type: string

AWS region hosting the Athena service and Glue Data Catalog.

Type: string

Athena workgroup. Defaults to "primary" when empty. Must have a
ResultConfiguration.OutputLocation configured.

Type: string

Glue Data Catalog name. Defaults to "AwsDataCatalog" when empty.

Type: string

Static AWS credentials. Pair accesskeyid with secretaccesskey.

Type: string

Optional STS session token, when accesskeyid+secretaccesskey are
short-lived STS credentials.

Type: string

Named AWS shared-config profile (from ~/.aws/credentials or
~/.aws/config). Used only when static credentials are absent.

Type: string

IAM role ARN to assume via STS. Wraps whichever base credentials
resolved above (or the host's default chain when no other auth is set).

Type: string

External ID required by the role's trust policy. Pair with role_arn.

Type: string

Optional STS session name. Defaults to "synq-athena".

Type: object

Scope filter for include/exclude filtering by Glue catalog, Glue
database, and table. Mapping: ScopeRule.database = Glue catalog,
ScopeRule.schema = Glue database, ScopeRule.table = Glue table/view.

No Additional Properties

Type: array

Include rules. If non-empty, only matching objects are accepted.

No Additional Items

Each item of this array must be:

Type: object

ScopeRuleConf is a single include/exclude rule.

No Additional Properties

Type: string

Database-level pattern (catalog for Athena/Trino/Databricks, project for BigQuery).

Type: string

Schema-level pattern (Glue database for Athena, dataset for BigQuery).

Type: string

Table or view name pattern.

Type: array

Exclude rules. Matching objects are rejected, even if they match an include rule.

No Additional Items

Each item of this array must be:

Type: boolean

Use SHOW CREATE TABLE to retrieve full table DDL (CTAS bodies, Iceberg
TBLPROPERTIES, Hive external LOCATION/SerDe). One Athena query per
table — billed at the 10MB scan minimum each.

Type: boolean

Use SHOW CREATE VIEW to retrieve full view DDL instead of the
rewritten body from informationschema.views.viewdefinition.

Type: boolean

For Iceberg tables, fan out one Athena query per table to read row
count, total file size, snapshot commit timestamp, and partition
columns from the table's $files / $snapshots / $partitions metadata
tables. Hive externals are unaffected.

Type: object

Reconciliation scenario definitions.

Each additional property must conform to the following schema

Type: object

Reconciliation defines a single reconciliation scenario.

No Additional Properties

Type: string

Human-readable title.

Type: string

Human-readable description.

Type: object

Source dataset.

No Additional Properties

Type: string

Connection name (must exist in connections map).

Type: string

Base SQL query (mutually exclusive with 'table'). Supports {{variable_name}} interpolation.

Type: object

Table reference (mutually exclusive with 'query'). Accepts "db.schema.table" string or structured object.

Type: string

Table in dotted format: 'table', 'schema.table', or 'database.schema.table'

Type: object

Structured table reference

Type: string

Database/catalog name

Type: string

Schema/dataset name

Type: string

Table or view name

Must be at least 1 characters long

Type: array of string

Explicit column list (only with 'table'). Mutually exclusive with 'exclude_columns'.

No Additional Items

Each item of this array must be:

Type: array of string

Columns to exclude (only with 'table', resolved at runtime). Mutually exclusive with 'columns'.

No Additional Items

Each item of this array must be:

Type: string

SQL WHERE clause filter (only with 'table'). Applied as WHERE (condition). Supports {{variable_name}} interpolation.

Type: string

Time-travel timestamp. Wraps query with database-specific time-travel syntax.

Type: string

Column used for bisection split points and aggregate grouping.

Type: enum (of string)

Reconciliation mode.

Must be one of:

  • "row_count"
  • "full"
  • "row_checksum"
  • "aggregate"

Type: enum (of string)

Hash algorithm for row checksums.

Must be one of:

  • "auto"
  • "md5"
  • "farm_fingerprint"
  • "xxhash64"

Type: boolean

Automatically match columns case-insensitively.

Type: object

Column name mapping between source and target.

Type: object

Map source column names to target column names (object format)

Each additional property must conform to the following schema

Type: string
Type: array of object

Map source column names to target column names (array format)

No Additional Items

Each item of this array must be:

Type: object

Type: string

Must be at least 1 characters long

Type: string

Must be at least 1 characters long

Type: object

BisectionConfig controls the bisection drill-down behavior.

No Additional Properties

Type: integer

Number of segments per bisection level.

Value must be greater or equal to 2 and lesser or equal to 1024

Type: integer

Stop drilling when segment row count falls below this.

Value must be greater or equal to 1

Type: enum (of string)

Segmentation strategy.

Must be one of:

  • "auto"
  • "quantile"
  • "hash"
  • "time"

Type: string

Column for time-based partitioning (required when strategy is 'time').

Type: enum (of string)

Time truncation granularity.

Must be one of:

  • "hour"
  • "day"
  • "week"
  • "month"
  • "quarter"
  • "year"

Type: object

ReportingConfig controls what level of detail is reported.

No Additional Properties

Type: enum (of string)

Must be one of:

  • "count_only"
  • "with_keys"
  • "detailed"

Type: integer

Value must be greater or equal to 1

Type: object

AggregateConfig defines aggregate comparison settings.

No Additional Properties

Type: array

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

MeasureConfig defines a column + aggregation function pair.

No Additional Properties

Type: string

Must be at least 1 characters long

Type: object

Type: enum (of string)

Single aggregation function

Must be one of:

  • "SUM"
  • "COUNT"
  • "AVG"
  • "MIN"
  • "MAX"
Type: array of enum (of string)

Multiple aggregation functions

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "SUM"
  • "COUNT"
  • "AVG"
  • "MIN"
  • "MAX"

Type: object

Column(s) defining the drill-down hierarchy.

Type: array of string

Hierarchical group columns for drill-down

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

ThresholdConfig defines tolerance for aggregate differences.

No Additional Properties

Type: number

Maximum absolute difference.

Value must be greater or equal to 0

Type: number

Maximum percentage difference (0.1 = 10%).

Value must be greater or equal to 0

Type: enum (of string)

Percentage formula: source, target, or symmetric.

Must be one of:

  • "source"
  • "target"
  • "symmetric"

Type: object

Per group_column threshold overrides.

Each additional property must conform to the following schema

Type: object

ThresholdConfig defines tolerance for aggregate differences.

Same definition as thresholds

Type: object

Per measure threshold overrides, keyed by FUNC(column).

Each additional property must conform to the following schema

Type: object

ThresholdConfig defines tolerance for aggregate differences.

Same definition as thresholds

Type: object

ErrorHandlingConfig controls retry behavior for query failures.

No Additional Properties

Type: string

Per-query timeout as a Go duration string (e.g., '30s', '5m').

Type: integer

Maximum retry attempts for transient query failures.

Value must be greater or equal to 0 and lesser or equal to 10

Type: string

Initial backoff delay before the first retry.

Type: number

Backoff multiplier applied after each retry.

Value must be greater or equal to 1

Type: object

WindowConfig defines time-windowed reconciliation settings.

No Additional Properties

Type: string

Column being windowed.

Type: string

How far back to look from the current time (e.g., '14d', '2h').

Type: enum (of string)

Windowing strategy: 'sliding' or 'fixed'.

Must be one of:

  • "sliding"
  • "fixed"

Type: object

Dynamic cutoff filter. Derives a watermark value from actual data to exclude rows not yet synced.

No Additional Properties

Type: string

Simple: same column for both source and target watermark derivation.

Type: string

Medium: different columns per side.

Type: object

Advanced: full per-side watermark derivation config.

No Additional Properties

Type: string

Column to derive the watermark from (e.g., "createdat", "syncedat").
Required when query is not set.

Type: enum (of string)

Aggregate function for watermark derivation: MAX (default) or MIN.

Must be one of:

  • "MAX"
  • "MIN"

Type: string

Custom SQL query for watermark derivation. Must return a single row with a "watermark" column.
When not set, auto-generated from the dataset at runtime.

Type: object

Advanced: full per-side watermark derivation config.

Same definition as source

Type: enum (of string)

How to combine watermarks when both sides are configured: min, max, source, target.

Must be one of:

  • "min"
  • "max"
  • "source"
  • "target"

Type: enum (of string)

Truncate the combined watermark to a time boundary before applying.

Must be one of:

  • "HOUR"
  • "DAY"
  • "WEEK"
  • "MONTH"
  • "QUARTER"
  • "YEAR"

Type: string

Time offset applied after truncation. Negative durations create a safety buffer (e.g., '-30m').

Type: object

Advanced: custom apply config for WHERE clause generation.

No Additional Properties

Type: object

CutoffApplySide configures WHERE clause generation for one side.

No Additional Properties

Type: string

Column to filter on. When not set, uses the derivation column.

Type: string

Comparison operator. Default: "<=".

Type: object

CutoffApplySide configures WHERE clause generation for one side.

Same definition as source

Type: object

Annotations attached to this reconciliation case. Merged with suite-level annotations.

Type: array of object

Canonical list form. Each entry has a name and optional values.

No Additional Items

Each item of this array must be:

Type: object

Type: string

Must be at least 1 characters long

Must be at most 50 characters long

Type: array of string

Must contain a maximum of 20 items

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Must be at most 50 characters long

Type: object

Map shorthand: key is annotation name; value is null (name-only), a single string, or an array of strings.

Each additional property must conform to the following schema


Type: string

Must be at least 1 characters long

Must be at most 50 characters long

Type: array of string

Must contain a maximum of 20 items

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Must be at most 50 characters long

Type: object

Per-reconciliation setup/teardown.

Each additional property must conform to the following schema

Type: object

Type: object

Type: object

Type: boolean

Whether teardown runs on failure. Inherits from suite level when not set.

Type: boolean

When true, logs setup errors as warnings. Inherits from suite level when not set.

Type: object

Template variables for query interpolation via {{variable_name}} syntax.

Each additional property must conform to the following schema

Type: string

Type: object

Setup queries run once before all reconciliations begin.

Each additional property must conform to the following schema

Type: object
Same definition as reconciliations_additionalProperties_setup_additionalProperties

Type: object

Teardown queries run once after all reconciliations complete.

Each additional property must conform to the following schema

Type: object
Same definition as reconciliations_additionalProperties_setup_additionalProperties

Type: object

SQL file(s) to load and run as setup queries.

Each additional property must conform to the following schema

Type: object
Same definition as reconciliations_additionalProperties_setup_additionalProperties

Type: object

SQL file(s) to load and run as teardown queries.

Each additional property must conform to the following schema

Type: object
Same definition as reconciliations_additionalProperties_setup_additionalProperties

Type: boolean

Whether teardown runs even when reconciliations fail with infrastructure errors.

Type: boolean

When true, logs setup query errors as warnings and continues instead of aborting.

Type: boolean

When true, time reference detection (NOW(), CURRENT_DATE, etc.) returns an error instead of a warning.

Type: object

SYNQ API credentials for sending audit logs.

No Additional Properties

Type: string

OAuth client ID for authenticating with the SYNQ platform.

Type: string

OAuth client secret for authenticating with the SYNQ platform.

Type: string

gRPC endpoint for the SYNQ API (e.g. "developer.synq.io:443").

Type: string

gRPC endpoint for the SYNQ ingest API. Defaults to Endpoint if empty.

Type: string

OAuth token URL. Derived from Endpoint if empty.

Type: object

Suite-level annotations.

Same definition as annotations