Skip to main content

Инструменты#

Каждый инструмент принимает project_dir — абсолютный путь к проекту tgcloud (create_project вместо этого принимает parent_dir и name).

Жизненный цикл #

ИнструментКоманда CLIОписание
create_projectnpm create @tgcloud/botСкаффолд нового проекта (parent_dir, name)
init_projecttgcloud initСкаффолд в существующем каталоге, в том числе с обнаруженным Mini App
login_bottgcloud loginПривязка бота по CLI access token (app<id>:<secret>), токен через stdin, маскируется
add_moduletgcloud addНовый модуль: handlers/<type>, endpoints/<name>, lib/<path>
upgradetgcloud upgradeПеренос layout до 0.2.0 в tgcloud/. По умолчанию dry_run: true; применение требует confirm: true

Синхронизация #

ИнструментКоманда CLIОписание
statustgcloud statusЛокальные изменения vs снапшот (офлайн), включая статику и рассинхрон вебхука
difftgcloud diffПострочный diff (офлайн)
pushtgcloud pushАтомарный деплой. Не собирает фронтенд и не мигрирует БД. force: true требует confirm: true
deploynpm run build + tgcloud pushСборка, если в package.json есть script build, затем push. skip_build: true — только push
pulltgcloud pullОблако → снапшот и рабочие файлы. Папку сборки Mini App не пишет
fetchtgcloud fetchОблако → только снапшот
resettgcloud resetОткатить локальные правки модулей; требует confirm: true

Данные #

ИнструментКоманда CLIОписание
run_handlertgcloud runПрогон handler или endpoint без деплоя. args и ctx — JSON5. args — первый аргумент (payload: Message для handler, вход для endpoint); ctx — второй (ctx.update — сырое Update для handler, включая update_id; initData для endpoint)
migratetgcloud migratedry_run: true (по умолчанию) — предпросмотр. Применение: dry_run: false и confirm: true. apply: "safe" — это --safe; apply: "yes" (по умолчанию при применении) — --yes. local: true — --local

Вебхук #

ИнструментКоманда CLIОписание
webhook_statustgcloud webhookURL, allowed_updates, очередь, ошибки доставки, синхронен ли вебхук
webhook_synctgcloud webhook syncПерепривязка вебхука. drop_pending: true требует confirm: true

Новый или удалённый handler может оставить вебхук рассинхронизированным. push это не гарантирует. После такого деплоя вызывайте webhook_sync.

Рецепты#

  • Бот молчит: webhook_status → status / diff → push → webhook_sync
  • Логи деплоя: команды для их скачивания нет; смотрите последнюю ошибку доставки в webhook_status, затем воспроизводите через run_handler (его console.* — локальный вывод, а не развёрнутого бота)
  • Конфликт ревизий на push: fetch → diff → push (или force с confirm)
  • Схема: правка schema.js → push → migrate (dry-run) → migrate с confirm. Если удалений нет, apply: "safe"
  • Фронтенд Mini App: deploy, не голый push