Wofür das Modul gedacht ist
Übersicht ist Teil des aktiven Modul-Katalogs und deckt einen klaren Ausschnitt des Produktalltags ab.
Projektübersicht mit Status, Kontext und Finanzdaten. Im Projektkontext bedeutet das, dass der Bereich nicht isoliert funktioniert, sondern direkt an Team, Status und weitere Projektbereiche anknüpft.
Übersicht ist als eigenständiger Produktbaustein gedacht. Gerade deshalb lohnt sich ein Blick darauf, wie der Bereich mit Rollen, Datenkontext und angrenzenden Modulen zusammenspielt.
Typische Einsatzfälle
Diese Situationen zeigen, wann der Bereich in einem sauberen Rollout oder im laufenden Betrieb konkret Mehrwert liefert.
Schnell Orientierung gewinnen
Übersicht bietet einen klaren Einstieg in den jeweiligen Arbeitsbereich.
Mit dem restlichen Produkt verzahnen
Der Bereich arbeitet am besten, wenn Verantwortlichkeiten, Sichtbarkeit und angrenzende Module gemeinsam gedacht werden.
Rollout schrittweise aufbauen
Im Rollout sollte zuerst der relevante Kernnutzen sichtbar sein und später gezielt erweitert werden.
Wie das Modul mit anderen Bereichen zusammenspielt
struct-i-vio ist als zusammenhängende Plattform gedacht. Diese Module liegen fachlich am nächsten bei diesem Bereich.
Projekt-Infos
Projekt-Infos ergänzt Übersicht, weil beide Bereiche im Alltag direkt aufeinander aufbauen oder dieselben Verantwortlichen berühren.
DetailsCash-Flow
Cash-Flow ergänzt Übersicht, weil beide Bereiche im Alltag direkt aufeinander aufbauen oder dieselben Verantwortlichen berühren.
DetailsDokumente
Dokumente ergänzt Übersicht, weil beide Bereiche im Alltag direkt aufeinander aufbauen oder dieselben Verantwortlichen berühren.
DetailsBerechtigungen und Sichtbarkeit
Die öffentliche Dokumentation beschreibt die Logik auf Produktniveau - nicht als technische Policy-Liste, sondern als Rollout-Leitfaden.
Best Practices
So bleibt der Bereich bei Einführung und Nutzung anschlussfähig an den restlichen Produktfluss.
Entwickler Info
Modul mit gravierender Schema-vs-Code-Drift: dim_modules definiert nur 2 Action-Keys (edit_project_address + _all), aber Code referenziert ZWEI WEITERE (view_financials + view_financials_all) in 12 Endpoints. Diese Phantom-Permissions sind nicht im Standard-Admin-UI konfigurierbar.
Entwickler-Info aufklappen (3)
⚠ KRITISCHPhantom-Permissions: view_financials + view_financials_all
Diese beiden Action-Keys werden in 12 API-Endpoints aufgerufen (/api/projects/detail.ts, /api/projects/overview.ts, /api/projects/cost-summary.ts, /api/budget/overview.ts, /api/tasks/index.ts, /api/hours/by-project.ts und mehr), sind aber WEDER in dim_modules.default_permissions DEFINIERT NOCH in den Permission-Presets aus lib/permission-presets.ts gesetzt. Konsequenz: can_perform_action liefert für diese Keys false zurück — ausser für Tenant-Admins (Level 0), die via Bypass durchgewunken werden. In Praxis können daher nur Admins globale Finanzdaten einsehen, weil Geschäftsführung & andere Levels keine effektive Permission haben — selbst wenn sie sie bräuchten.
pages/api/budget/overview.ts:217-223 (Topf-Endpoint, gates auf view_financials_all)pages/api/projects/detail.ts:127, /overview.ts:148, /cost-summary.ts:218pages/api/tasks/index.ts:63, /[id]/links/index.ts:51, /linkable-entities.ts:79pages/api/hours/by-project.ts:81, /api/expenses/by-project.ts:81pages/api/projects/[id]/planning/overview.ts:352, /cost-history.ts:270lib/permission-dependencies.ts (verlangt company_fund.view_fund die Action)
⚠ KRITISCHVersteckte Coupling: edit_project_address → project_team.view_team
Die UPDATE-RLS-Policy auf dim_projects gates über dim_projects_select_own → EXISTS(SELECT FROM project_members ...). Diese Subquery braucht project_team.view_team. Wer ohne view_team arbeitet, bekommt 404 statt 200 selbst mit korrektem edit_project_address-Toggle. Bereits in MANUAL_PERMISSION_DEPENDENCIES erfasst.
lib/permission-dependencies.ts: project_overview.edit_project_address → project_team.view_team
Saubere _all/scoped Verdrahtung bei edit_project_address
edit_project_address (project-scoped) und edit_project_address_all (global) folgen dem etablierten Pattern. Der globale Pfad braucht nicht zusätzlich view_team weil dim_projects_select_all greift, was view_all_projects-gegated ist.
