mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
* feat(extensions): add load-time validation for auth capabilities Catch common misconfigurations (missing auth section, missing setup_url, short prompts) at startup via tracing::warn instead of silently failing at auth time. * feat(extensions): improve auth prompts, setup_url, and showAuthCard Add setup_url and descriptive prompts to channel and tool capabilities files. Fix showAuthCard in web gateway and improve extension manager auth flow messaging. * refactor(extensions): extract MIN_PROMPT_LENGTH constant in validate() Address review feedback: replace magic number 30 with a named constant for readability and maintainability. [skip-regression-check] Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
57 lines
1.5 KiB
JSON
57 lines
1.5 KiB
JSON
{
|
|
"type": "channel",
|
|
"name": "slack",
|
|
"description": "Slack Events API channel for receiving and responding to Slack messages",
|
|
"setup": {
|
|
"required_secrets": [
|
|
{
|
|
"name": "slack_bot_token",
|
|
"prompt": "Enter your Slack Bot User OAuth Token (starts with xoxb-). Find it under OAuth & Permissions in your Slack App settings.",
|
|
"optional": false
|
|
},
|
|
{
|
|
"name": "slack_signing_secret",
|
|
"prompt": "Enter your Slack App Signing Secret (found under Basic Information > App Credentials in your Slack App settings).",
|
|
"optional": false
|
|
}
|
|
],
|
|
"setup_url": "https://api.slack.com/apps"
|
|
},
|
|
"capabilities": {
|
|
"http": {
|
|
"allowlist": [
|
|
{ "host": "slack.com", "path_prefix": "/api/" }
|
|
],
|
|
"credentials": {
|
|
"slack_bot": {
|
|
"secret_name": "slack_bot_token",
|
|
"location": { "type": "bearer" },
|
|
"host_patterns": ["slack.com"]
|
|
}
|
|
},
|
|
"rate_limit": {
|
|
"requests_per_minute": 50,
|
|
"requests_per_hour": 1000
|
|
}
|
|
},
|
|
"secrets": {
|
|
"allowed_names": ["slack_*"]
|
|
},
|
|
"channel": {
|
|
"allowed_paths": ["/webhook/slack"],
|
|
"allow_polling": false,
|
|
"workspace_prefix": "channels/slack/",
|
|
"emit_rate_limit": {
|
|
"messages_per_minute": 100,
|
|
"messages_per_hour": 5000
|
|
}
|
|
}
|
|
},
|
|
"config": {
|
|
"signing_secret_name": "slack_signing_secret",
|
|
"owner_id": null,
|
|
"dm_policy": "pairing",
|
|
"allow_from": []
|
|
}
|
|
}
|