Quickstart
Quickstart
Bootstrap an admin, register a data source, and run your first federated query.
Prerequisites
- A running Kiwi Fabric instance and its URL (REST defaults to port 8080)
- The
kiwicommand-line shell with the Kiwi Fabric CLI registered - Connection details for at least one data source you want to query
This quickstart uses the kiwi fabric CLI. The same steps can be done in the Web UI or through the REST API.
1. Point the CLI at your server#
kiwi fabric connect --url https://localhost:5000
connect saves the server URL (and an optional API key) for later commands. Replace the URL with the address of your instance.
2. Create the first admin user#
A new instance has no users. The one-time bootstrap command creates the first admin and prints an initial API key:
kiwi fabric auth-setup --user admin --password "<choose-a-strong-password>"
Important
The raw API key is shown once. Store it somewhere safe immediately. auth-setup fails if any user already exists, so it can never be used to take over a configured instance.
Then sign in so later commands are authenticated:
kiwi fabric login --user admin --password "<your-password>"
3. Register a data source#
kiwi fabric source-add --name sales-pg --type Rdbms --subtype Postgres \
--conn "<connection-string>" --username "<user>" --password "<password>"
--type is one of Rdbms, Rest, Soap, NoSql, File, Cloud or VectorDb. Credentials are encrypted at rest. See Register data sources.
Check what the source exposes:
kiwi fabric source-schema --name sales-pg
4. Expose tables as capabilities#
A capability is a named table (or stored procedure) that the engine can address in SQL. The Web UI import wizard is the easiest way to register them; from the CLI use kiwi fabric cap-add --file <definition.json>. See Capabilities.

5. Run a query#
kiwi fabric query --sql "SELECT * FROM customers WHERE city = @city" --param city=London --verbose
--verbose adds a per-source breakdown showing rows fetched and which predicates were pushed down. With two or more registered sources you can join across them in the same statement.

Next steps#
Expected result
- An admin user and an API key exist
- Your data source is registered and its tables are visible as capabilities
- A SQL query returns rows from your data source