ForcePilot/backend/package/yuxi/external_systems/integrations/slack/metadata.py
Kris 74709ba2d3 feat: 完成外部系统限界上下文核心代码实现
新增六边形架构核心代码包,包含:
1. 协议适配器层:HTTP/SMTP/IMAP/SSH/GRPC等多协议适配器实现
2. 认证插件体系:基础认证、API密钥、HMAC等多类型认证插件
3. 执行编排框架:工具执行器、上下文构建、运行时治理组件
4. 用例端口与DTO:定义领域服务端口与数据传输对象
5. 厂商集成包框架:支持第三方系统集成扩展
6. 基础设施装配层:实现依赖注入与服务装配

所有代码遵循六边形架构设计原则,实现端口与适配器解耦,支持动态扩展与自动发现。
2026-06-20 22:12:42 +08:00

57 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Slack 厂商集成元数据。
定义 ``IntegrationMetadata(key="slack", ...)``,由 ``__init__.py`` 自注册到
``IntegrationRegistry``。元数据为内存态,不持久化到数据库。
``connection_extra_schema`` 声明 ``base_url``(必填)与 ``team_id``(可选)两个
连接配置额外字段:
- ``base_url``Slack Web API 基础 URL默认 ``https://slack.com/api``。
- ``team_id``:工作区 ID多 workspace 安装时用于路由 Token。
"""
from __future__ import annotations
from yuxi.external_systems.integrations.schemas import IntegrationMetadata
from yuxi.external_systems.integrations.slack.constants import BASE_URL
SLACK_METADATA = IntegrationMetadata(
key="slack",
display_name="Slack",
description="Slack 协作平台集成,支持消息发送、频道管理、文件上传与事件订阅",
adapter_type="http",
source_types=["slack"],
supported_auth_types=[
"oauth2_authorization_code",
"slack_bot_token",
"slack_app_token",
],
tags=["collaboration", "im", "notification"],
icon="slack",
docs_url="https://api.slack.com/web",
connection_extra_schema={
"type": "object",
"properties": {
"base_url": {
"type": "string",
"default": BASE_URL,
"description": "Slack Web API 基础 URL",
},
"team_id": {
"type": "string",
"description": "工作区 ID多 workspace 安装时用于路由 Token",
},
},
"required": ["base_url"],
},
example_config={
"base_url": BASE_URL,
"team_id": "T00000000",
},
dependency_note=(
"1. 至少配置一种认证方式oauth2_authorization_code / slack_bot_token / slack_app_token"
"2. Socket Mode 需额外配置 slack_app_tokenxapp-...,需 connections:write scope"
"3. Bot Token 推荐 scopechat:write / channels:read / users:read / files:write"
"4. 读取用户 email 需额外申请 users:read.email scope。"
),
)