FunktionenMitarbeiter-Handbuch

Setup-Wizard

Pilot

Dreischrittiger Einstiegs-Wizard fuer den sellx Hub: DB-Verbindung, Verbindungstest, Aktivierung des sellx-Kontos. Pflicht beim ersten Start und nach jedem Datenbank-Wechsel.

Funktions-Handbuch · Endkunden

Der Setup-Wizard läuft beim ersten Start des Hub und nach jedem Datenbank-Wechsel. Er führt durch drei Schritte, die jeweils validiert werden müssen, bevor der nächste Schritt freigeschaltet wird.

Datei: sellx-hub/src/pages/SetupWizardPage.tsx

Übersicht

text
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│ Schritt 1   │────►│ Schritt 2   │────►│ Schritt 3   │
│ DB-Verbin-  │     │ Verbin-     │     │ Aktivierung │
│ dung        │     │ dungstest   │     │ sellx-Konto │
└─────────────┘     └─────────────┘     └─────────────┘

Schritt 1 — Datenbankverbindung

Setup-Wizard Schritt 1: Datenbank-Verbindungsformular mit vorbelegten Feldern aus der JTL-Wawi-Registry
Schritt 1 — DB-Verbindungsformular
1

Registry-Auslese

Der Wizard liest automatisch die JTL-Wawi-Konfiguration aus der Windows-Registry:

text
HKEY_CURRENT_USER\Software\JTL\WAWI\Database

Felder:

FeldQuelleEditierbar
ServerServerJa
InstanzInstanceJa
DatenbankDatabaseJa
PortPortJa (Default: 1433)
Windows-AuthentifizierungTrustedConnection=1Ja (Radio)
SQL-AuthentifizierungTrustedConnection=0Ja (Radio)
Passwort (nur SQL-Auth)nicht in RegistryJa

Wenn die Registry nicht gelesen werden kann (z.B. JTL-Wawi nicht installiert), sind alle Felder leer und müssen manuell ausgefüllt werden.

Implementierungs-Detail: Der Lese-Vorgang erfolgt im Backend über read_jtl_registry (Win32 winreg-Crate in src-tauri/src/main.rs:161).

Schritt 2 — Verbindungstest

Setup-Wizard Schritt 2: Verbindungstest-Ergebnis mit erkannter Wawi-Version und DB-Rolle
Schritt 2 — Verbindungstest-Erfolg
2

Verbindung testen & DB-Rolle erkennen

Klick auf Verbindung testen löst test_connection aus:

text
Frontend: invoke("test_connection", { connectionString })
    │
    ▼
Tauri: sidecar_post("/setup/test-connection")
    │
    ▼
Sidecar: SQL-Server-Connect → SELECT @@VERSION + SELECT DB_NAME()
    │
    ▼
Response: { success, jtlVersion, tenantName, error? }

Erfolgreicher Test:

FeldBedeutung
success: trueVerbindung steht
jtlVersionErkannte Wawi-Version (z.B. 1.9.7.5)
tenantNameName des Mandanten

Fehlerfall: success: false + error mit Diagnose-Text (z.B. Login failed for user 'sa'.).

Bei Erfolg wird automatisch die DB-Rolle ermittelt (detect_db_role):

Erkannte RolleVerwendung
db_datareaderRead-Only — ausreichend für SQL-Report-Plugins
db_datawriterRead-Write — nötig für Automation-Plugins
db_ownerVolle Rechte — nur mit explizitem Kunden-Consent

Schritt 3 — Aktivierung

Setup-Wizard Schritt 3: Login-Formular fuer sellx-Konto mit Option 'Konto erstellen'
Schritt 3 — sellx-Konto-Login
3

Aktivierung sellx-Konto

Der Kunde meldet sich mit seinem sellx-Konto an. Falls er noch keins hat, wird er auf die Registrierungs-Seite geleitet.

Ablauf:

  1. 1. Hub sendet activate_hub({ hardwareFingerprint }) an Central
  2. 2. Central prüft: Konto aktiv? Subscription gültig? Plugin-Slot frei?
  3. 3. Central antwortet mit signiertem JWT + verschlüsseltem Master-Key-Seed
  4. 4. Hub speichert beides in data.db (hub_config-Tabelle)

Hinweis: Der Hub ist nach diesem Schritt lokal aktiviert. Internet ist erst beim nächsten Heartbeat (24h) wieder nötig.

Setup abgeschlossen

Setup-Wizard Abschluss-Screen mit Erfolgsmeldung und Button 'Zum Dashboard'
Schritt 3 — Erfolg: Hub ist betriebsbereit

Persistenz

Das Setup-Flag wird in zwei Schichten gespeichert:

SchichtSpeicherortZweck
Frontend (Zustand)localStorage["hub-store"].state.isSetupCompleteSchnelle Initial-Routing-Entscheidung
Backend (SQLite)data.db.hub_config["setup_complete"]="true"Verbindungs-String, Lizenz-Token, Master-Key-Seed

Der Zustand ist nach Setup komplett; ein Reset ist nur durch Löschen beider Speicher möglich.

Bekannte Einschränkungen

IssueWorkaround
isSetupComplete lebt nur in localStorage, nicht in SQLiteAkzeptabel für Desktop — Browser-Daten sind stabil pro Maschine
Kein Re-Setup-Button in der UIWorkaround: %APPDATA%\sellx-hub\ löschen und App neu starten