Plattform & Einstieg · Projektmodul

Übersicht: wofür der Bereich im Projektkontext gedacht ist.

Projektübersicht mit Status, Kontext und Finanzdaten. Das Modul erscheint innerhalb eines einzelnen Projekts und wirkt damit unmittelbar im Projektkontext.

  • Übersicht erklärt kompakt, wofür der Bereich gedacht ist und wann er im Arbeitsalltag relevant wird.
  • Der Bereich spielt in der Praxis besonders mit Projekt-Infos und Cash-Flow zusammen.
  • Nutzen, Sichtbarkeit und Verantwortlichkeit ergeben sich hier stark aus dem Projektkontext.
Modulzweck

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.

Das Modul erscheint innerhalb eines einzelnen Projekts und wirkt damit unmittelbar im Projektkontext.
Praxisbezug

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.

Modulverbindungen

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.

Sichtbarkeit

Berechtigungen und Sichtbarkeit

Die öffentliche Dokumentation beschreibt die Logik auf Produktniveau - nicht als technische Policy-Liste, sondern als Rollout-Leitfaden.

Die Sichtbarkeit orientiert sich in der Regel am Projektkontext, an Projektmitgliedschaft und an projektbezogenen Zusatzrollen.
Gerade bei Teamarbeit lohnt sich ein abgestuftes Modell aus Sichtbarkeit, Bearbeitung und Freigaben statt einer pauschalen Alles-oder-Nichts-Freigabe.
Empfohlener Einsatz

Best Practices

So bleibt der Bereich bei Einführung und Nutzung anschlussfähig an den restlichen Produktfluss.

Mit einem klaren Kernnutzen starten und nur die angrenzenden Bereiche freischalten, die den Alltag direkt entlasten.
Das Modul mit Rollen, Projektkontext und Navigation so verzahnen, dass Nutzer ohne Zusatzschulungen zurechtfinden.
Im Rollout regelmäßig prüfen, ob der Bereich wirklich für die richtigen Nutzer sichtbar und erreichbar ist.
Tiefer einsteigen

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:218
  • pages/api/tasks/index.ts:63, /[id]/links/index.ts:51, /linkable-entities.ts:79
  • pages/api/hours/by-project.ts:81, /api/expenses/by-project.ts:81
  • pages/api/projects/[id]/planning/overview.ts:352, /cost-history.ts:270
  • lib/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.