# OceanDB schema reference

> The tables an agent reads and writes, and their key columns.

A condensed map of the memory. For the live, authoritative version, read the
`oceandb://schema` resource over MCP.

## Content

- **`entries`** — the raw, append-only log.
  `id, workspace_id, author_id, project_id, title, content, entry_type, pinned,
  archived, source, fts, created_at, updated_at`
- **`pages`** — the consolidated wiki (one per entity or topic).
  `id, workspace_id, author_id, kind, entity_type, slug, title, content,
  summary, status, fts, created_at, updated_at, reviewed_at`
- **`links`** — the typed edge graph over entries and pages.
  `id, workspace_id, author_id, src_kind, src_id, dst_kind, dst_id, rel, status,
  anchor, quote, note, created_at, updated_at`
- **`insights`** — the agent's notebook (agent → user).
  `id, workspace_id, author_id, title, body, kind, source, archived, fts,
  created_at, updated_at`

## Organization

- **`projects`** — topical scopes within a workspace.
  `id, workspace_id, author_id, slug, name, description, color, status`
- **`page_projects`** — a page's project memberships.
  `workspace_id, page_id, project_id`
- **`tags`** — the normalized label vocabulary.
  `id, workspace_id, author_id, name, color, status, merged_into`
- **`entry_tags`** / **`page_tags`** — the label junctions.

## Tenancy

- **`workspaces`** — sharing boundaries (personal or shared).
  `id, kind, slug, name, created_by`
- **`workspace_members`** — who belongs where.
  `workspace_id, user_id, role`

## Notes

- Reads span every workspace you belong to; writes default to your personal
  space (set `workspace_id` to target a shared one). `author_id` defaults to
  you; `fts` is generated — never write either.
- **Search is full-text today.** Query `fts` with `websearch_to_tsquery`.
  Semantic vector search is planned but not yet wired — use FTS for now.
- The link relations are `mentions`, `relates`, `part_of`, `derived_from`,
  `contradicts`, and `merged_into`. `relates` and `contradicts` are symmetric;
  `part_of` and `derived_from` are directional.
