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
array
dynamic_streams
array
#/definitions/DynamicDeclarativeStream
version
string
The version of the Airbyte CDK used to build and test the source.
schemas
#/definitions/Schemas
spec
#/definitions/Spec
concurrency_level
#/definitions/ConcurrencyLevel
api_budget
#/definitions/HTTPAPIBudget
max_concurrent_async_job_count
integerstring
Maximum 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
object
For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.
description
string
A 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
array
List of strings defining the path where to add the value on the record.
Examples:[ "segment_id" ]
[ "metadata", "segment_id" ]
value
string
Value 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/ValueType
Type of the value. If not specified, the type will be inferred from the value.
$parameters
object
Set 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/AddedFieldDefinition
List of transformations (path and corresponding value) that will be added to the record.
condition
string
Fields 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
object
Set 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
string
The 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
string
The 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/RequestOption
Configure 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
object
Set 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
string
The type of auth to use
predicate_key
array
JSON path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.
Example:[ "credentials", "auth_type" ]
predicate_value
string
Value 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
string
The 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
string
The 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
object
Set 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
string
Token to inject as request header for authenticating with the API.
Available variables:
Examples:{{ config['api_key'] }}
{{ config['token'] }}
$parameters
object
Set 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
array
Path of the field in config with selected authenticator name
Examples:[ "auth" ]
[ "auth", "type" ]
authenticators
object
Authenticators to select from.
Example:{ "authenticators": { "token": "#/definitions/ApiKeyAuthenticator", "oauth": "#/definitions/OAuthAuthenticator", "jwt": "#/definitions/JwtAuthenticator" } }
$parameters
object
Set 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
array
Names 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
string
The dynamic stream name.
stream_count
integer
The number of streams to attempt reading from during a check operation. If
stream_count
exceeds 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
integer
Numbers of the streams to try reading from when running a check operation.
use_check_availability
boolean
Enables 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
array
List of error handlers to iterate on to determine how to handle a failed response.
$parameters
object
Set 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:integer
string
Available variables:
Examples:10
{{ config['num_workers'] or 10 }}
max_concurrency
integer
The 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
object
Set parameters that are inherited to all children. See the section in the advanced topics for more details.