Graph database
A graph database for victims and investigators to relate evidence and actors — legally. Create databases and explore them as a graph, a table or a query.
Sign in and your workspaces and databases open here.
Sign in to startFree to start — no credit card.
About this service
- API:
api.kotoba.cloud/v1/database(authenticated by your Mithril session; every operation checks your permissions) - Data is stored as IPLD / CID; snapshots are immutable.
- Query with Datalog, Cypher or SQL.
- The ontology view shows the attributes and types observed in stored data.
Tenant —
Sign in to open GraphDB
Tenant metrics stay hidden until a session exists. No placeholder counts are shown.
Databases
A short name of letters, digits and hyphens (e.g. agent-memory).
— databases
| Name | Kind | Status | CID | Actions |
|---|
No databases yet. Enter a name above to create one.
Confirm archive
History is kept. Database becomes inactive (you can restore it later). Type the database name to continue.
How this database works
- Data is stored content-addressed. Names are working aliases; the CID is the canonical copy. See Pins / CID
- Archiving never erases history; a database can be restored.
- The ontology is the attributes and types observed in loaded data, not a declared schema.
- Writes need an explicit capability from Keys & permissions, not just the sign-in session.
Sign in to open GraphDB
Tenant metrics stay hidden until a session exists. No placeholder counts are shown.
Knowledge map
Pick from the list or type a name. Read-only.
Pick a database and Load to see what it holds.
Nothing to show yet. Pick another database or load more facts.
Kinds of things
Select a node to expand its connections; drag to pin it.
—
things ·
—
connections. Kinds come from the attribute namespace (e.g. :paper/title → paper); names come from attributes such as name or title.
More tools
Accessible connection list
Sign in to open GraphDB
Tenant metrics stay hidden until a session exists. No placeholder counts are shown.
Ontology (inferred)
What kinds of things the loaded facts describe, the fields each kind has, and what they link to. Inferred, not a declared schema.
Pick from the list or type a name. Read-only.
Pick a database and Load.
— kinds · — fields
Nothing to infer yet.
| Kind | Count | Fields (type · share that have it) | Links |
|---|
Schema migration / DDL · Controlled Beta
Plans an append-only Datomic schema transaction and applies it through the same CACAO write plane. The result is saved as a tenant-isolated IPLD migration receipt. This adds declared idents; it does not promote the inferred table above into an ontology.
Sign in to open GraphDB
Tenant metrics stay hidden until a session exists. No placeholder counts are shown.
Datoms · Beta
Browses datoms as three columns: Entity, Attribute, Value. It shares the same bounded snapshot with the graph viewer.
Pick from the list or type a name. Read-only.
Specify a database to load a datom snapshot.
| Entity | Attribute | Value |
|---|
No datoms match. Clear the filter or load a different database.
Showing — / — rows. A read-only preview capped at 100 rows. Row editing and server-side sort are not supported.
Sign in to open GraphDB
Tenant metrics stay hidden until a session exists. No placeholder counts are shown.
Query workbench
A database handle within the tenant. Example: agent-memory
Read-only in this console. Unsupported syntax is refused fail-closed.
Result
No query has been run yet.
Planner diagnostics
Shows dbStats and the query shape. This is not EXPLAIN/PROFILE returning engine operator timing or cardinality.
Run the diagnostics.
Session history
Keeps up to 20 successful queries in this tab only. Closing the browser discards them.
Saved queries
Only explicitly saved queries are synced, up to 50, as tenant-isolated IPLD documents. Removal is a tombstone — it never erases history.
Datalog uses the compatible XRPC datomic.q, SQL/SPARQL/Cypher use kg.query. That does not mean Neo4j wire protocol or full openCypher compatibility.
CID / IPLD data
This shows the pins held by this tenant, centered on CIDs. A CID link opens /ipld/{cid}, the immutable block. Names and request ids are operational metadata, not content identity.
— objects
Hash links
Canonical link: /ipld/{cid}
GET returns CID-verified immutable bytes. A DB name is a handle within the tenant; the canonical identity of a graph or commit is its CID.
Keys & permissions
Writes never run on the session cookie alone. The short-lived Biscuit issued by authn is kept in memory only and passed to the backend's scope, tenant ownership and CAS checks.
Never stored, put in a URL, or logged. It is discarded when you leave the page.
Review row add/retract and schema transactions explicitly before running them.
Only CREATE statements the bounded parser accepts — not Cypher writes in general.
RBAC authority grants · Controlled Beta
A grant is not an ordinary UI setting: it is committed with CACAO to the dedicated __authority graph that the content-addressed authority basis references.
Audit log
Receipts the edge processed for this tenant. No other tenant's history appears here.
| Time (UTC) | Action | Outcome | Country | Request id |
|---|
Backup / PITR operations · Controlled Beta
Saves the current content-addressed basis and dbStats as immutable checkpoint metadata, then drills recoverability with an as-of read at basis_t. No destructive overwrite happens.
Materializing into a new database, and production restore orchestration with RPO/RTO, are not implemented.
Accessibility validation
A semantic self-check run on this document. Automated checks do not replace testing with real users.
Screen reader verification is incomplete. No task completion study with VoiceOver/NVDA or real users has been run. Who ran one, when, with which assistive technology, and which tasks failed must be kept as an audit record.