Flow Export-Dateien: Leider verschlüsselt. Wie dokumentieren?

Ich habe mich gerade damit beschäftigt, wie man PlentyONE Flows am besten dokumentieren könnte - denn die Infos im Editor selbst sind ein wenig unübersichtlich (mehrere Klicks nötig, um alle Infos in einem Flow sehen zu können).

Brilliante Idee: Die Export-Dateien (.tpl) nutzen, und von KI lesen und dokumentieren lassen.

Problem: Sie sind verschlüsselt. Und zwar nicht so wie bei den Datenbank-Backups, wo einfach die Tabellen-Header weggelassen wurden (aber die Daten an sich lesbar sind). Sondern offenbar richtig verschlüsselt, damit man die Exporte nicht (außerhalb eines Plenty Systems) lesen kann.

Claude erklärt es so:

Ich hab die Datei dekodiert und komme zu einem eindeutigen Ergebnis.

Was ich gefunden habe:

Die .tpl-Datei ist einmal Base64-kodiert. Nach dem Dekodieren kommt sauberes JSON raus mit genau dieser Struktur:

json

{
  "iv": "05aKQghrJgvE0CryR0jqTQ==",
  "value": "SWdjOmcGykJir5rik7BMXdyjo14w...",
  "mac": "4d1399b6928e78692265703b9c167e98a719b8cbf58c4f6d10839b50ff717c5e",
  "tag": ""
}

Das ist kein proprietäres PlentyONE-Format, sondern exakt das Standard-Format von Laravels Crypt::encryptString() (Laravel Framework, PHP):

  • iv = Initialisierungsvektor für AES-256-CBC
  • value = der eigentliche verschlüsselte Payload (die Flow-Konfiguration)
  • mac = HMAC-SHA256 zur Integritätsprüfung
  • tag = leer, weil CBC verwendet wird, nicht ein AEAD-Modus wie GCM

Das Problem: Diese Verschlüsselung ist mit dem APP_KEY der PlentyONE-Flow-Anwendung durchgeführt worden. Ohne diesen Schlüssel ist der Inhalt nicht entschlüsselbar – das ist kryptografisch so gewollt (AES-256 + HMAC-Verifizierung), keine Verschleierung, die sich mit typischen Tricks (ROT13, einfaches XOR, mehrfaches Base64 etc.) knacken lässt.

Was das heißt:

  • Die Datei selbst enthält keine für dich lesbaren Klartext-Infos zum Flow (keine Bedingungen, Aktionen, Trigger-Namen o.ä.)
  • Ein Import dieser .tpl-Datei funktioniert vermutlich nur wieder in derselben PlentyONE-Instanz (bzw. einer Instanz mit demselben APP_KEY) – das ist wahrscheinlich genau der Zweck: Flows exportieren/importieren, aber nicht außerhalb des Systems lesbar machen
  • Wenn du wissen willst, was der Flow tut, hilft dir nur ein Blick direkt im PlentyONE-Flow-Editor, nicht die Export-Datei

Hier hat sich also jemand wirklich Gedanken gemacht, wie man Flows möglichst propritär halten kann, und wie man den einfachen Export von Business-Logik verhindern kann. Und die Dokumentation der Business-Logik.

Ich werde wohl beginnen, das in einfachen .md Dateien oder in Tabellen zu dokumentieren (weitgehend manuell), damit man auch wenn man mal 50+ Flows hat noch eine Übersicht hat, was hier eigentlich passiert.

Ideen dazu gerne posten, ich möchte das Rad ja nicht neu erfinden.

Könntest du nicht einfach einen KI-Agenten Browser-Zugriff gewähren und dieser geht dann manuell im Browser alle Flows durch und dokumentiert diese?

Ich hatte das mal ähnlich mit den EAs gemacht, da ich diese mittels KI migrieren wollte. Ich hatte am Ende eine schöne tabellarische Übersicht mit allen EAs und Vorschläge dafür, welche man zusammenführen könnte.

Habe bisher noch nicht mit KI-Agenten mit Browserzugriff gearbeitet.

In Zukunft wird es wohl in die Richtung gehen, aber wirklich schön ist das nicht (wenn die KI mit viel zu vielen Rechten selbst im ERP herumklickt…).