Zum Inhalt springen

Workspace-Datenbanken

Strukturierte Datensätze speichern, Geschäftsregeln durchsetzen und Live-Ansichten im Chat nutzen. Datenbanken teilen und Agenten gezielten Zugriff geben.

Auch in Sluis Workspace: die Workspace-Übersicht und E-Mail und Kalender.

Was Datenbanken sind

Eine Datenbank enthält Tabellen, typisierte Felder und dauerhafte Datensätze, etwa Fälle, Verträge oder Aufgaben. Jede Datenbank braucht eine einzeilige Klartextbeschreibung mit 1 bis 280 Zeichen zu Inhalt und Nutzern.

Öffnen Sie Datenbanken in der Seitenleiste unter /workspace/databases. Neue Datenbanken sind privat. Es gibt keine eigenen App-Oberflächen, keinen UI-Builder, Bearbeitungsmodus, Vollbildmodus oder ausführbare Ansichtshandler. Die Desktop- und Mobil-Apps von Sluis Workspace sind davon unabhängig.

Erstellen und ändern

Bitten Sie jedes Chatmodell um eine Datenbank oder Schemaänderung. Es übergibt den Auftrag an sluis/code, sofern Ihre Modellrichtlinie diesen Builder erlaubt. Nur dieser Builder oder ein konfigurierter Agent mit der Werkzeuggruppe databases schreibt Schema und Regeln. Andere Chatmodelle arbeiten mit Datensätzen und fordern Schemaänderungen an.

Die Quelle besteht aus JSON-Zeilen: database-Kopf, collection-Zeilen, optionale script-Funktionen, trigger-Zeilen und angeheftete view-Zeilen. Der Codeblock heißt sluis-database. Komponenten und Handler werden nicht unterstützt. Eine Skill kann eine Vorlage database.sluis im Archivstamm enthalten.

Installieren Sie eine Skill-Vorlage mit Ihrer Mitgliedssitzung über POST /chat/skills/{skill_id}/install-database.

Versionen behalten Autor und Datum. Verwalten erlaubt das Veröffentlichen und Wiederherstellen von Schemaversionen. Wiederherstellen erzeugt eine neue aktuelle Version, löscht keinen Verlauf und setzt keine alten Datensätze zurück.

Live- und angeheftete Ansichten

Fragen Sie nach Tabelle, Board, Diagramm, Kalender, Zeitleiste, Summe, Formular oder einzelnem Datensatz. Ein sluis-view-Block beschreibt die Ansicht, nicht eine Datenkopie. Jeder Leser lädt aktuelle Daten mit eigenen Rechten; gemeinsame Änderungen aktualisieren die Ansicht.

Mit Verwalten heften Sie Ansichten oberhalb der Daten an oder lösen sie. Filter, Sortierung und Seitenaufteilung laufen auf dem Server. Formulare folgen Tabellenfeldern und Regeln; berechnete Felder sind schreibgeschützt. Ansichten umgehen keine Zugriffs- oder Schreibregeln.

```sluis-view
{"database":"<database UUID>","table":"contracts","view":"table","columns":["title","expiry"],"order":"expiry"}
```

Datensätze und Regeln

Feldtypen: Text, Zahl, bool, Datum, JSON, Datei, Person und Verweis auf eine andere Tabelle. Personen und Verweise zeigen Namen oder Bezeichnungen. Der Datensatzverlauf zeigt Feldänderungen und Autoren. Datensätze sind verschlüsselt; schlüsselgebundene Indizes erlauben Gleichheits- und Wortpräfixsuche in Bezeichnungen und durchsuchbaren Textfeldern ohne Klartextspeicherung. Treffer und Verweisbezeichnungen beachten die Sichtbarkeit.

Die Indexsuche kombiniert alle Wortpräfixe ohne Beachtung der Großschreibung, mit mindestens zwei Buchstaben oder Ziffern je Wort. Sie sucht keine beliebigen Teilzeichenfolgen. Freitext liefert höchstens 200 Treffer und kennzeichnet Kürzungen. Über 25.000 Restkandidaten oder 500 IDs einer Verweisbezeichnung liefern 422: Ergänzen Sie einen Indexfilter. Fehlende oder veraltete Indizes müssen vor weiteren Lesezugriffen neu aufgebaut werden.

  • Feldregeln: required, unique, min/max, options, default und pattern. Das Muster gilt für den ganzen Text: # Ziffer, A Großbuchstabe, a Kleinbuchstabe, * beliebiges Zeichen. Es ist kein regulärer Ausdruck.
  • Berechnete Felder nutzen Rhai in einer Sandbox, werden bei Schreibvorgängen neu berechnet und gespeichert und sind nicht vom Aufrufer setzbar.
  • Statusregeln definieren Zustände, Anfangszustand und Übergänge mit Pflichtfeldern und Mindeststufe Datensätze, Alle Daten oder Verwalten.
  • Servertrigger reagieren auf Erstellen, Ändern oder Löschen. Sie fügen Datensätze derselben Datenbank hinzu, ändern oder löschen sie, lehnen den Vorgang ab oder benachrichtigen Mitglieder. Änderungen laufen mit den Rechten des Schreibenden in derselben Transaktion. Eine Ablehnung setzt alles zurück. Triggeränderungen starten keine weiteren Servertrigger; Nachrichten folgen nach dem Commit.
  • Formulare, Datenbearbeitung, Chattools, Import, Webhooks, Stapel-KI und Automatisierungen beachten dieselben Regeln. Regelverstöße liefern 422 mit Gründen je Feld.

