How-to guide
Register data sources
Add a data source, inspect its schema and make its tables queryable.
Prerequisites
- Admin access to Kiwi Fabric
- Network access from Kiwi Fabric to the source
A data source is a connection to one external system. A capability is a named table or stored procedure inside it that you can reference in SQL. You register the source first, then its capabilities.
Add the source#
kiwi fabric source-add --name orders-sql --type Rdbms --subtype SqlServer \
--conn "<connection-string-template>" --username "<user>" --password "<password>" \
--desc "Order management database"
| Option | Meaning |
|---|---|
--name |
Unique name for the source |
--type |
Rdbms, Rest, Soap, NoSql, File, Cloud or VectorDb |
--subtype |
The engine, for example SqlServer, Postgres, MongoDB, Qdrant, CSV |
--conn |
Connection string template |
--username, --password |
Credentials, stored encrypted |
Credentials are never stored in plaintext. Where the encryption key lives is configurable. See Credential storage.

In the Web UI, Add Data Source opens the same form. Each row has actions to edit, enable or disable, import capabilities, view version history and delete.

A File source reads a file you have uploaded to the server. Upload it on the Uploaded Files page (CSV, TSV, JSON, Parquet, Avro or Excel), then copy its reference into the source's file path.

Inspect the live schema#
kiwi fabric source-schema --name orders-sql
This fetches the actual tables and columns from the underlying system so you can decide what to expose.
Register capabilities#
Use the Web UI import wizard (tables and stored procedures, column editor, writable flag) or define a capability as JSON and add it:
kiwi fabric cap-add --file capability.json
For each capability you declare its schema, identity column, which predicates may be pushed down to the source, whether it supports paging, and, for write-enabled tables, which write modes it supports and whether compensation is implemented. See Capabilities.
The wizard lists the source's tables and stored procedures, marks the ones already imported, and lets you filter and select. You then review each table before importing it.


Change or remove a source#
kiwi fabric source-update --name orders-sql --conn "<new-connection-string>" # omit --username/--password to keep them
kiwi fabric source-disable --name orders-sql # capabilities stay registered but are not queryable
kiwi fabric source-enable --name orders-sql
kiwi fabric source-remove --name orders-sql # deletes the source and all its capabilities
Move configuration between environments#
kiwi fabric export writes selected object types (data sources and capabilities, among others) to an encrypted JSON file protected by a passphrase, and kiwi fabric import loads it elsewhere. Both require superadmin. See the CLI reference.
The Web UI has the same feature under Import / Export: choose what to include (data sources, capabilities, virtual tables, AI assistants, roles, groups, saga templates, users) and set a passphrase that encrypts the credentials.

Expected result
- The source is listed by
kiwi fabric sources - Its tables appear as capabilities you can query