Skip to content

Choose Output Artifacts and Logs

Choose an output from its intended side effect. File exporters create Platform artifacts; LogExporter writes a small diagnostic projection to the task log. Console output is a runtime implementation aid and is deliberately not offered as an Agent Authoring target.

artifact-and-log-targets.xml
1
2
3
4
5
6
7
8
<setup numProcess="1">
    <generate name="customers"
              count="3"
              target="CSV(delimiter=';'),JSON(use_ndjson=True),LogExporter">
        <key name="id" generator="IncrementGenerator"/>
        <key name="status" constant="active"/>
    </generate>
</setup>

This creates a semicolon-delimited CSV artifact, an NDJSON artifact, and three bounded diagnostic log entries from the same product. Use multiple targets only when every side effect is an explicit requirement.

Agent Authoring boundary

Authoring keeps these intents separate:

  • file_export requires a registered artifact format such as CSV, JSON, XML, XLSX, TXT, PARQUET, SQL, Template, or OpenSearchBulk.
  • log renders the registered LogExporter and has no format field.
  • memstore, database, MongoDB, Kafka, and RabbitMQ are distinct target families because they have different lifetime, client, operation, and delivery contracts.

The live Authoring catalog supplies the exact registered file-format set. Agents must not invent an exporter name or represent logging as a file format.

File-target choices

  • Use CSV for tabular interchange and set options such as delimiter, quotechar, quoting, and line_terminator only when the consumer requires them.
  • Use JSON(use_ndjson=True) for one JSON object per line; bare JSON writes an array.
  • Use JSONSingle, XMLSingle, or TemplateSingle when every record needs its own artifact. These routing-capable exporters may use dynamic targetEntity; streaming multi-record exporters may not.
  • Use Template for a project-owned name.ext.template file when the target format is not otherwise modeled. Missing-placeholder behavior and record separators are explicit target options.
  • Use OpenSearchBulk for OpenSearch bulk-import payloads. Metadata fields are $$_action$$, $$_index$$, $$_id$$, and $$_routing$$; other fields form the document body.

On DATAMIMIC Platform, omit storageId and exportUri so generated files use the task-scoped artifact location shown in Artifact View. Set exportUri only with a storageId that selects your own <object-storage>; it is a relative path prefix, not a filename, and those outputs are outside Platform Artifact View. The generated <generate> reference owns the current attributes and rules; the Authoring target reference owns agent-facing intent models.