# Workflow step reference

Choose a source step to obtain records, processing steps to transform them, and destination steps to deliver results. Each reference lists its settings, nested fields, inputs, outputs, example data, and recovery characteristics.

The available library depends on the capabilities active in your organisation. Internal implementation steps are not presented as user-selectable steps.

## Source steps

- [App configuration](/docs/steps/app-config) — Load the invoking App's parameters and connector policy as one record.
- [Read via connector](/docs/steps/connector-read) — Stream records from a registered connector or a stored Connection.
- [Extract file content (digest)](/docs/steps/digest-extract) — Parse stored files (PDF, DOCX, …) into text segments through the document extraction.
- [Read file list](/docs/steps/object-list) — List the object keys under a prefix (or the given keys) as file references.
- [Read workflow input](/docs/steps/read-input) — Emit the records the run was invoked with, unchanged.
- [Resolve submitted review sources](/docs/steps/resolve-review-sources) — Resolve submitted review sources
- [Run subworkflow](/docs/steps/subworkflow-run) — Run another workflow of the tenant in-process and continue with its outputs.
- [Test Data](/docs/steps/test-data) — Emit deterministic synthetic records, or inline records you supply.
## Processing steps

- [Aggregate](/docs/steps/aggregate) — Group records by a JSONPath key and reduce each group to one record.
- [Run container](/docs/steps/container-run) — Run an admitted container image to completion over the step's records.
- [Compile and validate Covenant candidates](/docs/steps/covenant-compile) — Compile and validate Covenant candidates
- [Prepare Covenant validation correction](/docs/steps/covenant-correct) — Prepare Covenant validation correction
- [Covenant change draft](/docs/steps/covenant-draft) — Check source citations and prepare covenant changes for human review.
- [Prepare Covenant analysis units](/docs/steps/covenant-prepare) — Prepare Covenant analysis units
- [Calculate approved as-of Covenant projection](/docs/steps/covenant-project) — Calculate approved as-of Covenant projection
- [Deduplicate](/docs/steps/dedupe) — Drop records whose key values repeat, keeping the first or last occurrence.
- [Embed records](/docs/steps/embed) — Chunk text records per document and embed each chunk through Knowledge.
- [Extract fields](/docs/steps/extract) — Copy a JSONPath value into a target field, optionally transforming it.
- [Extract fields with anchors](/docs/steps/extract-anchored) — Structured extraction whose every value carries a verified anchor.
- [Extract revision-preserving evidence](/docs/steps/extract-review-evidence) — Extract revision-preserving evidence
- [Filter](/docs/steps/filter) — Keep records whose JSONPath value matches a predicate.
- [Flatten](/docs/steps/flatten) — Explode the list at a field path into one record per element, keeping the parent's other fields.
- [Group](/docs/steps/group) — Group records by key paths and compute counts, sums, lists and other aggregations per group.
- [HTTP request](/docs/steps/http-request) — Make one HTTP call per record and keep the response beside the input.
- [Image thumbnail](/docs/steps/image-thumbnail) — Fetch each record's image and add a bounded WebP `data:` thumbnail.
- [Limit](/docs/steps/limit) — Keep the first N records after an optional offset, overall or per group.
- [LLM](/docs/steps/llm-complete) — Render a prompt per record and store the model's completion on it.
- [Map fields](/docs/steps/map) — Reshape each record: select, rename, drop and set fields, with ${…} templates.
- [Merge](/docs/steps/merge) — Combine the records on two named input ports: union, left/inner join or coalesce.
- [Execute structured model job](/docs/steps/model-execute) — Execute bounded model calls with durable single-attempt receipts.
- [Python exec (sandboxed)](/docs/steps/python-exec) — Run a sandboxed Python snippet over records without network access.
- [Render page images](/docs/steps/render-pages) — Rasterize pages of stored PDFs into PNG data URLs — one record per page — for llm_complete's images.
- [Sort](/docs/steps/sort) — Order records by one or more keys; ties keep their input order.
- [SQL query](/docs/steps/sql-query) — Run one SQL read (rows out) or write (records in) against a DSN.
- [Index PDF tables](/docs/steps/table-index) — Project TABLE segments into bounded, Table.vue-ready pdf_table rows.
- [Build text search index](/docs/steps/text-index) — Turn segment records into search postings, per-file summaries and an index manifest.
- [Vector search](/docs/steps/vector-search) — Find the nearest indexed chunks for each record's query text.
- [Wait](/docs/steps/wait) — Pause for a number of seconds, then pass the records through unchanged.
- [Web crawl](/docs/steps/web-crawl) — Fetch each record's URL and extract clean article markdown.
- [Web search](/docs/steps/web-search) — Search the web (or a bound search connection) once per record.
- [Reusable workflow recipe](/docs/steps/workflow-fragment) — Install an immutable versioned recipe with independent bindings and overrides.
## Destination steps

- [Write via connector](/docs/steps/connector-write) — Deliver the records to a registered connector or a stored Connection.
- [Copy files (object store)](/docs/steps/object-copy) — Copy files between two object-store connections, one receipt record per object.
- [Persist unresolved review diagnostics](/docs/steps/persist-review-diagnostics) — Persist unresolved review diagnostics
- [Publish pending review proposals](/docs/steps/publish-review-proposals) — Publish pending review proposals
- [Append to app table](/docs/steps/user-table-append) — Append input records' row values to an Strive per-app user table.
- [Retire superseded vectors](/docs/steps/vector-retire) — Delete the vectors that only this workflow's earlier runs still own.
- [Write to MCP tool](/docs/steps/write-to-mcp) — Invoke an integration's MCP tool once per record.
