# Effigenix ERP – Terminal UI Interaktive TUI für das Effigenix ERP-Backend. Gebaut mit [Ink](https://github.com/vadimdemedes/ink) (React für Terminal). ## Voraussetzungen - Node.js 20+, pnpm 9+ - Backend läuft auf `http://localhost:8080` ## Starten ```bash # Im frontend/-Verzeichnis pnpm install pnpm --filter @effigenix/cli dev ``` ## Bedienung **Navigation:** `↑↓` bewegen, `Enter` auswählen/bestätigen, `Escape`/`Backspace` zurück. ### Login Benutzername und Passwort eingeben, `Tab` zum Feldwechsel, `Enter` auf dem letzten Feld. Die Session wird in `~/.effigenix/config.json` gespeichert und beim nächsten Start wiederhergestellt. ### Hauptmenü | Eintrag | Funktion | |---------|----------| | Benutzerverwaltung | Liste, Anlage, Details, Passwort | | Rollenverwaltung | Liste, Details | | Logout | Session beenden | ### Benutzerverwaltung - **Liste:** `↑↓` navigieren, `Enter` → Detailansicht - **Anlegen:** Formular mit Tab-Navigation; Felder werden per Zod validiert (Inline-Fehler) - **Detailansicht → Aktionen:** - `Sperren/Entsperren` – Bestätigungsdialog (J/N) - `Rolle zuweisen/entfernen` – interaktive Auswahlliste der verfügbaren Rollen - `Passwort ändern` – eigener Screen mit Passwort-Bestätigung - Erfolgreiche Aktionen zeigen eine grüne Box (auto-dismiss nach 3 s) ### Rollenverwaltung Liste aller Rollen mit Berechtigungen; Readonly-Ansicht. --- ## Entwicklung ```bash pnpm --filter @effigenix/cli typecheck # TypeScript-Check pnpm --filter @effigenix/cli test # vitest (15 Tests) pnpm --filter @effigenix/cli build # tsup → dist/ ``` ### Struktur ``` src/ ├── components/ │ ├── auth/ # LoginScreen │ ├── layout/ # MainLayout, Header, StatusBar │ ├── roles/ # RoleListScreen, RoleDetailScreen, RoleSelectList │ ├── shared/ # ErrorDisplay, SuccessDisplay, ConfirmDialog, FormInput, LoadingSpinner │ └── users/ # UserListScreen, UserDetailScreen, UserCreateScreen, ChangePasswordScreen ├── hooks/ # useUsers, useRoles, useTerminalSize ├── state/ # auth-context, navigation-context └── utils/ # api-client, token-storage ``` ### Token-Speicherung `~/.effigenix/config.json` (chmod 600). Enthält Access-Token, Refresh-Token und Ablaufzeit. Token-Refresh erfolgt proaktiv (< 5 min bis Ablauf) und reaktiv (bei 401).