Skip to content
Docs

Headless CRUD Admin Over Your Database

Schema sidebar, data grid, and server-side grouping — Opening a 500-row table, paging through it, and grouping by a column. Every step is a query argument, not a client-side pass over downloaded rows.

The BifrostQL desktop app (the Desktop Navigator) is a headless CRUD admin over your database. Point it at a connection string and you get browse, search, edit, and report surfaces without writing a screen. Every pane reads the live schema at runtime, so a new column shows up on the next connect and your codebase stays free of scaffolded UI.

The workbench blends three familiar tools over your existing database:

Server-side analytics. Every total, series value, pivot cell, and group header comes from a server query — the aggregate and pivot GraphQL surfaces — never from summing a fetched page in the browser. This keeps results correct on large tables and keeps tenant-isolation and soft-delete filters in force.

Saved objects. Queries, forms, reports, and dashboards persist through the unified saved-object store — a dedicated /_saved-objects pipeline, separate from schema metadata and from the app-metadata overlay.

Every workbench data path routes through the editor’s useFetcher() / QueryTransport seam, so the HTTP ↔ binary transport toggle covers all of them.

A minimal round-trip against a sample sales database, using the panes in order:

  1. Design a query. In the visual query builder, pick orders, join customers, choose columns and a filter, and save it as a saved query named Open orders.
  2. Build a form. Point the form runner at orders, add an order_lines subform bound by the foreign key, and enter or edit records with child rows.
  3. Define a report. Create a report over Open orders grouped by region with a sum(amount) subtotal band and grand total; print or export it.
  4. Chart it. Click Visualize on the grid (or open the chart panel) to bar-chart sum(amount) by region — the chart issues a server aggregate query, not a client sum.
  5. Assemble a dashboard. Drop the chart, two count cards, and a table tile onto a dashboard; save it; reopen it — every tile restores and refetches its own data.

Each artifact you save is a saved object you can reopen, rename, or delete.