tapstateDocs
Reference

DSL fields reference

Schema-generated field lookup for the tapstate/v1 resource contract

Use this page when you are authoring or reviewing a .tap.yml file and need an exact field name, type, required flag, default, or accepted value. Start with Resource grammar to choose a resource kind, then use the matching table here to complete or check its YAML.

The tables are generated from the tapstate-v1.schema.json shipped with the documented release. They describe what that release's YAML contract accepts; they do not prove that every declared field or surface is available in the current preview runtime. For the execution boundary, see Resource grammar.

Top-level resources

FieldTypeRequiredDefaultAccepted valuesDescription
SourceResource.versionconstantyestapstate/v1The grammar version; always "tapstate/v1".
SourceResource.kindconstantyessourceResource kind discriminator.
SourceResource.idstringyesUnique resource id across the workspace; must not contain a dot.
SourceResource.metadataMetadatanoOptional labels and free-text description.
SourceResource.connectorstringyesID of the connector this source reads through (for example, mysql).
SourceResource.configobjectnoConnector connection config; keys are connector-specific.
SourceResource.modeSourceModenocdc, snapshot, stream, file, apiRead mode; may be omitted when the source is only a connection supplier.
SourceResource.tablesarray<TableRef>noTables to read: bare names, /regex/ patterns, or per-table objects.
SourceResource.optionsobjectnoConnector-specific source options; the read mode and start position live in pipeline settings.
SourceResource.srsSrsnoShared Record Store configuration; only valid on cdc sources.
SourceResource.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.
PipelineResource.versionconstantyestapstate/v1The grammar version; always "tapstate/v1".
PipelineResource.kindconstantyespipelineResource kind discriminator.
PipelineResource.idstringyesUnique resource id across the workspace; must not contain a dot.
PipelineResource.metadataMetadatanoOptional labels and free-text description.
PipelineResource.sourcestring or arrayyesIds of pre-created sources this pipeline reads from; at least one is required.
PipelineResource.transformsarray<Step>noOrdered transform steps applied to the source data.
PipelineResource.viewViewBlocknoView configuration that shapes the pipeline output into a queryable result.
PipelineResource.serveServeBlocknoServe configuration that exposes the pipeline output downstream.
PipelineResource.settingsSettingsnoTask-level settings for this pipeline.
PipelineResource.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.
TransformResource.versionconstantyestapstate/v1The grammar version; always "tapstate/v1".
TransformResource.kindconstantyestransformResource kind discriminator.
TransformResource.idstringyesUnique resource id across the workspace; must not contain a dot.
TransformResource.metadataMetadatanoOptional labels and free-text description.
TransformResource.optionsobjectnoTransform-owned extension options.
TransformResource.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.
TransformResource.<body>one transform bodyyesfilter, map, js, union, nest, joinReusable transform logic selected by the type discriminator.
ViewResource.versionconstantyestapstate/v1The grammar version; always "tapstate/v1".
ViewResource.kindconstantyesviewResource kind discriminator.
ViewResource.idstringyesUnique resource id across the workspace; must not contain a dot.
ViewResource.metadataMetadatanoOptional labels and free-text description.
ViewResource.primary_keystringnoName of the column used as the view's primary key.
ViewResource.storageStoragenoWhere and how the view's data is materialized.
ViewResource.schemaViewSchemanoColumn definitions of the view's output schema.
ViewResource.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.
ServeResource.versionconstantyestapstate/v1The grammar version; always "tapstate/v1".
ServeResource.kindconstantyesserveResource kind discriminator.
ServeResource.idstringyesUnique resource id across the workspace; must not contain a dot.
ServeResource.metadataMetadatanoOptional labels and free-text description.
ServeResource.syncarray<SyncElement>noSync publish declarations exposed by this serve surface.
ServeResource.queryarray<QueryElement>noQuery publish declarations exposed by this serve surface.
ServeResource.pusharray<PushElement>noPush publish declarations exposed by this serve surface.
ServeResource.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.

Source and shared fields

