Plugin-Authoring
Wie du eigene Plugins für den sellx Hub baust, sie als .sellxpkg paketierst und im Hub installierst.
Entwickler-Handbuch · Plugin-Authoring
Überblick
Ein sellx-Plugin ist ein verschlüsseltes ZIP-Archiv mit:
manifest.json— Metadaten, Queries, Parameter, Berechtigungensql/*.sql— eine oder mehrere parametrisierte T-SQL-Queries- Optional: Icons, Beispielkonfigurationen, Doku
Der Hub installiert das Plugin, verschlüsselt die SQL-Files mit einem Lizenz-abgeleiteten Schlüssel und führt sie gegen die JTL-Wawi-Datenbank aus.
Workflow
textworkflow.txt
1. SQL-Queries schreiben & testen (in SSMS gegen eazybusiness)
2. manifest.json erstellen (Queries, Parameter, Berechtigungen)
3. .sellxpkg packen (ZIP mit .sellxpkg-Endung)
4. Lokal im Hub installieren (via /plugins)
5. Im Hub testen — vor Veröffentlichung mit Kunden
6. Signieren lassen & auf sellx Central hochladenVoraussetzungen
| Tool | Zweck |
|---|---|
| SQL Server Management Studio (SSMS) | Queries entwickeln, gegen eazybusiness testen |
| Kenntnis der JTL-Wawi-DB-Struktur | Tabellen: tArtikel, tKunde, tBestellung, … |
| Kenntnis der Hub-Berechtigungen | DB-Rolle, Plugin-Kategorie, Lizenz-Slot |
| ZIP-Tool | .sellxpkg ist ein normales ZIP |
Themen
| Thema | Inhalt |
|---|---|
| Package-Format | Aufbau einer .sellxpkg-Datei |
| manifest.json | Alle Felder mit Beispielen |
| SQL-Konventionen | T-SQL-Stil, Parameter, Jinja-Templating |
| Security-Richtlinien | Was die SqlSecurityValidator ablehnt |
| Beispiele | Vollständige Beispiel-Plugins zum Kopieren |
Wichtige Constraints
- Nur parametrisierte Queries — keine String-Konkatenation mit User-Input
- Nur ein Statement pro Query — keine
;-getrennten Batches - Keine Kommentare im finalen SQL — werden beim Packen entfernt
- Read-only by default —
requiresDbRole: "read"in der Manifest - Keine EXEC/sp_/xp_ — der Validator lehnt das ab
Mehr dazu in Security-Richtlinien.
Schnellstart (5 Minuten)
Wenn du bereits eine funktionierende SQL-Query hast:
1
Verzeichnis anlegen
bashinit.sh
mkdir mein-plugin
mkdir mein-plugin/sql2
manifest.json schreiben
Siehe Manifest-Schema.
3
Query-Datei schreiben
bashwrite-query.sh
echo "SELECT TOP 10 cName FROM tArtikel ORDER BY kArtikel" > mein-plugin/sql/top-articles.sql4
Packen
bashpack.sh
cd mein-plugin
zip -r ../mein-plugin.sellxpkg .5
Im Hub installieren
Im Hub: /plugins .sellxpkg installieren mein-plugin.sellxpkg wählen.