Skip to main content

Werkzeuge#

Jedes Werkzeug nimmt project_dir, einen absoluten Pfad zu einem tgcloud-Projekt (create_project nimmt stattdessen parent_dir und name).

Lebenszyklus #

WerkzeugCLIBeschreibung
create_projectnpm create @tgcloud/botNeues Projekt (parent_dir, name)
init_projecttgcloud initGerüst in einem bestehenden Ordner, auch bei erkannter Mini App
login_bottgcloud loginBot über CLI-access-Token (app<id>:<secret>) verknüpfen; Token über stdin, maskiert
add_moduletgcloud addNeues Modul: handlers/<type>, endpoints/<name>, lib/<path>
upgradetgcloud upgradeLayout vor 0.2.0 nach tgcloud/ verschieben. dry_run: true ist Vorgabe; Anwenden braucht confirm: true

Abgleich #

WerkzeugCLIBeschreibung
statustgcloud statusLokale Änderungen gegen den Snapshot (offline), inklusive Static-Diff und Webhook-Drift
difftgcloud diffZeilendiff (offline)
pushtgcloud pushAtomares Deploy. Baut das Frontend nicht und migriert nicht. force: true braucht confirm: true
deploynpm run build + tgcloud pushBaut, wenn package.json ein build-Skript hat, dann push. skip_build: true macht nur push
pulltgcloud pullCloud → Snapshot und Arbeitsdateien. Schreibt den Mini-App-Build nicht
fetchtgcloud fetchCloud → nur der Snapshot
resettgcloud resetLokale Moduländerungen verwerfen; braucht confirm: true

Daten #

WerkzeugCLIBeschreibung
run_handlertgcloud runHandler oder Endpoint ohne Deploy ausführen. args und ctx sind JSON5. args ist das erste Argument (die Nutzlast: eine Message für einen Handler, die Eingabe für einen Endpoint); ctx das zweite (ctx.update ist das rohe Update für einen Handler, inklusive update_id; initData für einen Endpoint)
migratetgcloud migratedry_run: true (Vorgabe) zeigt nur die Vorschau. Anwenden braucht dry_run: false und confirm: true. apply: "safe" ist --safe; apply: "yes" (Vorgabe beim Anwenden) ist --yes. local: true ist --local

Webhook #

WerkzeugCLIBeschreibung
webhook_statustgcloud webhookURL, allowed_updates, wartende Updates, letzter Fehler, ob synchron
webhook_synctgcloud webhook syncWebhook neu ausrichten. drop_pending: true braucht confirm: true

Ein neuer oder entfernter Handler kann den Webhook aus dem Takt bringen. push garantiert kein Auffrischen. Danach webhook_sync aufrufen.

Abläufe#

  • Stummer Bot: webhook_status → status / diff → push → webhook_sync
  • Deploy-Logs: kein Befehl lädt sie herunter; lies den letzten Zustellfehler in webhook_status und reproduziere dann mit run_handler (dessen console.* ist lokale Ausgabe, nicht die des deployten Bots)
  • Revisionskonflikt bei push: fetch → diff → push (oder force mit confirm)
  • Schema: schema.js ändern → push → migrate (dry-run) → migrate mit confirm. Ohne Löschungen apply: "safe"
  • Mini-App-Frontend: deploy, nicht ein bloßes push