FieldTypeRequiredDefaultAccepted valuesDescription
Metadata.labelsobjectnoArbitrary key/value labels attached to the resource for grouping and selection.
Metadata.descriptionstringnoFree-text description of the resource; never identity.
TableRef.Spec.namestringyesLiteral name of the table to select from the source.
TableRef.Spec.filterstringnoCEL row expression that filters which rows of the table are included.
TableRef.Spec.pkarraynoPrimary-key override accepted by the grammar. The current runtime does not execute this field; an upsert still requires a primary key in the discovered source schema.
TableRef.Spec.optionsobjectnoConnector-owned extension options.
Srs.keystringnoOptional identifier that overrides automatic mining-chain derivation. Reuse a value only when compatible CDC sources must share one replay store.
Srs.retentionstringnoHow long captured change data is retained in the replay store.
Srs.schema_evolutionSrsSchemaEvolutionnotrack, ignoreSchema-evolution policy applied as upstream table structures change.
Srs.queryablebooleannoWhether the replay store can be queried directly.
Srs.enabledbooleannotrueWhether the replay store is provisioned; false streams cdc straight to the single consumer with no shared buffering.

Pipeline wiring and settings

FieldTypeRequiredDefaultAccepted valuesDescription
Settings.error_policyErrorPolicynofaildead_letter, skip, failHow the task reacts to record-level errors during processing.
Settings.batch_sizeintegerno1000Number of records processed per batch.
Settings.parallelismintegerno1Number of parallel workers used to process the task.
Settings.schedulestringnoCron-style schedule for running the task; only valid for a bounded read.
Settings.read_modeReadModenosnapshot_and_cdcsnapshot_and_cdc, cdc_only, snapshot_onlyWhat the pipeline reads from a cdc source: full snapshot then changes, changes only, or a one-shot snapshot.
Settings.start_fromstringnolatestWhere to start consuming an incremental tail: earliest, latest, or an ISO-8601 timestamp.
Step.Inline.idstringyesUnique step id within the pipeline; auto-generated for anonymous inline steps.
Step.Inline.fromFromClauseyesThe upstream steps or sources this transform reads from.
Step.Inline.optionsobjectnoTransform-owned extension options.
Step.Inline.experimentalobjectnoExperimental fields, exempt from the v1 compatibility freeze.
Step.Use.idstringnoUnique step id within the pipeline; defaults to the referenced transform name.
Step.Use.usestringyesName of the transform definition to reuse.
Step.Use.fromFromClauseyesThe upstream steps or sources this transform reads from.
Step.Use.optionsobjectnoTransform-owned extension options.
ViewBlock.Inline.idstringyesUnique resource id across the workspace; must not contain a dot.
ViewBlock.Inline.fromFromRefyesThe upstream source this view consumes records from.
ViewBlock.Inline.primary_keystringnoField or fields that uniquely identify a record in this view.
ViewBlock.Inline.storageStoragenoStorage backend used to persist this view.
ViewBlock.Inline.schemaViewSchemanoField layout of the records held by this view.
ViewBlock.Use.idstringnoUnique resource id across the workspace; must not contain a dot. Defaults to the referenced view name.
ViewBlock.Use.usestringyesName of the externally defined view to reuse.
ViewBlock.Use.fromFromRefyesThe upstream source this view consumes records from.
ServeBlock.Inline.idstringnoOptional id for this serve block.
ServeBlock.Inline.fromFromRefyesThe data source this serve block exposes.
ServeBlock.Inline.syncarray<SyncElement>noTables continuously synchronized to the serving layer.
ServeBlock.Inline.queryarray<QueryElement>noRead endpoints exposed for querying the served data.
ServeBlock.Inline.pusharray<PushElement>noPush endpoints that stream changes to downstream consumers.
ServeBlock.Use.idstringnoOptional id for this serve block; defaults to the referenced definition name.
ServeBlock.Use.usestringyesName of the reusable serve definition to use.
ServeBlock.Use.fromFromRefyesThe data source this serve block exposes.

Transform bodies

