EcosystemDatabases
SQLite
Use fixed, parameterized SQLite operations as governed agent tools.
Scaffold better-sqlite3 with the first-party adapter:
fh add database sqliteimport { sqliteTool } from '@fabric-harness/databases/sqlite';
const lookup = sqliteTool({
client: database,
name: 'lookup_account',
description: 'Read one tenant-scoped account.',
statement: 'select id, status from accounts where tenant_id = ? and id = ? limit 1',
parameters: ({ tenantId, accountId }) => [tenantId, accountId],
});The statement is fixed in application code. Read tools reject mutations and multiple statements;
row, byte, and time limits protect model context. Mark controlled writes with effect: 'write' and
attach approval policy as required.
This is model-facing data access. For durable Harness sessions, configure the Node
store.backend: 'sqlite' session store separately.