-- LDAP/Active-Directory-Anbindung (IAM-05, siehe core-kanban/tickets/IAM-05.md).
-- Bind-Credentials liegen NIE in dieser Tabelle im Klartext — bind_password_env
-- nennt nur den Namen einer Umgebungsvariable, aus der das Passwort zur
-- Laufzeit gelesen wird (Projekt-Konvention: Secrets nur ueber Env-Vars).
CREATE TABLE ldap_config (
    id                 BOOLEAN PRIMARY KEY DEFAULT true CHECK (id),
    url                TEXT NOT NULL,
    bind_dn            TEXT NOT NULL,
    bind_password_env  TEXT NOT NULL,
    base_dn            TEXT NOT NULL,
    user_filter        TEXT NOT NULL DEFAULT '(objectClass=person)',
    updated_at         TIMESTAMPTZ NOT NULL DEFAULT now()
);

-- Erlaubnis-Matrix LDAP-Gruppe -> NEXARCH-Rolle (Akzeptanzkriterium 3).
-- Eine LDAP-Gruppe OHNE Eintrag hier vergibt KEINE Rolle — kein impliziter
-- Zugriff durch Gruppennamen-Zufall (Privilege-Escalation-Schutz, siehe
-- "Bekannte Fehler vermeiden" im Ticket).
CREATE TABLE ldap_group_role_mapping (
    ldap_group TEXT PRIMARY KEY,
    role       TEXT NOT NULL CHECK (role IN ('user', 'tenant_admin'))
);