FieldTypeRequiredDefaultAccepted valuesDescription
TransformBody.Filter.typeconstantyesfilterTransform type discriminator.
TransformBody.Filter.exprstringyesThe CEL boolean expression evaluated against each row.
TransformBody.MapProjection.typeconstantyesmapTransform type discriminator.
TransformBody.MapProjection.fieldsobjectyesOutput fields keyed by name, each mapped by a field rule; declared order is the output order.
TransformBody.Js.typeconstantyesjsTransform type discriminator.
TransformBody.Js.scriptstringyesThe JavaScript source executed for each event.
TransformBody.Union.typeconstantyesunionTransform type discriminator.
TransformBody.Nest.typeconstantyesnestTransform type discriminator.
TransformBody.Nest.primary_keystringnoPrimary key used to group child records under their parent document.
TransformBody.Nest.orderNestOrdernomain_first, sub_firstOrdering applied to nested child records.
TransformBody.Nest.entries_in_memoryintegernoMaximum entries kept in memory at each nest level. Additional entries use the configured backing layer. Omit to use the deployment default.
TransformBody.Nest.max_elements_per_documentintegernoMaximum embedded elements allowed in one assembled document. Exceeding the limit fails the pipeline. Omit to use the deployment default.
TransformBody.Nest.rootNestRootyesThe root stream whose documents receive the nested children.
NestRoot.fromstringyesAlias of the parent stream that anchors this nest tree.
NestRoot.keyarraynoUpsert key fields that identify a parent document for updates.
NestRoot.modestringnoWrite mode for the parent stream, such as append-only or upsert.
NestRoot.trackKeyChangesbooleannoWhen true, moves the assembled document when its root key changes. Requires the source to provide a before image.
NestRoot.embedarray<Embed>noChild streams embedded under each parent document.
Embed.fromstringyesAlias of the nest step's from map that supplies this child's rows.
Embed.onobjectyesMaps this child's join fields to the parent fields they match.
Embed.asEmbedAsyesarray, objectHow the matched child rows are shaped under the parent: a single object or an array.
Embed.pathstringyesTarget field path under the parent where the embedded child is placed.
Embed.arrayKeyarraynoFields that uniquely identify an element within an embedded array.
Embed.ignoreUpdatesbooleannoWhen true, updates to the child rows are not propagated into the parent.
Embed.trackKeyChangesbooleannoWhen true, moves an embedded subtree when its array key, parent key, or child-reference key changes. Requires the source to provide a before image.
Embed.embedarray<Embed>noFurther children embedded beneath this one, forming a nested tree.
TransformBody.Join.typeconstantyesjoinTransform type discriminator.
TransformBody.Join.enginestringyesThe query engine that runs the join, such as duckdb.
TransformBody.Join.sqlstringyesThe SQL query that produces the joined wide table.

View and serve fields

FieldTypeRequiredDefaultAccepted valuesDescription
Storage.hotStorage.HotnoHot in-memory layer settings.
Storage.warmStorage.WarmnoWarm database layer settings.
Storage.coldStorage.ColdnoCold data-lake layer settings.
Storage.Hot.ttlstringyesTime-to-live for hot entries, as a duration string.
Storage.Warm.collectionstringyesDatabase collection that backs the warm layer.
Storage.Warm.indexesarraynoIndexes to create on the warm collection.
Storage.Cold.partition_byarraynoFields to partition cold data by.
ViewSchema.enforcebooleannoWhether the declared view schema is strictly enforced at runtime.
ViewSchema.evolutionstringnoHow the view schema is allowed to evolve over time, such as additive-only.
SyncElement.idstringnoOptional id for this sync element; required only when referenced by a query backend.
SyncElement.sourcestringyesReference to a kind: source connection supplier that provides the target connector and config.
SyncElement.write_modeWriteModenoupsertupsert, appendHow rows are written to the target. Upsert requires a primary key in each selected source table's discovered schema; append is for insert-only delivery.
SyncElement.renameRenameSpecnoRules for renaming the target table and columns relative to the pipeline output.
SyncElement.ddlDdlPolicynofailapply, ignore, failPolicy controlling how schema changes are applied to the target store.
SyncElement.optionsobjectnoConnector-owned extension options.
RenameSpec.mapobjectnoExplicit per-table rename map from source name to target name; takes highest priority.
RenameSpec.caseRenameCasenoupper, lower, camel, pascalCase transform applied to table names before prefix/suffix rules.
RenameSpec.prefixstringnoPrefix prepended to each target table name.
RenameSpec.suffixstringnoSuffix appended to each target table name.
QueryElement.typeQueryTypeyesrest, graphql, mcpThe kind of query this element exposes.
QueryElement.backendstringnoThe sync id whose sink serves this query as an API; omit for parallel egress from the view store.
PushElement.idstringnoOptional id for this push element; defaults to a generated id when omitted.
PushElement.sourcestringyesId of the source resource this egress reads change events from.
PushElement.topicstringnoTarget topic or channel the change events are pushed to.
PushElement.formatPushFormatnoSerialization format used to encode each pushed change event.
PushElement.optionsobjectnoConnector-owned extension options.

Runtime boundary

Schema acceptance does not prove that a connector artifact is installed or that the current runtime executes every declared transform, view, or serve surface. See the resource grammar for the current preview execution boundary.

On this page