FunktionenMitarbeiter-Handbuch

Plugins verwalten

Installation, Aktivierung, Deinstallation und Demo-Plugin-Laden — alle Aktionen auf der Meine-Plugins-Seite des sellx Hub.

Funktions-Handbuch · Endkunden

Die Seite Meine Plugins (/plugins) listet alle installierten Plugins und erlaubt Installation, Aktivierung, Deinstallation.

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

Übersicht

Meine-Plugins-Seite mit Liste installierter Plugins, Aktivierungs-Badges und Buttons 'Demo-Plugin laden' / '.sellxpkg installieren'
Meine-Plugins-Seite mit drei installierten Plugins
text
┌─────────────────────────────────────────────────────┐
│ Meine Plugins              [Demo-Plugin laden]      │
│ 3 Plugin(s) installiert    [.sellxpkg installieren] │
├─────────────────────────────────────────────────────┤
│ Name              │ Kat. │ Ver. │ Q │ Status │ Akt.│
├───────────────────┼──────┼──────┼───┼────────┼─────┤
│ Artikel-KPI       │ Rep. │1.0.0 │ 2 │ ● Aktiv │ Aus. Entf.│
│ Cross-Seller      │ An.  │1.0.0 │ 1 │ ● Aktiv │ Aus. Entf.│
│ Wer-gekauft       │ An.  │1.0.0 │ 1 │ ○ Deakt.│ Aus. Entf.│
└─────────────────────────────────────────────────────┘

Aktionen

1

.sellxpkg installieren

File-Dialog zur Auswahl einer .sellxpkg-Datei mit Filter auf '.sellxpkg' Extension
Install-Dialog mit File-Picker

Klick auf .sellxpkg installieren öffnet einen File-Dialog. Auswahl einer .sellxpkg-Datei löst aus:

ts
invoke("install_plugin", { filePath })

Ablauf im Sidecar:

  1. 1. ZIP-Archiv öffnen und validieren
  2. 2. manifest.json parsen
  3. 3. requiresDbRole mit konfigurierter Rolle abgleichen
  4. 4. SQL-Files verschlüsseln (AES-256-GCM mit Lizenz-abgeleitetem Key)
  5. 5. Plugin-Metadaten in data.db.plugins-Tabelle schreiben
  6. 6. Verschlüsselte SQL-Files nach %APPDATA%\sellx-hub\plugins\<id>\ schreiben

Mögliche Fehler:

FehlerBedeutung
PARSE_ERRORZIP korrupt oder kein manifest.json
MISSING_FIELDPflichtfeld im Manifest fehlt
DB_ROLE_MISMATCHPlugin braucht write, User hat nur read
ENCRYPTION_FAILEDLizenz-Token ungültig, kann Master-Key nicht ableiten
2

Plugin aktivieren / deaktivieren

Status-Badge-Wechsel von grau (Deaktiviert) auf gruen (Aktiv) im Plugin-Eintrag der Liste
Status-Wechsel nach Toggle-Klick

Klick auf den Status-Badge schaltet um:

ts
invoke("toggle_plugin", { pluginId, enabled: !currentEnabled })

Deaktivierte Plugins bleiben installiert, werden aber:

  • — Nicht im Workspace als Tab angezeigt
  • — Bei get_plugins mit enabled: false zurückgegeben
3

Plugin deinstallieren

Bestaetigungs-Dialog fuer Plugin-Deinstallation mit Warnung und Button 'Endgueltig entfernen'
Bestaetigungs-Dialog vor Deinstallation

Klick auf Entfernen löst aus:

ts
invoke("uninstall_plugin", { pluginId })

Ablauf:

  1. 1. Plugin-Eintrag aus data.db.plugins löschen
  2. 2. Verschlüsselte SQL-Files unter %APPDATA%\sellx-hub\plugins\<id>\ löschen
  3. 3. Open-Tabs mit diesem Plugin schließen

Hinweis: Deinstallation entfernt nicht die Lizenz. Das Plugin kann jederzeit wieder installiert werden.

4

Demo-Plugin laden

Klick auf Demo-Plugin laden erstellt ein temporäres Demo-Plugin ohne .sellxpkg-Datei. Nützlich zum Testen der UI ohne echtes Plugin.

Status-Anzeige

BadgeBedeutung
● Aktiv (grün)Plugin wird ausgeführt, im Workspace verfügbar
○ Deaktiviert (grau)Plugin installiert, aber nicht ausführbar

Plugin-Sichtbarkeit

AktionAuswirkung
AktivierenPlugin erscheint im Workspace-Tab-Dropdown
DeaktivierenTab wird aus Workspace entfernt (falls offen)
DeinstallierenPlugin verschwindet komplett aus der Liste

Grace-Period-Einfluss

Wenn die sellx-Lizenz in der Grace-Period ist (Heartbeat älter als 7 Tage), werden:

  • — Alle Plugins mit enabled: false angezeigt
  • — Plugin-Ausführung schlägt mit LICENSE_INACTIVE fehl
  • — Banner oben: ⚠️ Heartbeat fehlt seit X Tagen (gelb)

Nach 30 Tagen Grace-Period: Banner wechselt auf rot (🚫), alle Plugins sind deaktiviert und nicht ausführbar.

Siehe Architektur → Grace-Period für Details.