YAML Reference
This page lists all components, interpolation variables and interpolation macros that can be used when defining a low code YAML file.
For the technical JSON schema definition that low code manifests are validated against, see here.
Components
DeclarativeSource object
An API source that extracts data according to its declarative components.
Properties:check
Type:streams
arraydynamic_streams
array#/definitions/DynamicDeclarativeStreamversion
stringThe version of the Airbyte CDK used to build and test the source.
schemas
#/definitions/Schemasspec
#/definitions/Specconcurrency_level
#/definitions/ConcurrencyLevelapi_budget
#/definitions/HTTPAPIBudgetmax_concurrent_async_job_count
integerstringMaximum number of concurrent asynchronous jobs to run. This property is only relevant for sources/streams that support asynchronous job execution through the AsyncRetriever (e.g. a report-based stream that initiates a job, polls the job status, and then fetches the job results). This is often set by the API's maximum number of concurrent jobs on the account level. Refer to the API's documentation for this information.
Examples:3
{{ config['max_concurrent_async_job_count'] }}metadata
objectFor internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.
description
stringA description of the connector. It will be presented on the Source documentation page.
AddedFieldDefinition object
Defines the field to add on a record.
Properties:path
arrayList of strings defining the path where to add the value on the record.
Examples:[ "segment_id" ]
[ "metadata", "segment_id" ]
value
stringValue of the new field. Use {{ record['existing_field'] }} syntax to refer to other fields in the record.
Available variables:
Examples:{{ record['updates'] }}{{ record['MetaData']['LastUpdatedTime'] }}{{ stream_partition['segment_id'] }}value_type
#/definitions/ValueTypeType of the value. If not specified, the type will be inferred from the value.
$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
AddFields object
Transformation which adds field to an output record. The path of the added field can be nested.
Properties:fields
array#/definitions/AddedFieldDefinitionList of transformations (path and corresponding value) that will be added to the record.
condition
stringFields will be added if expression is evaluated to True.
Available variables:
Examples:{{ property|string == '' }}{{ property is integer }}{{ property|length > 5 }}{{ property == 'some_string_to_match' }}$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
ApiKeyAuthenticator object
Authenticator for requests authenticated with an API token injected as an HTTP request header.
Properties:api_token
stringThe API key to inject in the request. Fill it in the user inputs.
Available variables:
Examples:{{ config['api_key'] }}Token token={{ config['api_key'] }}header
stringThe name of the HTTP header that will be set to the API key. This setting is deprecated, use inject_into instead. Header and inject_into can not be defined at the same time.
Available variables:
Examples:Authorization
Api-Token
X-Auth-Token
inject_into
#/definitions/RequestOptionConfigure how the API Key will be sent in requests to the source API. Either inject_into or header has to be defined.
Examples:{ "inject_into": "header", "field_name": "Authorization" }{ "inject_into": "request_parameter", "field_name": "authKey" }$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
AuthFlow object
Additional and optional specification object to describe what an 'advanced' Auth flow would need to function.
- A connector should be able to fully function with the configuration as described by the ConnectorSpecification in a 'basic' mode.
- The 'advanced' mode provides easier UX for the user with UI improvements and automations. However, this requires further setup on the server side by instance or workspace admins beforehand. The trade-off is that the user does not have to provide as many technical inputs anymore and the auth process is faster and easier to complete.
auth_flow_type
stringThe type of auth to use
predicate_key
arrayJSON path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.
Example:[ "credentials", "auth_type" ]
predicate_value
stringValue of the predicate_key fields for the advanced auth to be applicable.
Example:Oauth
oauth_config_specification
#/definitions/OAuthConfigSpecification
BasicHttpAuthenticator object
Authenticator for requests authenticated with the Basic HTTP authentication scheme, which encodes a username and an optional password in the Authorization request header.
Properties:username
stringThe username that will be combined with the password, base64 encoded and used to make requests. Fill it in the user inputs.
Available variables:
Examples:{{ config['username'] }}{{ config['api_key'] }}password
stringThe password that will be combined with the username, base64 encoded and used to make requests. Fill it in the user inputs.
Available variables:
Examples:{{ config['password'] }}$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
BearerAuthenticator object
Authenticator for requests authenticated with a bearer token injected as a request header of the form Authorization: Bearer <token>.
api_token
stringToken to inject as request header for authenticating with the API.
Available variables:
Examples:{{ config['api_key'] }}{{ config['token'] }}$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
SelectiveAuthenticator object
Authenticator that selects concrete authenticator based on config property.
Properties:authenticator_selection_path
arrayPath of the field in config with selected authenticator name
Examples:[ "auth" ]
[ "auth", "type" ]
authenticators
objectAuthenticators to select from.
Example:{ "authenticators": { "token": "#/definitions/ApiKeyAuthenticator", "oauth": "#/definitions/OAuthAuthenticator", "jwt": "#/definitions/JwtAuthenticator" } }$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
CheckStream object
Defines the streams to try reading when running a check operation.
Properties:stream_names
arrayNames of the streams to try reading from when running a check operation.
Examples:[ "users" ]
[ "users", "contacts" ]
dynamic_streams_check_configs
array#/definitions/DynamicStreamCheckConfig
DynamicStreamCheckConfig object
Properties:dynamic_stream_name
stringThe dynamic stream name.
stream_count
integerThe number of streams to attempt reading from during a check operation. If
stream_countexceeds the total number of available streams, the minimum of the two values will be used.
CheckDynamicStream object
(This component is experimental. Use at your own risk.) Defines the dynamic streams to try reading when running a check operation.
Properties:stream_count
integerNumbers of the streams to try reading from when running a check operation.
use_check_availability
booleanEnables stream check availability. This field is automatically set by the CDK.
CompositeErrorHandler object
Error handler that sequentially iterates over a list of error handlers.
Properties:error_handlers
arrayList of error handlers to iterate on to determine how to handle a failed response.
$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.
ConcurrencyLevel object
Defines the amount of parallelization for the streams that are being synced. The factor of parallelization is how many partitions or streams are synced at the same time. For example, with a concurrency_level of 10, ten streams or partitions of data will processed at the same time. Note that a value of 1 could create deadlock if a stream has a very high number of partitions.
Properties:default_concurrency
The amount of concurrency that will applied during a sync. This value can be hardcoded or user-defined in the config if different users have varying volume thresholds in the target API.
Type:integerstring
Available variables:
Examples:10
{{ config['num_workers'] or 10 }}max_concurrency
integerThe maximum level of concurrency that will be used during a sync. This becomes a required field when the default_concurrency derives from the config, because it serves as a safeguard against a user-defined threshold that is too high.
Examples:20
100
$parameters
objectSet parameters that are inherited to all children. See the section in the advanced topics for more details.