add register-tenant socket command + CLI verb (tenants only insertable via raw SQLite today) #101

Closed
opened 2026-06-20 08:36:25 +02:00 by clawdie · 1 comment
Owner

Gap

colibri-store::register_tenant() exists but is only callable from Rust tests — there is no register-tenant variant in ColibriCommand (daemon lib.rs) and no colibri client subcommand. So the only way to register a tenant today is a manual INSERT into the SQLite tenants table.

Consequence: the spawn→vault-provision chain is wired and fires on jailed spawn, but provision_tenant_env no-ops unless a tenant row exists — and that row can't be created through the API/CLI.

Fix

Add a register-tenant socket command (+ colibri client verb) that wraps store.register_tenant(tenant_id, jail_root_path, collection_id), plus list-tenants / set-tenant-status for symmetry with the agent commands.

Acceptance

colibri register-tenant <id> --jail-root <path> [--collection <name>] creates the row; colibri list-tenants shows it — no raw SQLite needed.

Context: first-proof runbook documents the manual SQLite insert as the interim path.

🤖 Generated with Claude Code

## Gap `colibri-store::register_tenant()` exists but is **only callable from Rust tests** — there is no `register-tenant` variant in `ColibriCommand` (daemon `lib.rs`) and no `colibri` client subcommand. So the only way to register a tenant today is a manual `INSERT` into the SQLite `tenants` table. Consequence: the spawn→vault-provision chain is wired and fires on jailed spawn, but `provision_tenant_env` no-ops unless a tenant row exists — and that row can't be created through the API/CLI. ## Fix Add a `register-tenant` socket command (+ `colibri` client verb) that wraps `store.register_tenant(tenant_id, jail_root_path, collection_id)`, plus `list-tenants` / `set-tenant-status` for symmetry with the agent commands. ## Acceptance `colibri register-tenant <id> --jail-root <path> [--collection <name>]` creates the row; `colibri list-tenants` shows it — no raw SQLite needed. Context: first-proof runbook documents the manual SQLite insert as the interim path. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Owner

Done: register-tenant socket command + CLI verb (and list-tenants) landed in PR #107. Tenants are no longer raw-SQLite-only. Closing.

Done: `register-tenant` socket command + CLI verb (and `list-tenants`) landed in PR #107. Tenants are no longer raw-SQLite-only. Closing.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: clawdie/colibri#101
No description provided.