S2 Append

S2 Append

Certified

Append records to an S2 stream

Appends records atomically to an S2 stream.

yaml
type: io.kestra.plugin.s2.Append

Append records to a stream

yaml
id: append_records
namespace: company.team

tasks:
  - id: append
    type: io.kestra.plugin.s2.Append
    accessToken: "{{ secret('S2_ACCESS_TOKEN') }}"
    basin: my-basin
    stream: orders
    from:
      - body: "order created"
Properties

S2 access token

Access token used to authenticate with S2

S2 basin

S2 basin containing the streams

Structured data items, either as a map, a list of map, a URI, or a JSON string.

Structured data items can be defined in the following ways:

  • A single item as a map (a document).
  • A list of items as a list of maps (a list of documents).
  • A URI, supported schemes are kestra for internal storage files, file for host local files, and nsfile for namespace files.
  • A JSON String that will then be serialized either as a single item or a list of items.
Definitions
bodystring

Record body

Body of the S2 record.

headersarray
SubTypearray

Record headers

Headers attached to the S2 record.

timestampinteger

Timestamp

Optional record timestamp.

Stream

Name of the S2 stream to append records to.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
Defaulthttps://{basin}.b.s2.dev/v1

Basin endpoint

S2 basin API endpoint. The {basin} placeholder is replaced by the basin name. When the endpoint has no placeholder, the basin is sent in the S2-Basin header, which is how a custom endpoint such as s2-lite is addressed.

End sequence number

Sequence number just after the last appended record.

Start sequence number

Sequence number assigned to the first appended record.

Tail sequence number

Sequence number that will be assigned to the next record on the stream.