datris) is a command-line interface for the Datris Data Platform. It communicates with the platform via the MCP server, providing a simple way to ingest data, run queries, search vector stores, and manage pipelines — all from the terminal.
Installation
Configuration
The CLI connects to the MCP server via SSE. Set the server URL with an environment variable:Authentication
When the Datris platform hasUSE_API_KEYS=true, every CLI command must present an API key. Set it as an environment variable:
x-api-key on every MCP request, which the MCP server forwards to the REST API.
Issue a key dedicated to the CLI from the UI: Configuration → API-Keys → Issue new key with a label like cli and the capability scope you want (e.g. read-only template for an analyst CLI, ops for a deploy runner). The value is shown once at issue time — set it as DATRIS_API_KEY in your shell. Each label is a distinct caller identity in the request logs and can be revoked independently. See API Keys for the full pattern.
When USE_API_KEYS=false (the OSS default), the CLI works without any key — the env var is ignored.
JSON Output
Every command supports--json to return raw JSON instead of human-readable output. This is useful for scripting and programmatic use.
Commands
datris help
Show all available commands and options.
datris pipelines
List all registered pipelines.
datris ingest
Create a pipeline and ingest a data file in one step. The schema is auto-detected from the file.
If the named pipeline already exists, the existing config is preserved and the file is uploaded into it — --dest, --table, --ai-validate, --ai-transform, and --catalog are ignored on re-ingest. Delete the pipeline first (datris delete <name>) if you need a fresh config.
Examples:
datris query
Execute a read-only SQL SELECT query against PostgreSQL.
datris search
Semantic search across a vector database.
datris analyze
Ask a question about your data using AI. Works with any destination type — auto-picks the right approach based on --dest.
Examples:
- PostgreSQL — AI generates a SQL query from your question, executes it, then summarizes the results in a natural language answer
- MongoDB — fetches documents from the collection, then AI answers the question based on the data
- Snowflake / Databricks — previews rows from the pipeline’s destination table (connection and credentials resolved server-side from the pipeline config), then AI answers the question based on the data
- Vector stores — performs semantic search to find relevant chunks, then AI generates an answer from the retrieved context
datris query-mongo
Query a MongoDB collection with optional filter and projection.
datris status
Get the latest job status for a pipeline.
datris delete
Delete a pipeline configuration and optionally its destination data.
datris health
Check the health of all backend services.
datris secrets
List all configured secrets.
datris taps
List all taps.
datris tap create
Create a tap. The instruction argument (a plain-English description) is optional — provide it to have AI generate the fetch script, or omit it and supply your own script with --script (or create a config-only tap with neither).
Examples:
unstructuredAttributes and whose destination is a vector store (qdrant, pgvector, weaviate, milvus, or chroma). The server rejects tap create --type document against a structured pipeline with HTTP 400.
datris tap run
Run a tap manually. Output reflects whether the fetched records actually landed in the target pipeline:
--json to get the full response including mode, persisted, persistedReason, publisherToken, and pipelineTokens.
datris tap show
Show full details of a tap, including its script. Prints the name, description, target pipeline, schedule, enabled state, secret, and last run/test results, followed by the stored script.
datris tap test
Test-run a tap without pushing the fetched records to the target pipeline. Reports the run status, record count, and data type.
datris tap logs
Show the run history for a tap — each entry’s timestamp, status, mode (run or test), record count, duration, and any error.
datris tap update
Update a tap’s configuration without regenerating its script. Specify at least one option.
datris tap delete
Delete a tap.
datris version
Get the server version.
Pipeline Name Auto-Detection
When--pipeline is not specified, the CLI derives the pipeline name from the filename:
sales-data.csv→sales_dataQ1 Revenue Report.csv→q1_revenue_reporttrades.json→trades
