Refs #013 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
#013 CLI proxdeploy (Go)
Status: in Arbeit Meilenstein: v0.4.0 Labels: feature, cli Geschätzt: 12 h Tatsächlich: –
Ziel
Alle Befehle aus der Vorgabe, Ausgabe exakt im Format der Vorgabe.
Aufgaben
- API-Tokens (
pd_…, nur SHA-256 gespeichert, Ablauf, Widerruf) mit Bearer-Anmeldung,POST /auth/tokenfürlogin, Verwaltung in den Einstellungen - Kurze Anfragen: Server füllt Storage, Bridge, Node, Benutzer, Schlüssel (
anfrageErgaenzen), auch beim Template-Bau - Abschlussbox serverseitig (
abschluss), Web und CLI zeigen dieselben Zeilen - OpenAPI aus zod (
/api/v1/openapi.json,pnpm openapi), Go-Typen per oapi-codegen,pnpm cli:pruefen - login, servers, distros, profiles, presets, vm, lxc, template list/build, batch, status, logs --follow, cancel
- Renderer: Farbe 24-bit/256/aus, --ascii, --quiet, --json, --dry-run; Golden-Tests
- Release-Builds für linux/darwin/windows × amd64/arm64 (
cli/bauen.sh) - Abnahme auf pve-demo (VM + LXC per batch)
Akzeptanzkriterien
- Ausgabe entspricht zeichengenau dem Mockup (
cli/internal/ausgabe/testdata/mockup.txt, von Hand aus der Vorgabe übernommen)
Abhängigkeiten
#008, #012
Notizen / Entscheidungen
- Anfragen als Map, Antworten typisiert. oapi-codegen macht Pflichtfelder zu Nicht-Zeigern; Go
schickte dann
"storage": ""und überschriebe Vorlagenwerte. Deshalb gehen nur gesetzte Flags hinaus. [instances.<name>]statt[profiles.<name>]in der Konfiguration – „profile“ ist schon--profile.- Strg+C hängt nur ab, der Auftrag läuft weiter; Abbruch ist
proxdeploy cancel. - Ohne Terminal (Pipe, CI) kein Neuzeichnen: jede Phase eine Zeile, sobald fertig; die Kopfzeile nach der ersten Phase, weil Node und Template erst dann feststehen.
- SSE-Ausfall: Wiederverbinden mit Last-Event-ID; nach drei Fehlschlägen ohne Stand Polling alle 2 s.
- Go 1.27.2 ohne sudo unter
~/.local/go; Bibliotheken mit abgelagerten Versionen (x/term 0.46.0, go-runewidth 0.0.30 statt der wenige Tage alten Nachfolger).