```
feat(app-instance): 添加Outlook MCP调用超时配置选项 新增OUTLOOK_MCP_CALL_TIMEOUT_SECONDS环境变量,默认值为60秒, 用于控制后端等待Outlook MCP调用的超时时间。 在create-instance.sh脚本中添加了相应的命令行参数解析和处理逻辑, 同时更新了deploy-control组件的相关配置和测试用例。 BREAKING CHANGE: 新增配置项可能需要现有部署进行相应调整。 ```
This commit is contained in:
@ -16,6 +16,7 @@ APP_INSTANCE_API_BASE=
|
||||
DEFAULT_AUTHZ_BASE_URL=http://beaver-authz-service:19090
|
||||
DEFAULT_AUTHZ_OUTLOOK_MCP_URL=
|
||||
DEFAULT_OUTLOOK_MCP_SERVER_ID=outlook_mcp
|
||||
DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS=60
|
||||
DEFAULT_USER_FILES_MAX_UPLOAD_BYTES=5368709120
|
||||
DEFAULT_EXTERNAL_CONNECTOR_BASE_URL=http://external-connector:8787
|
||||
DEFAULT_EXTERNAL_CONNECTOR_TOKEN=
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
- `DEFAULT_AUTHZ_BASE_URL`
|
||||
- `DEFAULT_AUTHZ_OUTLOOK_MCP_URL`
|
||||
- `DEFAULT_OUTLOOK_MCP_SERVER_ID`
|
||||
- `DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS`
|
||||
- `DEPLOY_PUBLIC_BASE_DOMAIN`
|
||||
- `DEPLOY_PUBLIC_PORT`
|
||||
- `DEPLOY_PUBLIC_SCHEME`
|
||||
@ -42,6 +43,7 @@ http://<instance-slug>.localhost:8088
|
||||
```bash
|
||||
DEFAULT_AUTHZ_OUTLOOK_MCP_URL=http://10.6.80.29:8000/mcp
|
||||
DEFAULT_OUTLOOK_MCP_SERVER_ID=outlook_mcp
|
||||
DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS=60
|
||||
```
|
||||
|
||||
这样 `deploy-control` 创建的新实例会自动写入一条默认 MCP server 配置,并默认使用 `oauth_backend_token` + `mcp:<server_id>` 的 audience。
|
||||
|
||||
@ -41,6 +41,9 @@ DEFAULT_AUTHZ_BASE_URL = os.environ.get("DEFAULT_AUTHZ_BASE_URL", "").strip()
|
||||
DEFAULT_AUTHZ_INTERNAL_TOKEN = os.environ.get("DEFAULT_AUTHZ_INTERNAL_TOKEN", "").strip()
|
||||
DEFAULT_AUTHZ_OUTLOOK_MCP_URL = os.environ.get("DEFAULT_AUTHZ_OUTLOOK_MCP_URL", "").strip()
|
||||
DEFAULT_OUTLOOK_MCP_SERVER_ID = os.environ.get("DEFAULT_OUTLOOK_MCP_SERVER_ID", "outlook_mcp").strip() or "outlook_mcp"
|
||||
DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS = (
|
||||
os.environ.get("DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS", "60").strip() or "60"
|
||||
)
|
||||
DEFAULT_USER_FILES_MAX_UPLOAD_BYTES = os.environ.get("DEFAULT_USER_FILES_MAX_UPLOAD_BYTES", "").strip()
|
||||
DEFAULT_EXTERNAL_CONNECTOR_BASE_URL = os.environ.get(
|
||||
"DEFAULT_EXTERNAL_CONNECTOR_BASE_URL",
|
||||
@ -279,6 +282,7 @@ def create_or_get_instance(payload: dict[str, Any]) -> dict[str, Any]:
|
||||
if authz_outlook_mcp_url:
|
||||
command.extend(["--authz-outlook-mcp-url", authz_outlook_mcp_url])
|
||||
command.extend(["--outlook-mcp-server-id", DEFAULT_OUTLOOK_MCP_SERVER_ID])
|
||||
command.extend(["--outlook-mcp-call-timeout-seconds", DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS])
|
||||
if DEFAULT_USER_FILES_MAX_UPLOAD_BYTES:
|
||||
command.extend(["--user-files-max-upload-bytes", DEFAULT_USER_FILES_MAX_UPLOAD_BYTES])
|
||||
if DEFAULT_EXTERNAL_CONNECTOR_BASE_URL:
|
||||
|
||||
@ -35,6 +35,8 @@ def test_new_instance_receives_external_connector_configuration(monkeypatch) ->
|
||||
monkeypatch.setattr(server, "DEFAULT_EXTERNAL_CONNECTOR_TOKEN", "connector-token")
|
||||
monkeypatch.setattr(server, "DEFAULT_BEAVER_BRIDGE_TOKEN", "bridge-token")
|
||||
monkeypatch.setattr(server, "DEFAULT_INITIAL_SKILLS_DIR", "/srv/beaver/skills")
|
||||
monkeypatch.setattr(server, "DEFAULT_AUTHZ_OUTLOOK_MCP_URL", "http://bw-outlook-mcp:8000/mcp")
|
||||
monkeypatch.setattr(server, "DEFAULT_OUTLOOK_MCP_CALL_TIMEOUT_SECONDS", "60")
|
||||
|
||||
def capture_command(args: list[str], **_kwargs: Any) -> str:
|
||||
commands.append(args)
|
||||
@ -55,4 +57,5 @@ def test_new_instance_receives_external_connector_configuration(monkeypatch) ->
|
||||
assert command[command.index("--external-connector-token") + 1] == "connector-token"
|
||||
assert command[command.index("--bridge-token") + 1] == "bridge-token"
|
||||
assert command[command.index("--initial-skills-dir") + 1] == "/srv/beaver/skills"
|
||||
assert command[command.index("--outlook-mcp-call-timeout-seconds") + 1] == "60"
|
||||
assert result["created"] is True
|
||||
|
||||
Reference in New Issue
Block a user