diff --git a/docs/PR_REPORT_20260126pm.md b/docs/PR_REPORT_20260126pm.md new file mode 100644 index 0000000..e3bbf72 --- /dev/null +++ b/docs/PR_REPORT_20260126pm.md @@ -0,0 +1,246 @@ +# PR-Bericht: frontend_nyla (feat/saas-multi-tenant-mandates) + +**Ziel-Branch:** `int` +**Feature-Branch:** `feat/saas-multi-tenant-mandates` +**Stand:** Januar 2026 + +--- + +## Übersicht + +| Metrik | Wert | +|--------|------| +| **Anzahl Commits** | 73 | +| **Geänderte Dateien** | 455 | +| **Zeilen hinzugefügt** | ~78'604 | +| **Zeilen gelöscht** | ~15'070 | + +--- + +## Wichtigste inhaltliche Änderungen + +### 1. SaaS Multi-Mandate & Mandatsverwaltung +- Mandaten-Navigation und Mandatenwechsel im UI +- Mandats-Einladungen und Benachrichtigungssystem +- Mandats-Rollen und -Berechtigungen (RBAC) +- Zugriff auf Seiten und Features mandatenbasiert +- UID-/ID-Mapping und Referenzen für Multi-Mandate angepasst + +### 2. Admin-Bereich +- Admin-Seiten: Mandate, RBAC-Rollen, RBAC-Regeln, Team-Mitglieder +- Feature-Zugriff, Benutzer-Zugriff, Mandats-Rollen-Berechtigungen +- Einladungsverwaltung, Benutzer-Mandate, Benutzerübersicht +- RBAC-Export/Import + +### 3. Trustee (Treuhand)-Feature +- Trustee-Views: Dashboard, Positionen, Dokumente, Verträge, Rollen, Organisationen, Access +- Expense-Import-View, Positions-Dokumente +- Trustee-API und Hooks (`useTrustee`, `useTrusteeOptions`) + +### 4. Workflows & Automation +- Workflow-Playground mit zentralem State, Log-Polling, Lifecycle-Hooks +- Automations-Seite und Workflows-Seite +- Workflow-Statistiken, verbesserte Log-Darstellung +- Chatbot-Integration (Messages, Dateien, Lifecycle) + +### 5. PEK (Projekte & Stammdaten) +- Isoliert in Folder + +### 6. Authentifizierung & Nutzerverwaltung +- Magic-Link-Login +- Passwort-Reset (Request & Reset-Seiten) +- Registrierung und Login überarbeitet +- Erweiterter Auth-Hook und CSRF-Utilities + +### 7. GDPR & Rechtliches +- GDPR-konforme Seite/Flows +- PowerOn Home, Datenschutz, AGB als statische HTML-Seiten + +### 8. UI/UX & Architektur +- Neues Page-Management (`core/PageManager`) mit datengetriebenen Seiten +- FormGenerator: Aufteilung in Form, List, Table, Controls, Action-Buttons +- Server-seitige Filter/Sort für generische Tabellen, Scroll-Lock für Header +- Sidebar überarbeitet, Mandaten-Navigation, Tree-Navigation, UserSection +- Notification-Bell, Access-Rules-Editor +- Layouts: `MainLayout`, `FeatureLayout`; Seiten: `FeatureView`, `Dashboard`, `Settings` +- Diverse UI-Komponenten (Log, Messages, MapView, Tabs, Toast, ViewForm, WorkflowStatus, etc.) + +### 9. Konfiguration & Deployment +- Konfiguration in `config/` (env, serverConfig, universalConfig) +- Scripts nach `scripts/` (server, deploy-server) +- GitHub-Workflows angepasst, Node-Version 20 + +### 10. Weitere Features & Fixes +- Speech-Integration (Prototyp), Speech-Seiten & -Transkripte +- Real-Estate/Privilege-Checker isoliert in Folder +- Althaus-Seite, PEK-Tabs umbenannt (Projects, Data Management) +- Einstellungen-Seite, Basedata-Seiten (Connections, Files, Prompts) +- Privilege-Caching und -Checker konsolidiert +- Diverse Build- und TypeScript-Fixes, Hotfixes + +--- + +## Geänderte Dateien (nach Bereichen) + +### Konfiguration & Projekt +- `.cursorignore`, `.gitignore`, `.github/workflows/*.yml` +- `README.md`, `index.html`, `package.json`, `package-lock.json` +- `vite.config.ts` +- `config/*` (neu), `.env.*` → `config/.env.*` +- `scripts/server.js`, `scripts/deploy-server.js` +- `public/`: Favicon, Logos, `poweron-home.html`, `poweron-privacy.html`, `poweron-terms.html` + +### API-Schicht +- `src/api.ts` (erweitert) +- Neu: `src/api/attributesApi.ts`, `authApi.ts`, `automationApi.ts`, `chatbotApi.ts`, `connectionApi.ts`, `featuresApi.ts`, `fileApi.ts`, `mandateApi.ts`, `permissionApi.ts`, `promptApi.ts`, `rbacRulesApi.ts`, `roleApi.ts`, `trusteeApi.ts`, `userApi.ts`, `workflowApi.ts` + +### Auth & Provider +- `src/providers/auth/AuthProvider.tsx`, `ProtectedRoute.tsx`, `authConfig.ts` +- `src/providers/language/LanguageContext.tsx` +- `src/auth/ProtectedRoute.tsx` (entfernt/ersetzt) + +### Core: PageManager +- `src/core/PageManager/PageManager.tsx`, `PageRenderer.tsx`, `SidebarProvider.tsx`, `pageInterface.ts` +- `src/core/PageManager/data/pages/*`: admin (mandates, rbac-role, rbac-rules, team-members), automations, chatbot, connections, dashboard, files, pek, pek-tables, prompts, settings, speech, speech-transcripts, trustee (access, contracts, documents, organisations, positions, roles), workflows +- `src/config/pageRegistry.tsx` + +### Komponenten (Auswahl) +- **AccessRules:** AccessLevelSelect, AccessRulesEditor, AccessRulesTable + Styles +- **FormGenerator:** FormGeneratorControls, FormGeneratorForm, FormGeneratorList, FormGeneratorTable, ActionButtons (Copy, Custom, Delete, Download, Edit, Remove, View) +- **Navigation:** MandateNavigation, TreeNavigation, UserSection + Styles +- **NotificationBell**, **ContentPreview** (inkl. Renderer) +- **Sidebar:** Sidebar, SidebarItem, SidebarSubmenu, SidebarUser, Styles, Logic, Types +- **Dashboard/DashboardChat:** teils entfernt/umgebaut (Playground-basiert) +- **Connections, Dateien, Mitglieder, PageManager, Popup, Prompts:** entfernt oder nach core/Pages migriert +- **Speech:** SpeechConfirmation, SpeechInfo, SpeechSettings, SpeechSignUp +- **TestSharepoint:** Tabelle, Logic, Interfaces +- **Workflows:** WorkflowsTable, workflowsLogic, workflowsTypes +- **UiComponents:** AutoScroll, Button, ConnectedFilesList, CopyableTruncatedValue, DragDropOverlay, DropdownSelect, InfoMessageOverlay, LocationInput, Log/LogMessage, MapView, Messages/ChatMessages, ParcelInfoPanel, Popup, Tabs, TextField, Toast, ViewForm, VoiceLanguageSelect, WorkflowStatus +- **settings:** settingsUser + +### Hooks +- Neu/erweitert: `useAccessRules`, `useAdminMandates`, `useAdminRbacRoles`, `useAdminRbacRules`, `useAuthentication`, `useAutomations`, `useChatbot`, `useConnections`, `useCurrentInstance`, `useFeatureAccess`, `useFiles`, `useInstancePermissions`, `useInvitations`, `useMandateRoles`, `useMandates`, `useNavigation`, `useNotifications`, `usePek`, `usePekTables`, `usePermissions`, `usePlayground`, `usePrompts`, `useRbacExportImport`, `useResizablePanels`, `useRoles`, `useSettings`, `useTrustee`, `useTrusteeOptions`, `useUserMandates`, `useUsers`, `useWorkflows` +- Playground: `useDashboardInputForm`, `useDashboardLogTree`, `useWorkflowLifecycle`, `useWorkflowPolling`, `useWorkflows`, `playgroundUtils` +- Entfernt: `useSharePointTest` + +### Seiten +- **Neu:** `Dashboard.tsx`, `FeatureView.tsx`, `GDPR.tsx`, `InvitePage.tsx`, `PasswordResetRequest.tsx`, `Reset.tsx`, `Settings.tsx` +- **Login, Register:** überarbeitet +- **Home:** Connections, Dashboard, Dateien, Einstellungen, Prompts, TeamBereich, TestSharepoint, Workflows entfernt/ausgelagert; `Home.tsx` angepasst +- **admin/:** AdminFeatureAccessPage, AdminFeatureInstanceUsersPage, AdminFeatureRolesPage, AdminInvitationsPage, AdminMandateRolePermissionsPage, AdminMandateRolesPage, AdminMandatesPage, AdminUserAccessOverviewPage, AdminUserMandatesPage, AdminUsersPage +- **basedata/:** ConnectionsPage, FilesPage, PromptsPage +- **migrate/:** ChatbotPage, PekPage, SpeechPage +- **views/trustee/:** TrusteeDashboardView, TrusteeDocumentsView, TrusteeExpenseImportView, TrusteeInstanceRolesView, TrusteePositionDocumentsView, TrusteePositionsView +- **workflows/:** AutomationsPage, PlaygroundPage, WorkflowsPage + +### Contexts, Stores, Utils, Locales +- **Contexts:** FileContext, PekContext, PekTablesContext, ToastContext, WorkflowSelectionContext +- **Stores:** featureStore +- **Utils:** attributeTypeMapper, csrfUtils, privilegeCheckers, time, userCache +- **Types:** mandate.ts +- **Locales:** de.ts, en.ts, fr.ts (erweitert) + +### Styles & Assets +- `src/styles/`: buttons.css, pages.module.css, themes (dark, light), assets/bg.jpg +- `src/assets/styles/light.css` entfernt +- `src/index.css`, `src/main.tsx` + +### Dokumentation +- `docs/DASHBOARD_LOG_POLLING_DOCUMENTATION.md` (neu) +- `documentation/sidebar.md` (entfernt) +- `.cursor/plans/implement_rbac_roles_page_*.plan.md` (Cursor-Plan) + +--- + +## Commit-Historie (chronologisch) + +| Datum | Commit | Nachricht | +|-------|--------|-----------| +| 2025-09-10 | 0bd6091 | updated cofig logic | +| 2025-09-15 | 9fc33c7 | feat: added speech integration prototype | +| 2025-09-16 | 9e7c3b2 | implemented feedback | +| 2025-09-18 | 41aa0fd | minor bugfixing | +| 2025-10-01 | 05f51c4 | working on action button | +| 2025-10-08 | b238ab8 | fixed action buttons | +| 2025-10-12 | 6988984 | finished files page | +| 2025-10-12 | 9519fed | pushing to int | +| 2025-10-12 | 8a0e5f8 | fix: ready for build | +| 2025-12-01 | 101b306 | added PEK pages | +| 2025-12-01 | aa34508 | updated the table view | +| 2025-12-15 | aaf64b8 | resumed backend integration, RBAC focus | +| 2025-12-15 | f8d5c0a | fix: geolinien outline | +| 2025-12-15 | 78889bf | fix: collapsed sidebar | +| 2025-12-22 | bfbe3f8 | PEK updates | +| 2025-12-30 | cf76e89 | pek update | +| 2025-12-30 | 94e8681 | fix: centralized workflow state management on dashboard page | +| 2025-12-30 | 14273c2 | Merge PR #2 feat/real-estate | +| 2025-12-30 | d3c950d | fix: consolidated privilegechecker and usepermissions hook | +| 2026-01-02 | 641930b | updated log rendering | +| 2026-01-02 | 401c088 | fix: fixed styling of log messages | +| 2026-01-02 | ae6a634 | feature: show workflow stats | +| 2026-01-05 | c76e7ef | feat: completely build up althaus page | +| 2026-01-05 | 079d398 | fix: build errors removed | +| 2026-01-05 | 6315c9a | fix: constant reload | +| 2026-01-05 | 6c90a00 | fix: another build error | +| 2026-01-05 | 05508cc | fix: privilege caching led to no pages showing | +| 2026-01-05 | 826eead | fix: added more rolelabel logging | +| 2026-01-05 | 48754d6 | fix: typescript build errors | +| 2026-01-05 | fc55a25 | fix: added more rolelabel logging | +| 2026-01-05 | 5f22c7b | fix: added more rolelabel logging | +| 2026-01-05 | eb280db | feat: completely build up althaus page | +| 2026-01-05 | c80ad96 | Rename PEK tabs: Projects and Data Management | +| 2026-01-05 | dd79895 | Merge int | +| 2026-01-05 | b0826a3 | feat: weiter chatbot implementiert | +| 2026-01-05 | 23508ea | fix: merge conflicts | +| 2026-01-05 | 350cc7b | fix: geolinien outline | +| 2026-01-05 | 407a3c4 | PEK updates | +| 2026-01-05 | c5a82dd | feat: multiselect parcels and create projects | +| 2026-01-09 | 836b803 | fix: fixed and finished chatbot integration | +| 2026-01-09 | 3df83f0 | fix: button fix | +| 2026-01-12 | 7d794ef | Merge feat/chatbot into int | +| 2026-01-12 | 5808bd4 | fixed merge conflicts | +| 2026-01-12 | 239fd32 | fix: readded deleted code, fixed build | +| 2026-01-12 | be3844f | feat: privilege checker into real estate pages | +| 2026-01-12 | eaf69f4 | feat/fix: added admin pages, fixed sidebar width | +| 2026-01-12 | 64d14af | feat: finished admin pages | +| 2026-01-12 | acdcf2c | fix: moved team-members file to correct place | +| 2026-01-12 | 06ffce8 | fix: fixed build | +| 2026-01-13 | 9fc0c9b | user magic link implemented | +| 2026-01-13 | 7d2808d | hotfix | +| 2026-01-13 | b2c38e7 | Fixed UI issues | +| 2026-01-13 | 71666d2 | hotfixes | +| 2026-01-13 | de98b86 | hotfixes | +| 2026-01-13 | c5d60c4 | node-version 20 | +| 2026-01-13 | 2b96ab7 | fixed trustee access | +| 2026-01-14 | 54ba020 | fix: fixed formgenerator layout and design | +| 2026-01-17 | 8033ca9 | prepared multimandate | +| 2026-01-20 | 70c84dd | revised ui components | +| 2026-01-21 | 7f07a55 | saas mandates core done | +| 2026-01-21 | 537b624 | fixed uid mapping to id | +| 2026-01-21 | d387322 | serverside filter and sort for form generic | +| 2026-01-21 | 34d4646 | generic form table scroll lock for headers | +| 2026-01-21 | f99b6b7 | saas multi mandate tested | +| 2026-01-22 | b207c0c | dyn options in api | +| 2026-01-23 | dc4b475 | refactored pages ui access with saas mandates | +| 2026-01-24 | cc8770d | reference fixes | +| 2026-01-24 | 41e02b5 | fixed automation and trustee | +| 2026-01-24 | 5952074 | access rules editor enhanced | +| 2026-01-24 | 6a406d8 | fixes | +| 2026-01-25 | bf4ddc6 | rbac rules tested and fixed | +| 2026-01-25 | 2b220fe | gpdr compliancy implemented | +| 2026-01-26 | 28af4cb | mandate invitation and notification system | +| 2026-01-26 | f41e6d0 | fixed ai call end to end with saas multimandate | + +--- + +## Hinweise für das PR-Review + +1. **Breite Änderung:** Viele Dateien und neue Strukturen; Fokus auf PageManager, Admin, Trustee und Workflow/Playground empfohlen. +2. **Auth & Mandate:** Magic Link, Reset-Flow und Mandatenwechsel sollten manuell geprüft werden. +3. **RBAC:** Admin RBAC-Seiten und Access Rules Editor sind kritisch für Berechtigungen. +4. **Build & Lint:** `npm run build` und Linter im CI prüfen. +5. **Doku:** `docs/DASHBOARD_LOG_POLLING_DOCUMENTATION.md` für Playground/Logging konsultieren. + +--- + +*Bericht erstellt aus der Git-Historie `main..HEAD` im Repository `frontend_nyla` (Branch `feat/saas-multi-tenant-mandates`).*