A data source is an external database table or file that a concept can read from via a bind annotation. The Data Sources API lets you register connections, browse uploaded files, infer Vadalog schemas from tables, and preview raw rows before building logic. All paths are relative to the base URL and require authentication. All responses use the standard envelope unless noted otherwise. The 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.
database object fields:

Example

On a failed connection connectionStatus is false and errorMessage contains the driver error.

List data sources

Return all registered data sources for the authenticated user.
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).

Demo sources

Return the pre-built demo data sources shown during onboarding. Each preset includes its full database connection payload so the frontend can pre-populate the connect form.
No parameters. Requires authentication.

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.

Infer schema

Inspect a connection and generate Vadalog bind annotations (and optionally a concept stub) for every table in the descriptor.

Preview data

Return a paginated sample of raw rows from a bound data source, with optional search and column filters.

Joins

All-pairs join

Discover join relationships across a set of data sources. Given a list of source connection descriptors, the platform analyzes every pair to find candidate join keys, and optionally evaluates the resulting joins.
At least two sources are needed to produce any pairs — a single descriptor in database_payloads yields no joins.

Files

All file operations are scoped to the server-side disk/ storage directory. Paths are relative to that root; path traversal (..) is rejected.

Upload file

Upload a file to disk/. 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.
Allowed extensions: .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 within disk/. Directories are returned before files; hidden entries (names starting with .) are excluded.

Download file

Download a file from disk/. Returns the raw file bytes, not the standard envelope. The Content-Type is inferred from the file extension.

Make directory

Create a new subdirectory inside disk/. The directory must not already exist; its parent must exist.

Delete files

Delete one or more files or directories within disk/. Non-empty directories require recursive: true.

Move / rename file

Move or rename a file or directory within disk/. The destination must not already exist and its parent directory must exist.

Other operations