Importieren Sie CSV oder Excel mit Spaltenzuordnung und Vorschau, bis 20.000 Zeilen. Eine ungültige Zeile bricht alles ab. Alle Daten erlaubt CSV-, Excel- oder JSON-Export. Dateien bis 25 MiB werden auf Schadsoftware geprüft und verschlüsselt: PDF, Word, Excel, PowerPoint, Text, Markdown, CSV, JSON, PNG und JPEG. Rechte und Löschung folgen dem Datensatz. databases.file_text liest Text einschließlich Scans über Sluis OCR mit den Rechten des Lesers.

Freigabe und Sichtbarkeit

Teilen bietet Privat, Bestimmte Personen oder Organisation. Datensätze erlaubt das Anlegen sowie Ändern und Löschen eigener sichtbarer Datensätze. Alle Daten sieht und ändert auch alle Datensätze und exportiert. Verwalten veröffentlicht zusätzlich Schema, Regeln und angeheftete Ansichten. Freigabe, Löschung und administrative Einstellungen bleiben beim Eigentümer oder den Administratoren einer organisationsweiten Datenbank; Verwalten macht niemanden zum Eigentümer.

Für Datensätze zeigt eine Tabelle alles, nur eigene Datensätze, nichts oder Datensätze, deren Personenfeld das Mitglied nennt. Alle Daten und Verwalten sehen alles. Versionen setzen gespeicherte Sichtbarkeit nicht zurück. Entzogener Zugriff beendet auch Live-Zugriff.

Chat- und Agentenzugriff

Chattools listen, durchsuchen und lesen zugängliche Datenbanken, lesen Anhänge und zeigen Ansichten. Erwähnen Sie eine Datenbank mit @ oder aktivieren Sie die Auffindbarkeit im Chat, um Beschreibung und Tabellen in den Kontext aufzunehmen. Das erteilt keine Rechte. Das Listenwerkzeug bleibt auch ohne vorhandene Datenbanken verfügbar.

agent_write steht je Datenbank standardmäßig auf ask: Erstellen, Ändern und Löschen warten jeweils auf Ihre Bestätigungskarte. allow arbeitet ohne Karte, read_only lehnt ab. Zustimmung erweitert keine Rechte. Geänderte Daten, Schema oder Richtlinie können eine neue Anfrage erfordern.

Verbinden Sie bestimmte Datenbanken mit einem Agenten über read- oder write-Freigaben. Jeder Aufruf schneidet die aktuelle Freigabe mit den Rechten des ausführenden Mitglieds. Die Gruppe databases ergänzt Schemawerkzeuge, nicht Zugriff auf alle Datenbanken. Unbeaufsichtigte Läufe können keine Karten bestätigen: Schreiben braucht write und die Richtlinie allow.

Stapel-KI füllt ausgewählte Felder passender Datensätze, bis 200 pro Auftrag, mit Fortschritt, Fehlern und Abbruch. Sie nutzt die Rechte des Initiators sowie normale Richtlinien, Datenschutz und Tokenbudget. Datensatztext ist Inhalt, keine Anweisung. Ansichten rufen Wissen, Dokumente, Aufnahmen oder Konnektoren nicht als UI-Funktionen auf; nutzen Sie konfigurierte Agenten oder Automatisierungen.

Automatisierungen und Webhooks

Automatisierungen reagieren auf neue Datensätze, Änderungen ausgewählter Felder oder Statuswechsel. Zeittrigger laufen mindestens alle 15 Minuten, täglich, wöchentlich oder vor einem Datumsfeld, mit Zeitzone. Aktionen starten Agenten, benachrichtigen Mitglieder oder rufen genehmigte MCP-Konnektoren auf. Läufe zeigen Ergebnis und Kosten; Aktivieren zeigt eine Schätzung, ab 5 € monatlich mit Bestätigung.

Die Automatisierung läuft als ihr konfigurierter Eigentümer, beschränkt auf ihre Datenbank und aktuelle Agentenfreigaben. Mitglieder, Webhooks und andere Agenten können sie starten, ihr eigener Lauf jedoch nicht. Ketten besuchen dieselbe Automatisierung nicht erneut. Import und Stapel-KI starten keine Datensatzautomatisierungen. Maximal 200 Läufe pro Datenbank und Tag werden eingereiht. Nachrichten erscheinen in Workspace, per Push und nach E-Mail-Präferenz, höchstens 20 pro Mitglied und Tag.

