
Core Plugins and tasks AssetShipper
CertifiedForward asset lineage to one or more desired destinations.
Core Plugins and tasks AssetShipper
Forward asset lineage to one or more desired destinations.
The Asset Shipper task extracts asset lineage events from the Kestra backend and loads them to desired destinations including OpenLineage and file storage.
The task works incrementally in batches:
- Determines the starting timestamp using either:
- The last successfully processed assert lineage event's timestamp (persisted in KV Store using the
offsetKey) - Current time minus
lookbackPeriodduration if no previous state exists
- The last successfully processed assert lineage event's timestamp (persisted in KV Store using the
- Sends retrieved asset lineage events through configured
assetExporters - Stores the timestamp of the last processed asset lineage event to maintain state between executions
- Subsequent runs continue from the last stored timestamp
This incremental approach ensures reliable asset lineage event forwarding without gaps or duplicates
type: io.kestra.plugin.ee.assets.AssetShipperExamples
Ship asset lineage events to OpenLineage
id: assetShipper
namespace: company.team
triggers:
- id: daily
type: io.kestra.plugin.core.trigger.Schedule
cron: "@daily"
tasks:
- id: logSync
type: io.kestra.plugin.ee.assets.AssetShipper
assetExporters:
- id: file
type: io.kestra.plugin.ee.openlineage.OpenLineageAssetExporter
uri: http://localhost:3000DO
Properties
assetExporters *RequiredNon-dynamic
1List of asset exporters
The list of asset exporters to use for sending asset lineage
Ship asset lineage events to a file inside Kestra's internal storage.
This task is designed to be used when no external tool's asset shipper satisfies requirements. You can ship asset lineage events to the internal storage and use any other Kestra task to send it to a remote location.
Ship asset lineage events to the internal storage
id: assetShipper
namespace: company.team
triggers:
- id: daily
type: io.kestra.plugin.core.trigger.Schedule
cron: "@daily"
tasks:
- id: logSync
type: io.kestra.plugin.ee.assets.AssetShipper
assetExporters:
- id: file
type: io.kestra.plugin.ee.assets.FileAssetExporter
format: JSON
maxLinesPerFile: 100
^[a-zA-Z0-9][a-zA-Z0-9_-]*1IONIONJSONFormat of the exported files
This property defines the format of the exported files.
kestra-log-filePrefix of the log files
This property sets the prefix of the log files name. The full file name will be logFilePrefix-localDateTime.json/ion.
Maximum number of lines per file
This property specifies the maximum number of lines per log file.
Export asset lineage to OpenLineage
Sends Kestra asset lineage events to an OpenLineage-compatible endpoint over HTTP. Uses the asset namespace and id as dataset namespace and name unless a per-asset-type mapping overrides them. Ensure the URI is reachable and accepts OpenLineage events; no authentication is configured here.
Ship asset lineage events to OpenLineage
id: assetShipper
namespace: company.team
triggers:
- id: daily
type: io.kestra.plugin.core.trigger.Schedule
cron: "@daily"
tasks:
- id: logSync
type: io.kestra.plugin.ee.assets.AssetShipper
assetExporters:
- id: file
type: io.kestra.plugin.ee.openlineage.OpenLineageAssetExporter
uri: http://localhost:3000
Ship asset lineage events to OpenLineage, specifying mappings for Table an Dataset asset types
id: assetShipper
namespace: company.team
triggers:
- id: daily
type: io.kestra.plugin.core.trigger.Schedule
cron: "@daily"
tasks:
- id: logSync
type: io.kestra.plugin.ee.assets.AssetShipper
assetExporters:
- id: file
type: io.kestra.plugin.ee.openlineage.OpenLineageAssetExporter
uri: http://localhost:3000
mappings:
io.kestra.plugin.ee.assets.Table:
namespace: namespace
name: name
io.kestra.plugin.ee.assets.Dataset:
namespace: namespace
name: name
^[a-zA-Z0-9][a-zA-Z0-9_-]*1OpenLineage endpoint URI
HTTP destination for lineage events; rendered from the flow context
Dataset field overrides by asset type
Optional map of asset class names to metadata keys for dataset namespace and name; defaults to asset namespace and id
assetNamespace string
Asset namespace to search
The asset namespace to use to filter asset lineage
assetTypes array
Asset types to search
The list of asset types to use to filter asset lineage
delete booleanstring
Delete asset usage after export
The asset shipper will delete the exported asset usage
flowId string
Flow ID to search
The flow identifier to use to filter asset lineage
flowNamespace string
Flow namespace to search
The flow namespace to use to filter asset lineage
lookbackPeriod string
P1DStarting duration before now
If no previous execution or state exists, the fetch start date is set to the current time minus this duration
offsetKey string
Prefix of the KVStore key
The prefix of the KVStore key that contains the last execution's end fetched date
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
taskId string
Task ID to search
The task identifier to use to filter asset lineage
Outputs
endFetchedDate string
date-timeThe zoned date-time of the last fetched event, used as the starting date for the next execution
outputs object
The outputs generated by each asset lineage event exporter
io.kestra.core.models.tasks.Output
size integer
The number of asset lineage fetched.