OriginChain docs
dashboard · schemas

Schemas in the dashboard.

Register a schema from the dashboard, then browse the schemas catalog grouped by namespace, with ad-hoc chip-style tags you can attach to any row. You'll need a running instance — schemas are scoped per-instance.

  1. 1. Open the sidebar and click Schema (or jump to /app/schema).
  2. 2. Pick your instance from the Instance dropdown — schemas, tags, and collapsed-group state are all scoped to the active instance.
  3. 3. Scroll to Register a schema, paste your TOML manifest into the editor.
  4. 4. Click Register →. The new row appears under its namespace group in Registered.
  5. 5. Click any row's view link to see the parsed manifest plus per-schema config cards (vector mode, FTS analyzer, relations, migration history).
OriginChain CONSOLE DATA Schema Query Backups Logs DATA / SCHEMA Schemas Filter by name or tag… TAGS · prod core draft ▼ shop 3 SCHEMAS shop.customers prod + tag VIEW shop.orders prod core + tag VIEW shop.products draft + tag VIEW ▶ analytics 2 SCHEMAS Register a schema Paste a TOML manifest below. REGISTER 1 5 5 4
schemas page · namespace-grouped list · tag chips

Categorisation

Schemas auto-group by the namespace prefix of their id. shop.customers, shop.orders, and shop.products all collect under shop. Click the namespace header to collapse or expand a group; collapsed state is persisted per-instance in localStorage.

Click + tag on any schema row to attach an ad-hoc label (prod, draft, archive, anything you like). Tags surface in the chip bar at the top — click a chip to AND-filter the list. The search box matches against schema id and tags simultaneously.

Tag data is stored under oc:schema:tags:<instance-id> in the browser; switching instances or organisations never bleeds tag data across tenants.

TOML manifest sample

Here's a minimal manifest for a shop.customers table with a unique-email index. Paste this into the registration editor as-is.

namespace = "shop"
table = "customers"
primary_key = ["id"]

[[columns]]
name = "id"
ty = "str"
required = true

[[columns]]
name = "email"
ty = "str"
required = true

[[columns]]
name = "region"
ty = "str"

[[indexes]]
name = "by_email"
columns = ["email"]
unique = true

Common errors

  • TOML parse error — string values need double quotes; column types must be one of i64 · u64 · f64 · str · bytes · bool.
  • duplicate manifest — the schema id already exists. Drop it (DELETE /v1/schemas/<id>) or pick a new namespace.
  • permission denied — bearer is for a different instance scope. Re-paste the bearer for the active instance.
  • primary_key column missing — every column listed in primary_key must also appear in [[columns]] with required = true.
  • addon required — schemas with vector or FTS extractions need the matching add-on; enable from /app/billing/addons.