{
  "type": "channel",
  "name": "discord",
  "description": "Discord Gateway/Webhook channel for handling slash commands, buttons, and messages",
  "setup": {
    "required_secrets": [
      {
        "name": "discord_bot_token",
        "prompt": "Enter your Discord Bot Token (from Developer Portal)",
        "optional": false
      },
      {
        "name": "discord_public_key",
        "prompt": "Enter your Discord Application Public Key (from Developer Portal > General Information)",
        "optional": false
      }
    ]
  },
  "capabilities": {
    "http": {
      "allowlist": [
        { "host": "discord.com", "path_prefix": "/api/v10" }
      ],
      "credentials": {
        "discord_bot_token": {
          "secret_name": "discord_bot_token",
          "location": { "type": "header", "name": "Authorization", "prefix": "Bot " },
          "host_patterns": ["discord.com"]
        }
      },
      "rate_limit": {
        "requests_per_minute": 60,
        "requests_per_hour": 3600
      }
    },
    "secrets": {
      "allowed_names": ["discord_bot_token", "discord_*"]
    },
    "channel": {
      "allowed_paths": ["/webhook/discord"],
      "allow_polling": false,
      "callback_timeout_secs": 45,
      "workspace_prefix": "channels/discord/",
      "emit_rate_limit": {
        "messages_per_minute": 100,
        "messages_per_hour": 5000
      },
      "webhook": {
        "signature_key_secret_name": "discord_public_key"
      }
    }
  },
  "config": {
    "require_signature_verification": true,
    "owner_id": null,
    "dm_policy": "pairing",
    "allow_from": []
  }
}