PON connector-service — Kết nối tài khoản bên thứ ba & AI gọi tool qua MCP

PON connector-service — Kết nối tài khoản bên thứ ba & AI gọi tool qua MCP A workflow diagram generated by Archify. 01 / Người dùng · Integrations (Web / Flutter) 02 / connector-service · OAuth (NestJS :3003) 03 / Dữ liệu: MongoDB · Vault 04 / ai-service · tool loop 05 / connector-service · /internal/tools + governance 06 / connector-service · adapters 07 / Bên thứ ba EX / Nhánh chặn / lỗi Kết nối tài khoản (một lần) AI xin danh sách tool AI gọi tool · gate lại · audit Bấm Connect · Integrations · popup · Người dùng · Integrations (Web / Flutter) › Kết nối tài khoản (một lần) · GET /oauth/:p/start Bấm Connect Integrations · popup GET /oauth/:p/start Consent screen · Notion · Google · popup · Người dùng · Integrations (Web / Flutter) › Kết nối tài khoản (một lần) · redirect ?code&state Consent screen Notion · Google · popup redirect ?code&state Kết quả trong chat · result · card nếu write · Người dùng · Integrations (Web / Flutter) › AI xin danh sách tool · confirm / cancel Kết quả trong chat result · card nếu write confirm / cancel startAuthorization · capability + allow-list · connector-service · OAuth (NestJS :3003) › Kết nối tài khoản (một lần) · state HMAC · TTL 10' startAuthorization capability + allow-list state HMAC · TTL 10' handleCallback · state · recheck · đổi code · connector-service · OAuth (NestJS :3003) › Kết nối tài khoản (một lần) · 302 ?connected= · ?error= handleCallback state · recheck · đổi code 302 ?connected= · ?error= TokenVault · AES-256-GCM · Dữ liệu: MongoDB · Vault › Kết nối tài khoản (một lần) · CONNECTOR_VAULT_KEY TokenVault AES-256-GCM CONNECTOR_VAULT_KEY user_connections · personal / workspace · Dữ liệu: MongoDB · Vault › AI xin danh sách tool · + workspaces · roles user_connections personal / workspace + workspaces · roles auditlogs · connect · sensitive_skill.run · Dữ liệu: MongoDB · Vault › AI gọi tool · gate lại · audit · append-only auditlogs connect · sensitive_skill.run append-only ai-service getTools · GET /internal/tools · ai-service · tool loop › AI xin danh sách tool · timeout 5s · degrade ai-service getTools GET /internal/tools timeout 5s · degrade ai-service callTool · POST /internal/tools/call · ai-service · tool loop › AI xin danh sách tool · write → card trước ai-service callTool POST /internal/tools/call write → card trước InternalKeyGuard · x-internal-key · connector-service · /internal/tools + governance › AI xin danh sách tool · timingSafeEqual InternalKeyGuard x-internal-key timingSafeEqual getTools · gom · lọc · đặt tên · connector-service · /internal/tools + governance › AI xin danh sách tool · mcp__<p>__<tool> getTools gom · lọc · đặt tên mcp__<p>__<tool> callTool · parse · gate lại · audit · connector-service · /internal/tools + governance › AI gọi tool · gate lại · audit · Tool error: [CODE] callTool parse · gate lại · audit Tool error: [CODE] ProviderAdapter · Notion · Google · MCP · connector-service · adapters › AI gọi tool · gate lại · audit · list + call · refresh single-flight ProviderAdapter Notion · Google · MCP list + call · refresh single-flight Notion · Google · MCP · REST API / MCP server · Bên thứ ba › AI gọi tool · gate lại · audit · safeFetch chống SSRF Notion · Google · MCP REST API / MCP server safeFetch chống SSRF Bị chặn · ẩn khỏi list · NOT_PERMITTED · Nhánh chặn / lỗi › AI xin danh sách tool · ở list lẫn call Bị chặn ẩn khỏi list · NOT_PERMITTED ở list lẫn call Token hết hạn · 401 → refresh 1 lần · Nhánh chặn / lỗi › AI gọi tool · gate lại · audit · invalid_grant → expired Token hết hạn 401 → refresh 1 lần invalid_grant → expired bearer · REST / MCP POST tools/call tool_result x-internal-key callTool nếu sensitive encrypt tokens 401 / invalid_grant userId tools[] → model chọn own + workspace · policy withheld · NOT_PERMITTED ?code&state authorizeUrl JWT · provider upsert · scope Legend User UI Agent logic Policy Context / trace External system