mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
The Telegram channel capabilities file was missing the `webhook` block inside `capabilities.channel`, causing the router to fall back to the default `X-Webhook-Secret` header instead of the Telegram- specific `X-Telegram-Bot-Api-Secret-Token`. When a webhook secret is configured (via `telegram_webhook_secret`), incoming updates are rejected with 401 because Telegram sends the token in `X-Telegram-Bot-Api-Secret-Token` but the router looks for `X-Webhook-Secret`. The existing test in `schema.rs` already expects the correct header name, confirming this is an oversight in the shipped capabilities file. Co-authored-by: SMKRV <[email protected]> Co-authored-by: firat.sertgoz <[email protected]>
59 lines
1.5 KiB
JSON
59 lines
1.5 KiB
JSON
{
|
|
"type": "channel",
|
|
"name": "telegram",
|
|
"description": "Telegram Bot API channel for receiving and responding to Telegram messages",
|
|
"setup": {
|
|
"required_secrets": [
|
|
{
|
|
"name": "telegram_bot_token",
|
|
"prompt": "Enter your Telegram Bot API token (from @BotFather)",
|
|
"optional": false
|
|
}
|
|
]
|
|
},
|
|
"capabilities": {
|
|
"http": {
|
|
"allowlist": [
|
|
{ "host": "api.telegram.org", "path_prefix": "/bot" }
|
|
],
|
|
"credentials": {
|
|
"telegram_bot": {
|
|
"secret_name": "telegram_bot_token",
|
|
"location": { "type": "url_path", "placeholder": "{TELEGRAM_BOT_TOKEN}" },
|
|
"host_patterns": ["api.telegram.org"]
|
|
}
|
|
},
|
|
"rate_limit": {
|
|
"requests_per_minute": 30,
|
|
"requests_per_hour": 1000
|
|
}
|
|
},
|
|
"secrets": {
|
|
"allowed_names": ["telegram_*"]
|
|
},
|
|
"channel": {
|
|
"allowed_paths": ["/webhook/telegram"],
|
|
"allow_polling": true,
|
|
"min_poll_interval_ms": 30000,
|
|
"workspace_prefix": "channels/telegram/",
|
|
"emit_rate_limit": {
|
|
"messages_per_minute": 100,
|
|
"messages_per_hour": 5000
|
|
},
|
|
"webhook": {
|
|
"secret_header": "X-Telegram-Bot-Api-Secret-Token",
|
|
"secret_name": "telegram_webhook_secret"
|
|
}
|
|
}
|
|
},
|
|
"config": {
|
|
"bot_username": null,
|
|
"owner_id": null,
|
|
"respond_to_all_group_messages": false,
|
|
"polling_enabled": false,
|
|
"poll_interval_ms": 30000,
|
|
"dm_policy": "pairing",
|
|
"allow_from": []
|
|
}
|
|
}
|