Files
provisioning-server/migrations/0037_terminal_netzwerkscanner_sperre.sql
adminandClaude Sonnet 5 10d31f8cf3 Gerätegruppen mit alternativem Workspace, device_merkmale abgelöst
- Migration 0038: gruppen.workspace_id (nullable FK), device_merkmale
  Tabelle entfernt (keine Datenzeilen auf anode, geprüft vor Drop).
- set_gruppe_workspace()/clear_gruppe_workspace(): weist einer
  Gerätegruppe einen alternativen Workspace zu, ersetzt die komplette
  Baseline für Mitgliedsgeräte statt nur einzelner Merkmale. Prüft
  Organisationszugehörigkeit des Workspace (global oder eigene Org) und
  die Exklusivitätsregel (ein Gerät nur in einer workspace-tragenden
  Gruppe gleichzeitig) - sowohl beim Zuweisen als auch beim Hinzufügen
  eines Geräts zu einer bereits workspace-tragenden Gruppe.
- resolve_effective_workspace_id(): neue Auflösungsstufe zwischen
  Bereitstellungsvorlage und OE-/Gruppen-Merkmal-Overrides.
- fetch_auftragskatalog_state()/_listing(): device_merkmale-Override-Ebene
  entfernt (gewann bisher immer), select_auftrag/deselect_auftrag-
  Endpunkte + set_auftrag_selection() entfernt. get_device_auftragskatalog
  bleibt als reine Ist-Zustand-Anzeige.
- Neuer Endpunkt GET /api/v1/organizations/{id}/workspaces (global +
  eigene, org-gefiltert - fetch_workspaces() bleibt admin-only, würde
  sonst fremde private Workspaces preisgeben).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
2026-09-10 10:43:34 +02:00

23 lines
1.1 KiB
PL/PgSQL

BEGIN;
-- Letzte zwei offene Punkte aus der ursprünglichen Härtung-Liste
-- (Roadmap-Update 10.09.2026): "Terminal nur bei Bedarf" (weiche
-- Variante - nur Menüeintrag ausblenden) und "keine Netzwerkscanner"
-- (schlankes Cleanup, da ADR-0026 Selbstinstallation ohnehin verhindert).
INSERT INTO merkmale (id, key, name, description, kategorie_id, im_auftragskatalog) VALUES
(gen_random_uuid(), 'terminal-sperre', 'Terminal ausblenden',
'Blendet Terminal-Emulatoren aus dem Anwendungsmenü aus (Menüeintrag, keine Ausführungssperre).',
(SELECT id FROM kategorien WHERE key = 'haertung'), TRUE),
(gen_random_uuid(), 'netzwerkscanner-sperre', 'Keine Netzwerkscanner',
'Entfernt vorinstallierte Netzwerkscanner-Werkzeuge (z.B. nmap, Wireshark) aus dem Image.',
(SELECT id FROM kategorien WHERE key = 'haertung'), TRUE);
INSERT INTO blueprints (id, merkmal_id, backend_id, ansible_role)
SELECT gen_random_uuid(), m.id, b.id, m.key
FROM merkmale m
JOIN backends b ON b.key IN ('mint-image', 'debian-image', 'ubuntu-image')
WHERE m.key IN ('terminal-sperre', 'netzwerkscanner-sperre');
COMMIT;