Skip to main content
POST
Test a tap

Authorizations

x-api-key
string
header
required

Optional API key for authentication (enabled via application.yaml)

Query Parameters

testLimit
integer

When > 0, injects DATRIS_TAP_TEST_LIMIT= into the script process so well-behaved scripts cap their reads.

Body

application/json
name
string
required

Unique tap identifier

description
string
required

Plain-English instruction used to generate the script

targetPipeline
string
required

Pipeline this tap feeds into (may be empty for unattached taps)

scriptPath
string

MinIO path of the generated Python script (built-in storage)

scriptStorage
enum<string>

Script storage backend. Absent or minio = built-in object storage; github = the tenant's configured code repository.

Available options:
minio,
github
scriptRepoPath
string

Repo-relative script path when scriptStorage is github

scriptCommitSha
string

Commit SHA the script is pinned to when scriptStorage is github; runs read exactly this commit

scriptKind
enum<string>

Tap implementation kind. Absent or python = a script the platform executes; http = a user-hosted endpoint speaking the tap HTTP contract (endpointUrl is authoritative; script/packages fields do not apply).

Available options:
python,
http
endpointUrl
string

For scriptKind http only — absolute http(s) URL Datris POSTs the run context to on each run

source
string

Declared source identity for lineage and provenance — a provider name or host (never credentials). Optional; when absent the platform derives it from the endpoint host (HTTP taps) or the host the script references most. On update, omitting the field keeps the stored value and an empty string clears it.

packages
string[]

Extra pip packages required by the script

secretName
string

Name of the tap secret (Vault) injected as env vars at runtime

cronExpression
string

Quartz CRON expression for scheduled runs (omit for manual-only)

enabled
boolean
default:true
tapType
enum<string>
default:structured

structured (default) — the script returns records that flow into a structured pipeline destination. document — the script returns {uri, filename, content} dicts destined for a vector-store pipeline (unstructured source + qdrant/pgvector/weaviate/milvus/chroma destination). The server rejects a document tap pointed at an incompatible pipeline with HTTP 400. Document taps also use a per-URI ledger so each file is processed once across re-runs.

Available options:
structured,
document
lastRunStatus
enum<string>
Available options:
success,
failure
lastRunTime
string
lastRunRecordCount
integer
lastRunError
string
lastRunDataType
enum<string>
Available options:
csv,
json,
xml,
text,
document
lastRunColumns
string[]
lastTestRunStatus
string
lastTestRunTime
string
lastTestRunRecordCount
integer
lastTestRunError
string
lastTestRunDataType
string
lastTestRunColumns
string[]
createdAt
string
updatedAt
string

Response

200 - application/json

Test results

records
object[]
recordCount
integer
dataType
string
columns
string[]
logs
string
error
string
aiExplanation
string