feat: Link-Widget restlos entfernt (Web, API, Migration, Handbuch, Changelog)
- Web: Union-Mitglied, Constraints, Icon, Registry-Eintrag, wire-Funktion, Katalog, Seiten-Verdrahtung, Tests und i18n (de/en) fuer den Typ link entfernt; link-widget.tsx/.test.tsx geloescht - API: create-widget.dto.ts (@IsIn-Liste) und widget-module-map.ts (Kommentare) auf sieben Typen angepasst; schema.prisma unveraendert - Neue Migration 20260916120000_remove_link_widget: eine idempotente DELETE-Anweisung auf WidgetInstance, FavoriteLink kaskadiert ueber den bestehenden FK; wird in diesem Auftrag NICHT ausgefuehrt - Neuer widget-wrapper-Test belegt den grauen Fallback fuer unbekannte Widget-Typen (Bestandsverhalten, jetzt festgeschrieben) - Handbuch (Widget-Tabelle, Einstellungs-Hinweise) und CHANGELOG (Geaendert/Entfernt/Behoben) aktualisiert - Web: 52 Dateien / 344 Tests gruen, tsc Exit 0; API: tsc Exit 0, dashboard-Spec 31 Tests gruen Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
-- Widget "Link" entfernt (quick-260916-iex): das Favoriten-Widget deckt den
|
||||
-- Anwendungsfall "Schnellzugriff auf Links" bereits vollstaendig ab, ein
|
||||
-- separates Einzel-Link-Widget ist ueberfluessig. Web/API haben den Typ
|
||||
-- `link` restlos entfernt (Registry, Katalog, DTO); diese Migration raeumt
|
||||
-- bestehende Link-Kacheln in der Datenbank hinterher.
|
||||
--
|
||||
-- FavoriteLink-Zeilen des jeweiligen Widgets kaskadieren automatisch ueber
|
||||
-- den bestehenden Fremdschluessel "FavoriteLink_widgetId_fkey ... ON DELETE
|
||||
-- CASCADE" (Migration 20260708090000_add_favorite_link) -- kein separates
|
||||
-- DELETE auf "FavoriteLink" noetig.
|
||||
--
|
||||
-- Laeuft als Migrationsrolle "tessera" (POSTGRES_USER, Superuser mit
|
||||
-- BYPASSRLS, siehe 20260909130000_rls_app_role). Die FORCE ROW LEVEL
|
||||
-- SECURITY-Regel auf "WidgetInstance" (Migration 20260909140000) greift
|
||||
-- fuer diese Rolle deshalb nicht -- das DELETE sieht und loescht ueber
|
||||
-- alle Mandanten hinweg.
|
||||
--
|
||||
-- Idempotent: ein zweiter Lauf loescht 0 Zeilen. Keine Schemaaenderung.
|
||||
-- Verwaiste Eintraege im Layout-JSON von "DashboardLayout" sind unschaedlich
|
||||
-- (dashboard-grid.tsx rendert nur ueber widgets.map) und verschwinden beim
|
||||
-- naechsten Speichern des Dashboards von selbst.
|
||||
DELETE FROM "WidgetInstance" WHERE "widgetType" = 'link';
|
||||
Reference in New Issue
Block a user