Eingehende WebHooks sind aus, bis ein Eigentümer oder Admin sie aktiviert. Verwalten erlaubt einen Endpunkt pro Tabelle: POST /hooks/databases/{database}/{collection}, ohne Sitzung oder Bearer-Token. Das whsec_-Geheimnis erscheint nur beim Anlegen oder Rotieren. Die optionale IP-Liste umfasst bis 20 Adressen oder CIDR-Bereiche.

Senden Sie ein JSON-Objekt bis 16 KiB. Unbekannte Felder werden entfernt, Dateifelder ignoriert; alle Regeln gelten. Signieren Sie exakte Bytes mit HMAC-SHA256: X-Sluis-Timestamp sind Unix-Sekunden innerhalb von fünf Minuten; X-Sluis-Signature ist sha256= plus Hexsignatur in Kleinbuchstaben über Zeitstempel, Punkt und Body. Akzeptierte Signaturen sind nicht wiederverwendbar. 402, 429 oder 5xx nur innerhalb des Zeitfensters erneut senden; 429 enthält Retry-After. Ohne Redis wird mit 503 abgelehnt.

Antworten: 201 erstellt; 400 ungültiges Objekt; 401 falsche, alte oder wiederholte Signatur; 402 Guthaben blockiert; 403 IP abgelehnt; 404 Endpunkt oder Funktion unbekannt oder aus; 413 Body- oder Speicherlimit; 422 ungültiger Datensatz; 429 Ratenlimit; 503 nicht verfügbar. Regelfehler enthalten error und issues mit field, rule und message; andere Antworten haben keinen Body. Limits: 120 Zustellungen je Minute und Endpunkt, 600 je Organisation sowie Senderlimit. Das Audit erfasst bei Missbrauch Ablehnungen stichprobenartig; die Verwaltung zeigt die letzten 20 Zustellungen. Signaturbeispiele folgen.

SECRET='whsec_...'   # shown once when the endpoint is created or rotated
URL='https://gateway.sluis.ai/hooks/databases/DATABASE_ID/COLLECTION'
BODY='{"title":"Printer jammed","priority":"high"}'
TS=$(date +%s)
# HMAC-SHA256 over "<timestamp>.<exact body bytes>", lowercase hex
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')
curl -i -X POST "$URL" \
  -H 'Content-Type: application/json' \
  -H "X-Sluis-Timestamp: $TS" \
  -H "X-Sluis-Signature: sha256=$SIG" \
  --data-binary "$BODY"
import { createHmac } from "node:crypto";

const body = JSON.stringify({ title: "Printer jammed", priority: "high" });
const ts = String(Math.floor(Date.now() / 1000));
const sig = createHmac("sha256", process.env.SLUIS_WEBHOOK_SECRET)
  .update(`${ts}.${body}`)
  .digest("hex");
const res = await fetch("https://gateway.sluis.ai/hooks/databases/DATABASE_ID/COLLECTION", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Sluis-Timestamp": ts,
    "X-Sluis-Signature": `sha256=${sig}`,
  },
  body, // send exactly the string you signed
});
console.log(res.status); // 201 when the record was created

Grenzen und Abrechnung

Grenzen: 256 KiB Quelle, 20 Tabellen, 100 Felder pro Tabelle und 16 KiB je Datensatz. Regeln laufen begrenzt in einer Sandbox ohne Netzwerk oder freien Dateizugriff. Eigentümer und Admins können Datenbanken in den Konsoleneinstellungen ausschalten, ohne sie zu löschen.

Ab dem sieben Tage vorher angekündigten Abrechnungsstart kostet Speicher monatlich 5,15 € pro GB für Text und Daten und 0,0803 € für Dateien, Anhänge und Aufnahmen (1 GB = 1.000.000.000 Bytes). Unbeaufsichtigte Agenten und Automatisierungen kosten 0,005 € je Minute, pro angefangener Sekunde; interaktive Chats haben keine Laufzeitgebühr. KI-Tokens werden getrennt erfasst.

Speicherlimit: 100 GB oder 5.000.000 Objekte je Abrechnungs-Hauptorganisation einschließlich Unterorganisationen. Verantwortliche können ein monatliches Speicherbudget setzen. Leeres Guthaben pausiert speichererweiternde Schreibvorgänge und unbeaufsichtigte Arbeit, nicht Lesen, Download, Export oder Löschen. Vorhandene Daten bleiben. Schema, Freigabe und Verwaltung werden auditiert; der Datensatzverlauf ist getrennt.

Ein Speicherlimit bei Sitzungsanfragen liefert HTTP 413 mit error.code storage_full; zu große Anfragen tragen diesen Code nicht. PUT /chat/settings behält database_webhooks_enabled bei fehlendem Feld oder null bei. Mit true oder false ändern Sie es ausdrücklich; anfangs ist es aus.