本次提交包含多类代码优化与修复: 1. 重命名适配器协议类:WebhookTestable→WebhookTestAdapter、AttachmentUploadable→AttachmentUploadAdapter,并同步更新所有引用 2. 为飞书/企业微信插件添加凭证克隆能力开关配置 3. 修复飞书入站适配器URL解析错误,使用hostname替代host属性 4. 新增批量发送消息DTO与已读状态DTO 5. 新增插件目录列表接口与插件能力校验规则 6. 修复权限阶段配置,添加analytics权限映射 7. 优化健康检查、限流模块的环境变量配置支持 8. 修复配对过期扫描器参数名不匹配问题 9. 优化日志调用、文档注释与代码可读性 10. 移除废弃的AuditExportTask聚合根与相关导入
87 lines
5.0 KiB
JSON
87 lines
5.0 KiB
JSON
{
|
|
"id": "com.yuxi.channels.feishu",
|
|
"name": "飞书",
|
|
"version": "1.0.0",
|
|
"channel_type": "feishu",
|
|
"entry_module": "yuxi.channels.plugins.feishu.entry",
|
|
"provides": ["feishu"],
|
|
"lifecycle": ["init", "start", "stop", "unload"],
|
|
"compatibility": {
|
|
"min_host_version": "1.0.0",
|
|
"feishu_api_version": "v2"
|
|
},
|
|
"failure_policy": "degrade",
|
|
"depends": [],
|
|
"critical": false,
|
|
"requires_dm_pairing": true,
|
|
"requires_outbound_delivery": true,
|
|
"capabilities": {
|
|
"rich_message": true,
|
|
"streaming": true,
|
|
"typing_indicator": true,
|
|
"message_edit": true,
|
|
"message_recall": true,
|
|
"mention": true,
|
|
"command": true,
|
|
"directory": true,
|
|
"doctor": true,
|
|
"whitelist": true,
|
|
"supports_reaction": true,
|
|
"supports_pin": true,
|
|
"supports_card_update": true,
|
|
"supports_image_inbound": true,
|
|
"supports_video_inbound": false,
|
|
"supports_image_outbound": true,
|
|
"supports_video_outbound": true,
|
|
"max_message_length": 30720,
|
|
"lifecycle": true,
|
|
"supports_qr_login": true,
|
|
"supports_credential_cloning": false
|
|
},
|
|
"resource_quota": {
|
|
"max_cpu": "20.0",
|
|
"max_memory": "256MB",
|
|
"max_connections": 50,
|
|
"max_calls_per_sec": 50
|
|
},
|
|
"accessible_ports": [
|
|
"ConfigPort",
|
|
"LoggerPort",
|
|
"PersistencePort",
|
|
"CachePort",
|
|
"TracerPort",
|
|
"ConversationPort",
|
|
"IdentityResolverPort"
|
|
],
|
|
"injectable_pipelines": ["inbound", "outbound"],
|
|
"config_schema": [
|
|
{"key": "app_id", "type": "string", "required": true, "default": null, "hot_reloadable": false, "constraints": {"pattern": "^cli_[a-zA-Z0-9]+$"}},
|
|
{"key": "app_secret", "type": "string", "required": true, "default": null, "hot_reloadable": false, "constraints": {"sensitive": true}},
|
|
{"key": "encrypt_key", "type": "string", "required": false, "default": null, "hot_reloadable": true, "constraints": {"sensitive": true}},
|
|
{"key": "verification_token", "type": "string", "required": false, "default": null, "hot_reloadable": true, "constraints": {"sensitive": true}},
|
|
{"key": "event_mode", "type": "enum", "required": true, "default": "websocket", "hot_reloadable": false, "constraints": {"values": ["websocket", "webhook"]}},
|
|
{"key": "webhook_url", "type": "string", "required": false, "default": null, "hot_reloadable": false, "constraints": {"pattern": "^https://"}},
|
|
{"key": "bot_name", "type": "string", "required": true, "default": null, "hot_reloadable": true, "constraints": {}},
|
|
{"key": "bot_open_id", "type": "string", "required": true, "default": null, "hot_reloadable": true, "constraints": {"pattern": "^ou_[a-zA-Z0-9]+$"}},
|
|
{"key": "enable_qr_login", "type": "boolean", "required": false, "default": false, "hot_reloadable": true, "constraints": {}},
|
|
{"key": "qr_redirect_uri", "type": "string", "required": false, "default": null, "hot_reloadable": true, "constraints": {"pattern": "^https://"}},
|
|
{"key": "qr_timeout_ms", "type": "integer", "required": false, "default": 120000, "hot_reloadable": true, "constraints": {"min": 30000, "max": 300000}},
|
|
{"key": "api_base_url", "type": "string", "required": false, "default": "https://open.feishu.cn", "hot_reloadable": true, "constraints": {}},
|
|
{"key": "ws_endpoint", "type": "string", "required": false, "default": "wss://open.feishu.cn", "hot_reloadable": true, "constraints": {}},
|
|
{"key": "request_timeout_ms", "type": "integer", "required": false, "default": 30000, "hot_reloadable": true, "constraints": {"min": 5000, "max": 60000}},
|
|
{"key": "max_retries", "type": "integer", "required": false, "default": 3, "hot_reloadable": true, "constraints": {"min": 0, "max": 5}},
|
|
{"key": "rate_limit_per_sec", "type": "integer", "required": false, "default": 50, "hot_reloadable": true, "constraints": {"min": 1, "max": 100}},
|
|
{"key": "user_cache_ttl_sec", "type": "integer", "required": false, "default": 1800, "hot_reloadable": true, "constraints": {"min": 60, "max": 7200}},
|
|
{"key": "identity_cache_ttl_sec", "type": "integer", "required": false, "default": 60, "hot_reloadable": true, "constraints": {"min": 30, "max": 600}}
|
|
],
|
|
"env_vars": [
|
|
{"name": "FEISHU_APP_ID", "description": "飞书应用 App ID", "required": true, "default": null, "sensitive": false},
|
|
{"name": "FEISHU_APP_SECRET", "description": "飞书应用 App Secret", "required": true, "default": null, "sensitive": true},
|
|
{"name": "FEISHU_ENCRYPT_KEY", "description": "事件加密密钥", "required": false, "default": null, "sensitive": true},
|
|
{"name": "FEISHU_VERIFICATION_TOKEN", "description": "Webhook 验证 Token", "required": false, "default": null, "sensitive": true},
|
|
{"name": "FEISHU_BOT_NAME", "description": "飞书机器人名称", "required": true, "default": null, "sensitive": false},
|
|
{"name": "FEISHU_QR_REDIRECT_URI", "description": "扫码登录回调 URI", "required": false, "default": null, "sensitive": false},
|
|
{"name": "FEISHU_QR_TIMEOUT_MS", "description": "扫码登录超时时间(毫秒)", "required": false, "default": "120000", "sensitive": false}
|
|
]
|
|
}
|