githubEdit

Card SDK Tools

Die Card SDK Tools ermoeglichen es Ihnen, benutzerdefinierte Partner-Karten ueber MCP zu erstellen, zu validieren, zu testen und zu verwalten. Partner-Karten erweitern DocFlow mit benutzerdefinierter Geschaeftslogik, die in Python geschrieben ist.

Karten-Lebenszyklus

Erstellen → Validieren → Testen → Genehmigen → In Workflows verwenden
  1. Erstellen Sie eine Karte mit sdk_create_card oder sdk_import_github

  2. Validieren Sie mit sdk_validate_card (5-stufige Validierung)

  3. Testen Sie mit sdk_test_card (Sandbox-Ausfuehrung)

  4. Genehmigen Sie mit sdk_approve_card (Admin erforderlich)

  5. Die Karte ist nun in list_cards verfuegbar und kann in Workflows verwendet werden

Entwicklungs-Tools

sdk_create_card

Eine neue Partner-Karte aus Quellcode und Manifesten erstellen. Fuehrt die vollstaendige 5-stufige Validierung durch und speichert die Karte in der Datenbank. Die Karte beginnt im Status "ausstehend" und erfordert eine Admin-Genehmigung zur Aktivierung.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

app_manifest

object

Ja

App-Manifest mit id, name, version, Partner-Info

card_manifest

object

Ja

Karten-Manifest mit id, title, entry_point, class_name, args

card_type

string

Ja

action oder condition

source_code

string

Ja

Python-Quellcode (muss PartnerCard erweitern)

test_code

string

Ja

Pytest-Testcode fuer die Karte

locales

object

Nein

Uebersetzungen, z.B. {"en": {...}, "de": {...}}

App-Manifest-Beispiel:

Karten-Manifest-Beispiel:

Quellcode-Beispiel:

Beispielantwort:

sdk_validate_card

5-stufige Validierung einer Partner-Karte ohne Speichern ausfuehren. Zwei Modi:

  • Modus A -- Eine bestehende Karte anhand der ID validieren

  • Modus B -- Neuen Quellcode inline validieren

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Nein

UUID einer bestehenden Karte (Modus A)

app_manifest

object

Nein

App-Manifest (Modus B)

card_manifest

object

Nein

Karten-Manifest (Modus B)

card_type

string

Nein

action oder condition (Modus B)

source_code

string

Nein

Python-Quellcode (Modus B)

test_code

string

Nein

Testcode (Modus B)

circle-info

Geben Sie entweder nur card_id an (Modus A) oder app_manifest + card_manifest + source_code zusammen (Modus B).

Validierungsstufen:

  1. Struktur -- Ueberprueft Dateilayout, Manifest-Schema, erforderliche Dateien

  2. AST-Analyse -- Prueft Python-Syntax, Klassenhierarchie, Methodensignaturen

  3. Abhaengigkeiten -- Validiert Imports gegen erlaubte Module

  4. Tests -- Fuehrt die Testsuite der Karte aus

  5. Verhalten -- Fuehrt die Karte in der Sandbox aus, um das Laufzeitverhalten zu pruefen

sdk_test_card

Eine Partner-Karte in einer Sandbox-Umgebung mit einem Mock-Kontext ausfuehren. Verwendet das gleiche Sicherheitsmodell wie die Produktion (eingeschraenkte Builtins, Import-Whitelist, 10-Sekunden-Timeout).

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Nein

UUID einer bestehenden Karte (Modus A)

source_code

string

Nein

Quellcode fuer Inline-Tests (Modus B)

class_name

string

Nein

Klassenname fuer Inline-Tests (Modus B)

variables

object

Nein

Variablen fuer den Karten-Konstruktor

mock_context

object

Nein

Mock-Ausfuehrungskontext

Mock-Kontext-Felder:

Beispielantwort:

sdk_import_github

Eine Partner-App aus einem GitHub-Repository importieren. Klont das Repository, liest app.json und importiert alle Karten aus dem .docflowcompose-Verzeichnis.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

github_url

string

Ja

GitHub-HTTPS-URL (z.B. https://github.com/org/repo)

branch

string

Nein

Zu klonender Branch (Standard: main)

token

string

Nein

GitHub-Token fuer private Repositories

Erwartete Repository-Struktur:

Beispielantwort:

Verwaltungs-Tools

sdk_list_submissions

Alle Partner-Karten-Einreichungen der aktuellen Organisation auflisten.

Parameter: Keine

Beispielantwort:

sdk_get_submission_status

Den Validierungsstatus und Bericht fuer eine bestimmte Partner-Karten-Einreichung abrufen.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Ja

UUID der Partner-Karte

Beispielantwort:

sdk_approve_card

Eine validierte Partner-Karte genehmigen und fuer die Verwendung in Workflows aktivieren. Die Karte wird in der Laufzeit-Registry registriert und ist in list_cards verfuegbar.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Ja

UUID der Partner-Karte

circle-exclamation

sdk_reject_card

Eine Partner-Karten-Einreichung ablehnen und deaktivieren.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Ja

UUID der Partner-Karte

reason

string

Nein

Grund fuer die Ablehnung

circle-exclamation

sdk_delete_submission

Eine Partner-Karten-Einreichung deaktivieren oder loeschen. Abgelehnte oder deaktivierte Karten werden physisch aus der Datenbank geloescht. Aktive Karten werden zuerst deaktiviert.

Parameter:

Parameter
Typ
Erforderlich
Beschreibung

card_id

string

Ja

UUID der Partner-Karte

circle-exclamation

sdk_list_cards_picker

Alle aktivierten, nicht veralteten Karten mit Rollen-Flags auflisten. Nuetzlich um zu bestimmen, welche Karten in welchen Knotentypen beim Erstellen von Workflows verwendet werden koennen.

Parameter: Keine

Beispielantwort:

Last updated

Was this helpful?