Concept

Capabilities

The registry of named tables and procedures the engine can address, and the data contract each one declares.

Fabric Current 2 min read Updated

A capability is a named object the engine can address in SQL. Each has a logical name (alias), a physical binding to a data source, a column schema and access metadata. The set of capabilities is Kiwi Fabric's data contract: it turns "can we query this, push this filter down, safely write to this, and safely undo it" into an explicit, inspectable fact per table.

Kinds of capability#

Kind Role in queries Role in sagas
Table SELECT-able, with filter, projection and paging pushdown where the source supports it Insert, upsert, update and delete steps with snapshot-based compensation
SpRead Runs a stored procedure; output columns are defined when you import it; inputs are supplied at query time as caller parameters Not available in sagas
SpWrite Never part of SQL generation An execute step; parameters bind to literals, earlier step outputs or caller values; an optional compensation procedure is registered with it
StoredProcedure Legacy kind; use SpRead or SpWrite for new imports

What a capability declares#

  • Schema: for each column its name, data type, whether it is the identity, whether it is nullable and (for vector stores) whether it is the vector target.
  • Identity column: needed so generated keys can be referenced by later saga steps and so insert compensation can delete the right row.
  • Predicate capability: Full, BasicEquality or None, which controls how much filtering the planner pushes to the source.
  • Projection and paging pushdown: whether the source can return only the requested columns and pages.
  • Write configuration (optional): which write modes are supported, whether compensation is implemented (hasCompensation) and whether it is idempotent.
  • Vector configuration (vector stores such as Qdrant): embedding model, distance metric and collection parameters for semantic search queries.
The Capabilities page listing tables with data source, predicate capability, projection and paging features, and write modes
The capability list shows predicate support, pushdown features and write modes at a glance.
The Edit panel for the Products capability with data source, table name, physical name, description, identity column, predicate capabilities, projection and paging options and a column list
Editing a capability. The description is also used for AI table selection.

Visibility and access#

Capability visibility and write access are controlled per role. SpWrite capabilities are further restricted: they appear only in saga contexts, never in the SQL query or SQL-generation pool.

Virtual tables#

A virtual table is a saved federated query registered under a name. You select from and join it like any other table. Virtual tables, together with capabilities, form the dependency graph shown by lineage. See Governance and lineage.

Where capabilities are stored#

Capabilities and data-source definitions are stored in Kiwi Fabric's registry using the Kiwi ORM, with the same schema on any supported backend. Schema migrations run idempotently on startup.