Configure JSON Output

The following table shows the operation and row model

Model Shape Guidance
op Metadata at the record level and column values under before and after objects. Recommended for CDC because it preserves explicit image semantics.
row Column values at the record level rather than nested image objects. Use only when the downstream contract expects a flat row. The table-specific runtime schema defines which image is represented for each operation.
op with flatten=true Nested image names are concatenated with column names, for example before.STATUS and after.STATUS when the delimiter is .. Useful for flat sinks that still need before/after distinction.

Core JSON properties

Property Default / limits Description
$schema ogg:outputFormatJson JSON output configuration schema identifier.
model op; op or row Record model.
beforeImageName before; 1-32 characters Name of the before-image object in operation model.
afterImageName after; 1-32 characters Name of the after-image object in operation model.
omitNullColumnValues false Omits columns whose value is null. This makes missing and null indistinguishable for omitted fields.
treatAllColumnsAsStrings false Writes all column values as strings instead of native JSON primitives.
flatten false Flattens before and after image columns in operation model.
flattenDelimiter 0-32 characters Delimiter between image name and column name when flattened.
delimiter 0-32 characters Formatter record delimiter. WebSocket consumers should normally retain the default array contract described by the AsyncAPI YAML.
staticFields Object / none Adds fields with constant values to output records.
operationStrings INSERT, UPDATE, DELETE, TRUNCATE, UPSERT, DDL Customizes operation labels. Coordinate with every consumer before changing.

Schema and metadata emission

Property Default Effect
includeJSONSchemaRecord true Emits JSON Schema records for stream metadata, object metadata, DML, and DDL records.
includeObjectMetadataRecords true Emits table column metadata.
includeStreamMetadataRecord true Emits producer and source database metadata.

Recommended: Keep all three settings enabled unless a governed external schema registry replaces them. Disabling schema or metadata records reduces network volume but transfers versioning and discovery responsibility to the consumer platform.

Size and large-value controls

Property Default Minimum Maximum Behavior
maxLobSize 64,000 1 18,446,744,073,709,552,000 LOB data is truncated beyond this size in bytes.
maxDDLTextSize 1,000,000 1 4,294,967,295 DDL statement text is truncated beyond this size in bytes.
maxRecordSize 1,048,576 131,072 10,485,760 A record exceeding the size is truncated or chunked.
truncateOrChunk truncate - truncate or chunk Selects oversized-record handling.

When truncateOrChunk is chunk, consume the chunk metadata exactly as defined by the runtime schema. Do not invent a reassembly contract. Load test maximum LOB and DDL sizes because the WebSocket library, proxy, and downstream platform can impose additional frame or message limits.

Metadata fields

Most metaFields entries accept either a Boolean or a string. true includes the field with its default output name, false omits it, and a string includes it under that custom name. env, sys, and tokens accept specialized objects or values defined by the REST schema.

Property Default Meaning
qualifiedTable true Fully qualified object name. Default Data Streams field is normally qual_table.
opType true Operation type. Default field is normally op_type.
opTs true Operation timestamp. Default field is normally op_ts.
pos true Opaque recovery position. Do not disable for a recoverable consumer.
xid true Source transaction identifier.
table false Unqualified table name.
schema false Schema or owner name.
catalog false Catalog name when available.
csn false Source commit sequence number.
opSeqno false Record sequence number within the transaction.
transInd false Transaction indicator B, M, E, or W.
primaryKeys false Primary key column names or values according to the configured formatter contract.
opTsMicroSecs false Operation timestamp as microseconds after the epoch.
currentTs false Current processing timestamp.
currentTsMicroSecs false Current processing timestamp as microseconds after the epoch.
tokens null User tokens, GoldenGate tokens, all tokens, or a configured subset.
env null Selected GoldenGate environment values.
sys null Selected system environment values. Avoid exposing secrets.
"metaFields": {
  "qualifiedTable": true,
  "opType": true,
  "opTs": true,
  "pos": true,
  "xid": true,
  "csn": "csn",
  "opSeqno": "op_seqno",
  "transInd": "trans_ind",
  "primaryKeys": "primary_keys"
}

Explicit string names make the public payload contract clear and avoid relying on formatter default names for optional metadata.