prokodo verify
Projektdateien hochladen und einen Cloud-Verifizierungslauf starten, oder ein veröffentlichtes npm-Paket direkt per Name verifizieren. Funktioniert sofort — keine Konfigurationsdatei erforderlich.
prokodo verify [Datei] [Optionen]
Voraussetzungen
Nur ein gültiger API-Schlüssel ist erforderlich (via prokodo auth login oder PROKODO_API_KEY). Eine .prokodo/config.json ist optional — der Projekttyp wird automatisch erkannt.
Optionen
| Flag | Typ | Standard | Beschreibung |
|---|---|---|---|
[Datei] | String | — | Veröffentlichter npm-Paketname (@scope/name oder @scope/name@1.2.3). Dateipfade noch nicht unterstützt. |
--type <typ> | String | Auto-Erkennung | Projekttyp überschreiben. Pflicht bei Angabe eines npm-Paketnamens. |
--ref <ref> | String | — | Git-Ref, Branch oder Commit-SHA |
--timeout <sek> | Number | 300 | Zeitlimit in Sekunden überschreiben |
--no-logs | Boolean | false | Live-Log-Streaming deaktivieren |
Projekttypen
| Typ | Wann automatisch erkannt | Standardmäßig hochgeladene Dateien |
|---|---|---|
n8n-node | package.json hängt von n8n, n8n-core usw. ab | src/, package.json, tsconfig.json |
n8n-workflow | Noch nicht unterstützt — folgt in einem kommenden Release | — |
Ablauf
Lokaler Projektmodus (Standard — kein positionales Argument):
1. Lauf-Kontext auflösen:
a. CLI --type Flag
b. .prokodo/config.json (optional)
c. package.json Auto-Erkennung
d. Standard: n8n-node
2. Git-Remote-URL erkennen (nicht fatal)
3. --timeout validieren (muss positiv und endlich sein)
4. Dateien einsammeln (include-Liste)
5. API-Schlüssel auflösen (Flag → Umgebungsvariable → Zugangsdatei)
6. POST /api/cli/v1/verify/runs { projectType, packageName, files }
7. Status pollen und Live-Logs streamen (außer bei --no-logs)
8. Endergebnis abrufen
9. Zusammenfassung ausgeben / JSON emittieren
10. Exit 0 (bestanden) oder 1 (fehlgeschlagen/Timeout)
npm-Paketmodus (prokodo verify @scope/name --type n8n-node):
1. Positionales Argument als npm-Paket-Referenz erkennen
2. --type validieren (in diesem Modus Pflicht)
3. --timeout validieren
4. API-Schlüssel auflösen
5. POST /api/cli/v1/verify/runs { projectType, packageRef } (kein Datei-Upload)
6. Server lädt das Paket vom npm-Registry
7. Status pollen und Live-Logs streamen (außer bei --no-logs)
8. Endergebnis abrufen
9. Zusammenfassung ausgeben / JSON emittieren
10. Exit 0 (bestanden) oder 1 (fehlgeschlagen/Timeout)
Beispiele
- Textausgabe
- --json
- Fehlgeschlagen
# Projekttyp automatisch erkennen und verifizieren
prokodo verify
# Projekttyp explizit setzen
prokodo verify --type n8n-node
# Veröffentlichtes npm-Paket verifizieren
prokodo verify @scope/my-n8n-node --type n8n-node
prokodo verify @scope/my-n8n-node@1.2.3 --type n8n-node
ℹ Starte Verifizierungslauf…
Run-ID: run_abc123
Projekttyp: n8n-node (auto)
Dateien: 24
[12:00:01] Strukturprüfung läuft…
[12:00:03] Abhängigkeiten werden aufgelöst…
[12:00:08] Prüfungen abgeschlossen.
✓ Verifizierung bestanden: Alle Prüfungen erfolgreich
Genutzte Credits: 1
prokodo verify --json 2>/dev/null
{
"runId": "run_abc123",
"passed": true,
"summary": "All checks passed",
"checks": [
{ "name": "Structure", "passed": true, "message": "24 files validated" },
{ "name": "Dependencies", "passed": true, "message": "All dependencies resolved" }
],
"creditsUsed": 1,
"status": "success"
}
prokodo verify --json 2>/dev/null
{
"runId": "run_def456",
"passed": false,
"summary": "1 check failed",
"checks": [
{ "name": "Structure", "passed": false, "message": "Missing required export in index.ts" },
{ "name": "Dependencies", "passed": true }
],
"creditsUsed": 1,
"status": "failed"
}
# Lauf mit aktuellem Git-Branch markieren
prokodo verify --ref $(git rev-parse --abbrev-ref HEAD)
# Bestimmte veröffentlichte Version eines Pakets verifizieren
prokodo verify @scope/my-n8n-node@2.1.0 --type n8n-node
# Timeout erhöhen für große Projekte
prokodo verify --timeout 600
# Log-Streaming deaktivieren (nützlich in CI)
prokodo verify --no-logs
# Ergebnis mit jq verarbeiten
prokodo verify --json 2>/dev/null | jq .passed
prokodo verify --json 2>/dev/null | jq '[.checks[] | select(.passed == false)]'
JSON-Ausgabeschema
| Feld | Typ | Beschreibung |
|---|---|---|
runId | string | Eindeutige Lauf-ID |
passed | boolean | true = alle Prüfungen bestanden |
summary | string | Menschenlesbare Zusammenfassung |
checks | { name, passed, message? }[] | Einzelne Prüfergebnisse |
creditsUsed | number | Tatsächlich verbrauchte Credits |
status | "success" | "failed" | "timeout" | "rejected" | Abschluss-Status |
Ablehnungscodes
Wenn der Cloud-Runner den Lauf ablehnt, enthält die Fehlermeldung einen Grundcode:
| Code | Bedeutung |
|---|---|
INSUFFICIENT_CREDITS | Kontoguthaben nicht ausreichend |
CONCURRENCY_CAP_REACHED | Maximale gleichzeitige Läufe erreicht |
INVALID_PAYLOAD | Hochgeladenes Archiv konnte nicht verarbeitet werden |
RUNNER_ERROR | Interner Cloud-Fehler |
TIMEOUT | Lauf hat Zeitlimit überschritten |
NOT_IMPLEMENTED | Feature noch nicht aktiviert |
Log-Streaming
Standardmäßig streamt verify Log-Zeilen des Cloud-Laufs in Echtzeit nach stderr. Verwende --no-logs, um dies zu unterdrücken, oder leite stderr um:
# Logs sichtbar lassen, aber JSON-Ergebnis erfassen
prokodo verify --json 2>&1 1>/tmp/ergebnis.json
Eingeschlossene Dateien steuern
Standardmäßig verwendet die CLI die include-Liste für den erkannten Projekttyp:
| Projekttyp | Standard-Include |
|---|---|
n8n-node | src/, package.json, tsconfig.json |
n8n-workflow | Noch nicht unterstützt — folgt in einem kommenden Release |
include kann in .prokodo/config.json überschrieben werden:
{
"projectType": "n8n-node",
"include": ["src", "package.json", "tsconfig.json", "assets"],
"timeout": 300
}
include auf Quelldateien beschränken — node_modules, dist und Test-Fixtures ausschließen, um Läufe schnell und krediteffizient zu halten.
Exit-Codes
| Code | Ursache |
|---|---|
0 | Verifizierung bestanden |
1 | Verifizierung fehlgeschlagen |
1 | Timeout beim Warten auf Lauf-Abschluss |
2 | Ungültiger --type-Wert |
2 | --type fehlt im npm-Paketmodus |
2 | Ungültiger --timeout-Wert |
2 | Keine Dateien zum Hochladen gefunden |
2 | Kein API-Schlüssel konfiguriert |