Full-text search is consistent with the CLI since v0.4.6. FTS availability used to be set only when the database was seeded, so
vigolium server took the indexed FTS5 path while every CLI read command took the LIKE fallback on the same file - and the two did not return the same rows, MATCH being token/prefix based where LIKE is substring. The capability is now discovered from the database itself, and the indexed path keeps the metadata LIKE predicates alongside MATCH.The same release rebuilds the index when migrating from the legacy body-indexed FTS table. That replacement is created empty and filled by triggers, so before the fix only records written after the upgrade were searchable and search reported no error. If search has ever silently under-returned on an old database, one open on v0.4.6+ repairs it.scans, http_records, findings, source_repos, session_hostnames, oast_interactions, scan_logs, agentic_scans, scopes) automatically filter by the X-Project-UUID header. Pass ?all_projects=true to disable project scoping (admin use).
GET /api/db/tables, List All Tables
Returns all database tables with their row counts.GET /api/db/tables/:table/columns, List Table Columns
Returns column metadata and primary key information for a specific table.GET /api/db/tables/:table/records, List Records
Returns paginated, filtered, sorted records from any table. Query parameters:GET /api/db/tables/:table/records/:id, Get Single Record
Returns a single record by its primary key value. Only works for tables with a single-column primary key.POST /api/db/tables/:table/records, Create Record
Inserts a new record into the specified table. Requires admin role. The request body is a JSON object where keys are column names and values are the data to insert. Column names are validated against the table schema. For project-scoped tables,project_uuid is automatically injected from the X-Project-UUID header if not provided in the body.
