mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 12:29:36 +01:00
Frontend: @sentry/node mit instrument.ts, globale Error-Handler, 5xx-Interceptor. Backend: sentry-spring-boot-starter-jakarta, Sentry.captureException im GlobalExceptionHandler. Konfiguration über SENTRY_DSN Env-Variable, Bugsink via make bugsink startbar. |
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||
Effigenix ERP – Terminal UI
Interaktive TUI für das Effigenix ERP-Backend. Gebaut mit Ink (React für Terminal).
Voraussetzungen
- Node.js 20+, pnpm 9+
- Backend läuft auf
http://localhost:8080
Starten
# 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 RollenPasswort ä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
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).