1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 17:19:56 +01:00
effigenix/frontend/apps/cli/README.md

77 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).