Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Adapter

Тонкий адаптер Telegram для Portable Agent. Он не содержит бизнес-правил: принимает webhook, связывает Telegram с пользователем платформы через Keycloak Device Flow и вызывает Channel Gateway.

Текущий срез

  • защищённый webhook;
  • команда /link;
  • начало OAuth Device Flow;
  • polling Keycloak с lease для нескольких worker;
  • завершение привязки и уведомление пользователя;
  • шифрование device и refresh token;
  • обновление access token и отправка сообщения в Channel Gateway;
  • сохранение conversationId для следующих сообщений;
  • Telegram-кнопки подтверждения и отмены действий;
  • одноразовые callback id с lease: повтор возможен после временной ошибки;
  • порты для PostgreSQL, Keycloak, Telegram и Gateway.

Команда /unlink будет добавлена следующим TDD-срезом.

Проверка

corepack pnpm install
pnpm lint
pnpm test
pnpm build

Интеграционная проверка repository требует отдельный PostgreSQL:

$env:TEST_DATABASE_URL = "postgres://user:password@localhost:5432/telegram_adapter"
pnpm test:postgres

Настройки перечислены в .env.example. Настоящие секреты в Git не добавляются. TELEGRAM_API_URL позволяет локальному стенду использовать fake Telegram API без настоящего bot token.

Типы запросов Channel Gateway генерируются из проверенного snapshot contracts 2.5.0. Обновление:

./scripts/update-contracts.ps1 -Version 2.5.0
corepack pnpm generate

Скрипт проверяет checksum и GitHub attestation релиза до замены файлов.

About

Telegram channel adapter for Portable Agent

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages