Multi-User-Brain-Demo

JSON-API für Agenten

Dieselben Tabellen, dieselben Regeln. Ein Claude-Code-Skill oder ein MCP-Server spricht diese Endpunkte an und schickt die Identität als Header X-User-Id. In echt wäre das ein Token, die Datenbankregeln bleiben gleich.

GET/api/docs?q=&type=&status=&area=&tag=Liste mit Metadaten, Volltextsuche über Titel, Beschreibung, Tags, Inhalt
GET/api/docs/:slugEin Dokument mit Inhalt, Version, Rechten, Backlinks
GET/api/docs/:slug/versionNur Version und letzte Änderung (für „ist mein Stand noch aktuell?“)
PUT/api/docs/:slugSpeichern mit {"version": n, "content": "...", ...}. Antwort 200, 409 mit Konflikt-Id oder 403
POST/api/docsAnlegen mit {"title", "description", "type", "area", "tags", "content"}
GET/api/grep?pattern=Regex über den Inhalt (Postgres ~*), das grep-Äquivalent für Agenten

Beispiele

curl -s -H 'X-User-Id: dirk'  'http://brain-demo.zeemo.cloud/api/docs?q=Lochblech' | jq '.[].slug'
curl -s -H 'X-User-Id: clara' 'http://brain-demo.zeemo.cloud/api/docs/lieferanten-stahl' | jq '.version, .can_write'
curl -s -H 'X-User-Id: dirk'  'http://brain-demo.zeemo.cloud/api/docs/lieferanten-stahl'           # 404: fuer Dirk nicht sichtbar
curl -s -H 'X-User-Id: agent' 'http://brain-demo.zeemo.cloud/api/grep?pattern=Plasmaschneider' | jq
curl -s -X PUT -H 'X-User-Id: agent' -H 'Content-Type: application/json' \
  -d '{"version": 1, "content": "...kompletter neuer Inhalt..."}' 'http://brain-demo.zeemo.cloud/api/docs/offene-punkte-fertigung'