27 lines
1.3 KiB
SQL
27 lines
1.3 KiB
SQL
-- Workspace-Admins (AUSBAUSTUFEN.md 4.8).
|
|
--
|
|
-- Ein Workspace-Admin verwaltet in genau einem Workspace Projekte und deren
|
|
-- Keys — nur über die Weboberfläche, nie über MCP. Er ist damit das Gegenstück
|
|
-- zum Plattform-Admin (ADMIN_TOKEN), aber ohne Zugriff auf andere Workspaces,
|
|
-- das Schreibbudget oder den Export.
|
|
--
|
|
-- Die Tabelle liegt in der Kontroll-Datenbank und nicht in der Workspace-Datei:
|
|
-- Beim Anmelden ist der Workspace noch unbekannt, und genau diese Frage — zu
|
|
-- welchem Workspace gehört dieses Token? — beantwortet die Kontroll-Datenbank.
|
|
--
|
|
-- Wie bei den API-Keys steht hier nur der Hash, nie der Klartext. Ein
|
|
-- zurückgezogener Zugang bleibt als Zeile erhalten (revoked_at gesetzt), damit
|
|
-- das Protokoll weiterhin sagen kann, wer etwas getan hat.
|
|
--
|
|
-- Leerer Text statt NULL für "noch nie benutzt" und "aktiv" — wie bei api_keys.
|
|
CREATE TABLE workspace_admins (
|
|
id TEXT PRIMARY KEY,
|
|
workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
name TEXT NOT NULL,
|
|
hash TEXT NOT NULL UNIQUE,
|
|
created_at TEXT NOT NULL,
|
|
last_used_at TEXT NOT NULL DEFAULT '',
|
|
revoked_at TEXT NOT NULL DEFAULT ''
|
|
);
|
|
|
|
CREATE INDEX idx_workspace_admins_workspace ON workspace_admins (workspace_id);
|