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

2.4 KiB
Raw Blame History

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 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

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