scope parameter follows the scope conventions; paginated endpoints follow pagination.
Connections
Connect a data source
Register an external database or file-based source. On success the platform stores the connection and returns the full updated source list.| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
scope | body | no | "user" | Scope of the connection. |
database | body | yes | — | Connection descriptor (see fields below). |
computeRowCount | body | no | false | Whether to count rows per table after connecting. |
database object fields:
| Field | Required | Description |
|---|---|---|
databaseType | yes | Database type: postgresql, mysql, snowflake, databricks, csv, excel, json, parquet, ttl, owl, and others. |
host | no | Host or path. For file-based types, omit to default to disk/; relative paths are automatically prefixed with disk/. |
port | no | Port number. |
database | no | Database name. |
schema | no | Schema name. |
username | no | Database username. |
password | no | Database password. |
tables | no | Array of table names to include. |
Example
connectionStatus is false and errorMessage contains the driver error.
List data sources
Return all registered data sources for the authenticated user.| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
scope | query | no | "user" | Scope of sources to return. |
data is an array of source objects (id, name, databaseType, host, schema, tables, and row counts if computed).
List sheets
Return the sheet names available in a spreadsheet or multi-tab source (e.g. an Excel file or Google Sheet connection).| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
database | body | yes | — | Connection descriptor for the spreadsheet source. |
Demo sources
Return the pre-built demo data sources shown during onboarding. Each preset includes its fulldatabase connection payload so the frontend can pre-populate the connect form.
Refresh sources
Re-probe every stored connection group and reconcile the source list. Database groups are re-discovered by(type, host, port, database, schema); file-based sources are removed if the file is no longer accessible.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
scope | body | no | "user" | Scope of sources to refresh. |
group_filter | body | no | — | If set, refresh only sources matching this connection group identifier. |
Infer schema
Inspect a connection and generate Vadalog bind annotations (and optionally a concept stub) for every table in the descriptor.| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
database | body | yes | — | Connection descriptor for the source to inspect. |
addBind | body | no | true | Emit a @bind annotation for each table. |
addModel | body | no | false | Also emit a concept model stub for each table. |
Preview data
Return a paginated sample of raw rows from a bound data source, with optional search and column filters.| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
bind_annotation | body | yes | — | The full @bind(...) annotation string identifying the source. |
scope | body | no | "user" | Scope of the source. |
page | body | no | 1 | Page number. |
page_size | body | no | 0 | Rows per page (0 falls back to the server default of 10). |
order_by | body | no | — | e.g. "0:asc,2:desc". |
search_term | body | no | — | Free-text term matched across all columns. |
column_filters | body | no | — | Array of { "position": <col index>, "value": <string> }. |
Files
All file operations are scoped to the server-sidedisk/ storage directory. Paths are relative to that root; path traversal (..) is rejected.
Upload file
Upload a file todisk/. The request must be sent as multipart/form-data. The returned filePath (e.g. disk/reports.csv) can be used directly as the host in a subsequent /data/connect call.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
file | form | yes | — | The file to upload (multipart/form-data field). |
path | form | no | "" | Subdirectory within disk/ to upload into. Must already exist. |
.csv, .xlsx, .xls, .json, .parquet, .pdf, .txt, .docx, .yaml, .ttl, .rdf, .owl, .cobol, and others configured by the server. Maximum file size: 10 GB (server-configurable).
List files
List the contents of a directory withindisk/. Directories are returned before files; hidden entries (names starting with .) are excluded.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
path | query | no | "" | Subdirectory within disk/ to list. Defaults to the root. |
Download file
Download a file fromdisk/. Returns the raw file bytes, not the standard envelope. The Content-Type is inferred from the file extension.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
path | query | yes | — | File path relative to disk/ (e.g. datasets/customers.csv). |
Make directory
Create a new subdirectory insidedisk/. The directory must not already exist; its parent must exist.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
path | body | yes | — | Path of the new directory relative to disk/. |
Delete files
Delete one or more files or directories withindisk/. Non-empty directories require recursive: true.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
paths | body | yes | — | Array of paths relative to disk/ to delete. |
recursive | body | no | false | Delete non-empty directories recursively. |
Move / rename file
Move or rename a file or directory withindisk/. The destination must not already exist and its parent directory must exist.
| Parameter | In | Required | Default | Description |
|---|---|---|---|---|
source | body | yes | — | Current path relative to disk/. |
destination | body | yes | — | New path relative to disk/. |
Other operations
| Operation | Endpoint | Notes |
|---|---|---|
| Remove data sources | POST /data/cleanup | Body: scope (default "user"), source_ids (array; omit to delete all sources in scope). |

