@rudderhq/server 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +37 -5
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/routes/managed-mcp-connections.d.ts.map +1 -1
- package/dist/routes/managed-mcp-connections.js +8 -2
- package/dist/routes/managed-mcp-connections.js.map +1 -1
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js +19 -14
- package/dist/services/agents.js.map +1 -1
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.js +22 -0
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chat-work-manifest.d.ts.map +1 -1
- package/dist/services/chat-work-manifest.js +24 -1
- package/dist/services/chat-work-manifest.js.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.js +0 -4
- package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
- package/dist/services/mcp/managed-bindings.d.ts +10 -0
- package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
- package/dist/services/mcp/managed-bindings.js +171 -41
- package/dist/services/mcp/managed-bindings.js.map +1 -1
- package/dist/services/mcp/managed-connections.d.ts +9 -5
- package/dist/services/mcp/managed-connections.d.ts.map +1 -1
- package/dist/services/mcp/managed-connections.js +44 -8
- package/dist/services/mcp/managed-connections.js.map +1 -1
- package/dist/services/mcp/oauth.d.ts.map +1 -1
- package/dist/services/mcp/oauth.js +6 -0
- package/dist/services/mcp/oauth.js.map +1 -1
- package/package.json +14 -13
- package/resources/bundled-skills/rudder-docs/references/cli-reference.md +1 -0
- package/resources/postinstall-postgres-compat.mjs +190 -0
- package/skills/rudder-docs/references/cli-reference.md +1 -0
- package/ui-dist/assets/{LibraryLiveSurface-CnZxAEHp.js → LibraryLiveSurface-DDtwPO9-.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-B208YmVN.js → abnfDiagram-VRR7QNED-CPGW8okb.js} +1 -1
- package/ui-dist/assets/{arc-_raxgt-X.js → arc-cdttZ__q.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-y3eHT3Gk.js → architectureDiagram-ZJ3FMSHR-BsG01pWN.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-BT7LIBsS.js → blockDiagram-677ZJIJ3-B1roP0tr.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-w0r6PEZM.js → c4Diagram-LMCZKHZV-DqRfWVhA.js} +1 -1
- package/ui-dist/assets/channel-DfmxiTZj.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-C3fuIoNI.js → chunk-2Q5K7J3B-BA969KqV.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-DMb9Q2qh.js → chunk-32BRIVSS-CrwMHsoI.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-BqMkrxOv.js → chunk-5VM5RSS4-Dt5IzMJF.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-D0uW7ZHY.js → chunk-EX3LRPZG-aMzbbsKQ.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-_2Qhrxej.js → chunk-JWPE2WC7-DhMIT9qe.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-Bx3r3XhP.js → chunk-MOJQB5TN-BUbZ_L5c.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-ryJ6ulQN.js → chunk-RYQCIY6F-B7J4A2jr.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-CpTtqgWd.js → chunk-V7JOEXUC-B7L-FIpm.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-C4qXyyxR.js → chunk-VR4S4FIN-Ccf5E8Bp.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-CRPbq1d0.js → chunk-XXDRQBXY-DcGZXUsU.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-DgIUfFB6.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-DgIUfFB6.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-DClTXY3x.js → cose-bilkent-JH36ORCC-Cvha__4O.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-BqQy_6rq.js → cynefin-VYW2F7L2-CifR50Bv.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-C_5uIlLF.js → cynefinDiagram-TSTJHNR4-B5y2Au_Q.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-CvzApokN.js → dagre-VKFMJZFB-C8Z7NP5s.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-lsQoO58-.js → diagram-FQU43EPY-B8PsSp7k.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-DJSeMnXd.js → diagram-G47NLZAW-ZNeHjQTo.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-Cfg6gXXN.js → diagram-NH7WQ7WH-BkJ5Cvc8.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-DUS8ge-b.js → diagram-OA4YK3LP-CG-ul2t9.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-Cp-l5tVI.js → diagram-WEI45ONY-BBlyiYvo.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-BlRaFF_K.js → ebnfDiagram-CCIWWBDH-C5Cyd8ui.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-BZwqidAe.js → erDiagram-Q63AITRT-B5zvHIlc.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-BsfwK51N.js → flowDiagram-23GEKE2U-BD-iyLqx.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-D7rDtE9-.js → ganttDiagram-NO4QXBWP-9K9W4jBD.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-SI7fggdm.js → gitGraphDiagram-IHSO6WYX-DGKvptbn.js} +1 -1
- package/ui-dist/assets/{graph-jB2l85dN.js → graph-DqZBAYr1.js} +1 -1
- package/ui-dist/assets/{index-C_i-wGZX.js → index-3GRrrNfi.js} +1 -1
- package/ui-dist/assets/{index-CkjUvGSq.js → index-BD2LA7PJ.js} +1 -1
- package/ui-dist/assets/{index-CuPTWos7.js → index-BI28zsJq.js} +1 -1
- package/ui-dist/assets/{index-DR1WCr91.js → index-BQXnkO7e.js} +1 -1
- package/ui-dist/assets/{index-CZoL7L4x.js → index-Be4chI91.js} +1 -1
- package/ui-dist/assets/{index-CMGFrbv8.js → index-CHVQhWui.js} +1 -1
- package/ui-dist/assets/{index-DMFCHg9M.js → index-CKiSO725.js} +1 -1
- package/ui-dist/assets/{index-D8o_GAok.js → index-C_agqJXV.js} +1 -1
- package/ui-dist/assets/{index-gRrC-1Ro.js → index-CgZyL7nO.js} +1 -1
- package/ui-dist/assets/{index-BEtrDYuf.js → index-Cgq_Nd80.js} +1 -1
- package/ui-dist/assets/{index-DrRmkklS.js → index-ChvsJxSq.js} +526 -526
- package/ui-dist/assets/{index-DV8jlH7u.js → index-CosdYdyn.js} +1 -1
- package/ui-dist/assets/{index-DaC9LwaF.js → index-DFAyibYD.js} +1 -1
- package/ui-dist/assets/{index-BzZl24GX.js → index-DXElnq8U.js} +1 -1
- package/ui-dist/assets/{index-CTAmMJYG.js → index-D_KT5uHb.js} +1 -1
- package/ui-dist/assets/{index-BXIRLNEz.js → index-DuOt7u6c.js} +1 -1
- package/ui-dist/assets/{index-C2YHCs23.js → index-DufxYLOh.js} +1 -1
- package/ui-dist/assets/index-Z8v3wJ-J.css +1 -0
- package/ui-dist/assets/{index-3UJgpZuo.js → index-cEYpY2vS.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Dq_2Rg1m.js → infoDiagram-FWYZ7A6U-BnmKSBJv.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-uyywLhOx.js → ishikawaDiagram-FXEZZL3T-Dwi1X9vP.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-BSdGAEe3.js → journeyDiagram-5HDEW3XC-C87A4WNd.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-BeiytV3M.js → kanban-definition-HUTT4EX6-DcIdsL4-.js} +1 -1
- package/ui-dist/assets/{layout-kKtSz6Lw.js → layout-A4i4tMDj.js} +1 -1
- package/ui-dist/assets/{linear-BNg7ltC5.js → linear-a8MBxvqP.js} +1 -1
- package/ui-dist/assets/{map-rBM_jVzN.js → map-PBENE1Mt.js} +1 -1
- package/ui-dist/assets/{mermaid.core-B0lX_I1S.js → mermaid.core-CdxFJae5.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-6WrmM-3d.js → mindmap-definition-LN4V7U3C-D2y81BWu.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-BJ0lR6j8.js → pegDiagram-2B236MQR-7GJJ4jPf.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-Ch-KedEq.js → pieDiagram-ENE6RG2P-mq_oDI_I.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BLnrHtbN.js → quadrantDiagram-ABIIQ3AL-DeEWS5i6.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-u0KJZK8C.js → railroadDiagram-RFXS5EU6-oRP4s3Xo.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-C1MzHKp-.js → requirementDiagram-TGXJPOKE-CLUKSK3f.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-UIufCGDd.js → sankeyDiagram-HTMAVEWB-BJmkw4A-.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-Cv8Fb7zZ.js → sequenceDiagram-DBY2YBRQ-CIhklpNq.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-9U-7wwO3.js → sizeCapture-X5ZJPWSS-DnJU-X_B.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-BEOjkPpv.js → stateDiagram-2N3HPSRC-CzPZYUvw.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Dk2P5d1W.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-BEwruQnI.js → swimlanes-5IMT3BWC-Cn4XtApY.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Db9edjpu.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-CfWC6EYo.js → timeline-definition-FHXFAJF6-BEmaJO32.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-B2BPrj_n.js → vennDiagram-L72KCM5P-CpysQOlB.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-Cx2wmgRm.js → wardleyDiagram-EHGQE667-DVxM94Jq.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-Due4dZhR.js → xychartDiagram-FW5EYKEG-BdGioQRC.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/resources/community-skills/software-product-advisor/SKILL.md +0 -290
- package/ui-dist/assets/channel-NqK-mAXf.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CRSBnWpX.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CRSBnWpX.js +0 -1
- package/ui-dist/assets/index-CFGCM2jL.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BBO_VsOI.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DjAl9cJv.js +0 -8
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { activityLog, agentCustomIntegrationBindings, agents, customIntegrationTools, heartbeatRuns, mcpConnections, mcpOAuthGrants, } from "@rudderhq/db";
|
|
2
2
|
import { upsertMcpAgentBindingSchema, } from "@rudderhq/shared";
|
|
3
|
-
import { and, asc, eq, inArray, isNotNull, ne, or, sql } from "drizzle-orm";
|
|
3
|
+
import { and, asc, eq, inArray, isNotNull, ne, notInArray, or, sql } from "drizzle-orm";
|
|
4
4
|
import { conflict, notFound, unprocessable } from "../../errors.js";
|
|
5
5
|
import { isManagedMcpToolCapabilityAllowed, managedMcpRuntimeServerName, } from "./tool-discovery.js";
|
|
6
|
+
function isEligibleAutomaticMcpAgent(agent) {
|
|
7
|
+
if (agent.status === "terminated")
|
|
8
|
+
return false;
|
|
9
|
+
const metadata = agent.metadata;
|
|
10
|
+
if (!metadata || typeof metadata !== "object" || Array.isArray(metadata))
|
|
11
|
+
return true;
|
|
12
|
+
const record = metadata;
|
|
13
|
+
return record.hidden !== true && record.systemManaged !== "rudder_copilot";
|
|
14
|
+
}
|
|
6
15
|
export function effectiveManagedMcpAccess(bindingAccess, provider, organizationAccess) {
|
|
7
16
|
if (bindingAccess === "none")
|
|
8
17
|
return "none";
|
|
@@ -19,6 +28,8 @@ function publicConnection(row) {
|
|
|
19
28
|
return {
|
|
20
29
|
id: row.id,
|
|
21
30
|
orgId: row.orgId,
|
|
31
|
+
scope: row.scope,
|
|
32
|
+
ownerAgentId: row.ownerAgentId,
|
|
22
33
|
name: row.name,
|
|
23
34
|
displayName: row.displayName,
|
|
24
35
|
provider: row.provider,
|
|
@@ -74,6 +85,83 @@ function defaultAgentAccess(connection) {
|
|
|
74
85
|
return "provider_granted";
|
|
75
86
|
return connection.accessMode === "read_only" ? "read_only" : "read_write";
|
|
76
87
|
}
|
|
88
|
+
async function activeToolIdsForConnection(db, connectionId) {
|
|
89
|
+
return db.select({ id: customIntegrationTools.id })
|
|
90
|
+
.from(customIntegrationTools)
|
|
91
|
+
.where(and(eq(customIntegrationTools.connectionId, connectionId), eq(customIntegrationTools.status, "active"), eq(customIntegrationTools.enabled, true)))
|
|
92
|
+
.then((rows) => rows.map((row) => row.id));
|
|
93
|
+
}
|
|
94
|
+
async function insertAutomaticBinding(db, connection, agentId, source) {
|
|
95
|
+
const enabledToolIds = await activeToolIdsForConnection(db, connection.id);
|
|
96
|
+
const created = await db.insert(agentCustomIntegrationBindings)
|
|
97
|
+
.values({
|
|
98
|
+
orgId: connection.orgId,
|
|
99
|
+
agentId,
|
|
100
|
+
connectionId: connection.id,
|
|
101
|
+
status: "active",
|
|
102
|
+
accessMode: defaultAgentAccess(connection),
|
|
103
|
+
enabledToolIds,
|
|
104
|
+
})
|
|
105
|
+
.onConflictDoNothing()
|
|
106
|
+
.returning()
|
|
107
|
+
.then((rows) => rows[0] ?? null);
|
|
108
|
+
if (!created)
|
|
109
|
+
return;
|
|
110
|
+
await db.insert(activityLog).values(activityValues({
|
|
111
|
+
orgId: connection.orgId,
|
|
112
|
+
agentId,
|
|
113
|
+
connectionId: connection.id,
|
|
114
|
+
bindingId: created.id,
|
|
115
|
+
action: "mcp_agent_binding.created",
|
|
116
|
+
actor: {},
|
|
117
|
+
details: {
|
|
118
|
+
status: created.status,
|
|
119
|
+
accessMode: created.accessMode,
|
|
120
|
+
policyRevision: created.policyRevision,
|
|
121
|
+
enabledToolCount: created.enabledToolIds.length,
|
|
122
|
+
source,
|
|
123
|
+
},
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Creates only missing bindings at the connection's immutable ownership boundary.
|
|
128
|
+
* Existing bindings, including explicit No access, are never overwritten.
|
|
129
|
+
*/
|
|
130
|
+
export async function ensureDefaultManagedMcpBindingsForConnection(db, connection) {
|
|
131
|
+
if (connection.status !== "active"
|
|
132
|
+
|| !connection.enabled
|
|
133
|
+
|| connection.transport === "legacy_manual"
|
|
134
|
+
|| connection.canonicalState !== "canonical")
|
|
135
|
+
return;
|
|
136
|
+
if (connection.scope === "agent") {
|
|
137
|
+
if (!connection.ownerAgentId)
|
|
138
|
+
return;
|
|
139
|
+
await insertAutomaticBinding(db, connection, connection.ownerAgentId, "connection_activation");
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const organizationAgents = await db.select({
|
|
143
|
+
id: agents.id,
|
|
144
|
+
status: agents.status,
|
|
145
|
+
metadata: agents.metadata,
|
|
146
|
+
}).from(agents).where(eq(agents.orgId, connection.orgId));
|
|
147
|
+
for (const agent of organizationAgents.filter(isEligibleAutomaticMcpAgent)) {
|
|
148
|
+
await insertAutomaticBinding(db, connection, agent.id, "connection_activation");
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export async function ensureOrganizationManagedMcpBindingsForAgent(db, orgId, agentId) {
|
|
152
|
+
const agent = await db.select({
|
|
153
|
+
id: agents.id,
|
|
154
|
+
status: agents.status,
|
|
155
|
+
metadata: agents.metadata,
|
|
156
|
+
}).from(agents).where(and(eq(agents.orgId, orgId), eq(agents.id, agentId))).then((rows) => rows[0] ?? null);
|
|
157
|
+
if (!agent || !isEligibleAutomaticMcpAgent(agent))
|
|
158
|
+
return;
|
|
159
|
+
const organizationConnections = await db.select().from(mcpConnections)
|
|
160
|
+
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.scope, "organization"), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), eq(mcpConnections.canonicalState, "canonical"), ne(mcpConnections.transport, "legacy_manual")));
|
|
161
|
+
for (const connection of organizationConnections) {
|
|
162
|
+
await insertAutomaticBinding(db, connection, agentId, "agent_creation");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
77
165
|
function assertAgentAccessAllowed(connection, accessMode) {
|
|
78
166
|
if (accessMode === "none")
|
|
79
167
|
return;
|
|
@@ -176,7 +264,7 @@ export function managedMcpBindingService(db) {
|
|
|
176
264
|
await assertAgentInOrg(orgId, agentId);
|
|
177
265
|
const [connections, bindings, tools] = await Promise.all([
|
|
178
266
|
db.select().from(mcpConnections)
|
|
179
|
-
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), ne(mcpConnections.transport, "legacy_manual"), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
|
|
267
|
+
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), ne(mcpConnections.transport, "legacy_manual"), or(eq(mcpConnections.scope, "organization"), and(eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId))), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
|
|
180
268
|
.orderBy(asc(mcpConnections.displayName), asc(mcpConnections.name)),
|
|
181
269
|
db.select().from(agentCustomIntegrationBindings)
|
|
182
270
|
.where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId))),
|
|
@@ -226,7 +314,15 @@ export function managedMcpBindingService(db) {
|
|
|
226
314
|
.innerJoin(mcpOAuthGrants, eq(mcpOAuthGrants.connectionId, mcpConnections.id))
|
|
227
315
|
.where(and(eq(mcpConnections.orgId, orgId), inArray(mcpConnections.provider, [...providers]), eq(mcpConnections.canonicalState, "superseded"), eq(mcpOAuthGrants.orgId, orgId), eq(mcpOAuthGrants.status, "active"), isNotNull(mcpOAuthGrants.credentialSecretId))),
|
|
228
316
|
]);
|
|
229
|
-
const
|
|
317
|
+
const organizationConnectionByProvider = new Map(connections
|
|
318
|
+
.filter((connection) => connection.scope === "organization")
|
|
319
|
+
.map((connection) => [connection.provider, connection]));
|
|
320
|
+
const agentConnectionsByProvider = new Map();
|
|
321
|
+
for (const connection of connections.filter((candidate) => candidate.scope === "agent")) {
|
|
322
|
+
const values = agentConnectionsByProvider.get(connection.provider) ?? [];
|
|
323
|
+
values.push(connection);
|
|
324
|
+
agentConnectionsByProvider.set(connection.provider, values);
|
|
325
|
+
}
|
|
230
326
|
const bindingByConnection = new Map(bindings
|
|
231
327
|
.filter((binding) => binding.connectionId && binding.agentId === agentId)
|
|
232
328
|
.map((binding) => [binding.connectionId, binding]));
|
|
@@ -247,49 +343,58 @@ export function managedMcpBindingService(db) {
|
|
|
247
343
|
agentsForConnection.add(binding.agentId);
|
|
248
344
|
affectedAgentsByConnection.set(binding.connectionId, agentsForConnection);
|
|
249
345
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
connectionId: null,
|
|
258
|
-
maxAccess: null,
|
|
259
|
-
scopeMode: null,
|
|
260
|
-
revision: null,
|
|
261
|
-
affectedAgentCount: 0,
|
|
262
|
-
historicalGrantConnectionIds: [
|
|
263
|
-
...(historicalGrantIdsByProvider.get(provider) ?? []),
|
|
264
|
-
].sort(),
|
|
265
|
-
},
|
|
266
|
-
...(agentId
|
|
267
|
-
? { agent: { access: "none", activeRunUsesOlderPolicy: false } }
|
|
268
|
-
: {}),
|
|
269
|
-
};
|
|
346
|
+
const connectionState = (connection) => {
|
|
347
|
+
if (!connection)
|
|
348
|
+
return "not_connected";
|
|
349
|
+
if (connection.status === "active" && connection.enabled)
|
|
350
|
+
return "connected";
|
|
351
|
+
if (connection.status === "authorizing" || connection.status === "draft") {
|
|
352
|
+
return "connecting";
|
|
270
353
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
354
|
+
if (connection.status === "needs_reauth" || connection.status === "error") {
|
|
355
|
+
return "needs_attention";
|
|
356
|
+
}
|
|
357
|
+
return "disconnected";
|
|
358
|
+
};
|
|
359
|
+
const maxAccess = (connection) => (connection.provider === "notion"
|
|
360
|
+
? "provider_granted"
|
|
361
|
+
: connection.accessMode);
|
|
362
|
+
return providers.map((provider) => {
|
|
363
|
+
const organizationConnection = organizationConnectionByProvider.get(provider);
|
|
364
|
+
const agentConnections = agentConnectionsByProvider.get(provider) ?? [];
|
|
365
|
+
const ownedConnection = agentId
|
|
366
|
+
? agentConnections.find((connection) => connection.ownerAgentId === agentId)
|
|
367
|
+
: undefined;
|
|
368
|
+
const ownedShadowsOrganization = Boolean(ownedConnection
|
|
369
|
+
&& ownedConnection.status !== "revoked"
|
|
370
|
+
&& ownedConnection.status !== "disabled");
|
|
371
|
+
const effectiveConnection = ownedShadowsOrganization
|
|
372
|
+
? connectionState(ownedConnection) === "connected"
|
|
373
|
+
? ownedConnection
|
|
374
|
+
: undefined
|
|
375
|
+
: connectionState(organizationConnection) === "connected"
|
|
376
|
+
? organizationConnection
|
|
377
|
+
: undefined;
|
|
378
|
+
const binding = effectiveConnection
|
|
379
|
+
? bindingByConnection.get(effectiveConnection.id)
|
|
380
|
+
: undefined;
|
|
279
381
|
const access = binding?.status === "active"
|
|
280
|
-
? effectiveManagedMcpAccess(binding.accessMode,
|
|
382
|
+
? effectiveManagedMcpAccess(binding.accessMode, effectiveConnection.provider, effectiveConnection.accessMode)
|
|
281
383
|
: "none";
|
|
282
384
|
return {
|
|
283
385
|
provider,
|
|
284
386
|
organization: {
|
|
285
|
-
state:
|
|
286
|
-
connectionId:
|
|
287
|
-
maxAccess:
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
revision:
|
|
292
|
-
affectedAgentCount:
|
|
387
|
+
state: connectionState(organizationConnection),
|
|
388
|
+
connectionId: organizationConnection?.id ?? null,
|
|
389
|
+
maxAccess: organizationConnection ? maxAccess(organizationConnection) : null,
|
|
390
|
+
scopeMode: organizationConnection
|
|
391
|
+
? organizationConnection.scopeMode
|
|
392
|
+
: null,
|
|
393
|
+
revision: organizationConnection?.revision ?? null,
|
|
394
|
+
affectedAgentCount: organizationConnection
|
|
395
|
+
? affectedAgentsByConnection.get(organizationConnection.id)?.size ?? 0
|
|
396
|
+
: 0,
|
|
397
|
+
agentConnectionCount: agentConnections.filter((connection) => connection.status !== "revoked").length,
|
|
293
398
|
historicalGrantConnectionIds: [
|
|
294
399
|
...(historicalGrantIdsByProvider.get(provider) ?? []),
|
|
295
400
|
].sort(),
|
|
@@ -298,6 +403,21 @@ export function managedMcpBindingService(db) {
|
|
|
298
403
|
? {
|
|
299
404
|
agent: {
|
|
300
405
|
access,
|
|
406
|
+
connection: ownedConnection
|
|
407
|
+
? {
|
|
408
|
+
state: connectionState(ownedConnection),
|
|
409
|
+
connectionId: ownedConnection.id,
|
|
410
|
+
maxAccess: maxAccess(ownedConnection),
|
|
411
|
+
revision: ownedConnection.revision,
|
|
412
|
+
}
|
|
413
|
+
: null,
|
|
414
|
+
effectiveSource: effectiveConnection
|
|
415
|
+
? effectiveConnection.scope === "agent" ? "agent" : "organization"
|
|
416
|
+
: "none",
|
|
417
|
+
effectiveConnectionId: effectiveConnection?.id ?? null,
|
|
418
|
+
explicitlyDisabled: Boolean(ownedShadowsOrganization
|
|
419
|
+
&& binding
|
|
420
|
+
&& (binding.status !== "active" || binding.accessMode === "none")),
|
|
301
421
|
activeRunUsesOlderPolicy: Boolean(binding
|
|
302
422
|
&& runningRuns.some((run) => run.startedAt && binding.updatedAt > run.startedAt)),
|
|
303
423
|
},
|
|
@@ -316,6 +436,9 @@ export function managedMcpBindingService(db) {
|
|
|
316
436
|
.then((rows) => rows[0] ?? null);
|
|
317
437
|
if (!connection)
|
|
318
438
|
throw notFound("MCP connection not found");
|
|
439
|
+
if (connection.scope === "agent" && connection.ownerAgentId !== agentId) {
|
|
440
|
+
throw notFound("MCP connection not found");
|
|
441
|
+
}
|
|
319
442
|
if (!connection.enabled
|
|
320
443
|
|| connection.status !== "active"
|
|
321
444
|
|| connection.transport === "legacy_manual") {
|
|
@@ -485,8 +608,11 @@ export function managedMcpBindingService(db) {
|
|
|
485
608
|
})
|
|
486
609
|
.from(agentCustomIntegrationBindings)
|
|
487
610
|
.innerJoin(mcpConnections, eq(agentCustomIntegrationBindings.connectionId, mcpConnections.id))
|
|
488
|
-
.where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId), eq(agentCustomIntegrationBindings.status, "active"), eq(mcpConnections.orgId, orgId), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
|
|
611
|
+
.where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId), eq(agentCustomIntegrationBindings.status, "active"), eq(mcpConnections.orgId, orgId), or(eq(mcpConnections.scope, "organization"), and(eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId))), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
|
|
489
612
|
.orderBy(asc(mcpConnections.name));
|
|
613
|
+
const shadowedOfficialProviders = new Set((await db.select({ provider: mcpConnections.provider })
|
|
614
|
+
.from(mcpConnections)
|
|
615
|
+
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId), eq(mcpConnections.canonicalState, "canonical"), notInArray(mcpConnections.status, ["disabled", "revoked"]), inArray(mcpConnections.provider, ["supabase", "linear", "notion"])))).map((row) => row.provider));
|
|
490
616
|
const connectionIds = rows.map((row) => row.connection.id);
|
|
491
617
|
const [tools, grants] = await Promise.all([
|
|
492
618
|
connectionIds.length > 0
|
|
@@ -511,6 +637,10 @@ export function managedMcpBindingService(db) {
|
|
|
511
637
|
}
|
|
512
638
|
const runtime = [];
|
|
513
639
|
for (const { binding, connection } of rows) {
|
|
640
|
+
if (connection.scope === "organization"
|
|
641
|
+
&& connection.provider !== "custom"
|
|
642
|
+
&& shadowedOfficialProviders.has(connection.provider))
|
|
643
|
+
continue;
|
|
514
644
|
if (binding.accessMode === "none")
|
|
515
645
|
continue;
|
|
516
646
|
const effectiveAccess = effectiveManagedMcpAccess(binding.accessMode, connection.provider, connection.accessMode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-bindings.js","sourceRoot":"","sources":["../../../src/services/mcp/managed-bindings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-bindings.js","sourceRoot":"","sources":["../../../src/services/mcp/managed-bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Db } from "@rudderhq/db";
|
|
2
|
-
import { type CreateMcpConnection, type McpAgentAccessMode, type McpConnectionAccessMode, type McpConnectionProvider, type McpConnectionSummary, type McpDiscoveredTool, type UpdateMcpConnection } from "@rudderhq/shared";
|
|
2
|
+
import { type CreateMcpConnection, type McpAgentAccessMode, type McpConnectionAccessMode, type McpConnectionProvider, type McpConnectionScope, type McpConnectionSummary, type McpDiscoveredTool, type UpdateMcpConnection } from "@rudderhq/shared";
|
|
3
3
|
import { HttpError } from "../../errors.js";
|
|
4
4
|
import { type ManagedMcpClient, type ManagedMcpClientOptions, type ManagedMcpOAuthCredential } from "./managed-client.js";
|
|
5
5
|
import { type McpDeploymentAllowlists, type McpDnsLookup } from "./security-policy.js";
|
|
@@ -34,9 +34,9 @@ export declare function managedMcpConnectionService(db: Db, options: ManagedMcpC
|
|
|
34
34
|
label: "Supabase";
|
|
35
35
|
curated: true;
|
|
36
36
|
requiresOAuth: true;
|
|
37
|
-
requiresScopeSelection:
|
|
38
|
-
scopeLabel: "
|
|
39
|
-
defaultAccessMode: "
|
|
37
|
+
requiresScopeSelection: false;
|
|
38
|
+
scopeLabel: "Account";
|
|
39
|
+
defaultAccessMode: "read_write";
|
|
40
40
|
} | {
|
|
41
41
|
transports: ("stdio" | "streamable_http")[];
|
|
42
42
|
accessModes: ("provider_default" | "read_only" | "read_write")[];
|
|
@@ -70,7 +70,11 @@ export declare function managedMcpConnectionService(db: Db, options: ManagedMcpC
|
|
|
70
70
|
})[];
|
|
71
71
|
list: (orgId: string) => Promise<McpConnectionSummary[]>;
|
|
72
72
|
get: (orgId: string, connectionId: string) => Promise<McpConnectionSummary>;
|
|
73
|
-
ensureOfficial: (orgId: string, provider: Exclude<McpConnectionProvider, "custom">,
|
|
73
|
+
ensureOfficial: (orgId: string, provider: Exclude<McpConnectionProvider, "custom">, target: {
|
|
74
|
+
scope: McpConnectionScope;
|
|
75
|
+
ownerAgentId: string | null;
|
|
76
|
+
accessMode?: McpConnectionAccessMode;
|
|
77
|
+
}, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
|
|
74
78
|
prepareSupabaseAccountUpgrade: (orgId: string, legacyConnectionId: string, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
|
|
75
79
|
openRuntimeClient: (orgId: string, connectionId: string, agentAccessMode?: McpAgentAccessMode) => Promise<ManagedMcpClient>;
|
|
76
80
|
create: (orgId: string, rawInput: CreateMcpConnection, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-connections.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/managed-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-connections.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/managed-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAWvC,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAY,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,eAAe,GAAG,eAAe,CAAC;IAClD,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,KACjB,yBAAyB,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,+BAAgC,SAAQ,SAAS;IAC5D,QAAQ,CAAC,IAAI,iCAAiC;gBAElC,OAAO,SAA6D;CAIjF;AAED,qBAAa,6BAA8B,SAAQ,SAAS;IAC1D,QAAQ,CAAC,IAAI,iCAAiC;;CAM/C;AAuSD,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4Q3B,MAAM;iBAQD,MAAM,gBAAgB,MAAM;4BAItC,MAAM,YACH,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,UAC1C;QACN,KAAK,EAAE,kBAAkB,CAAC;QAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,CAAC,EAAE,uBAAuB,CAAC;KACtC,UACM,uBAAuB;2CA0EvB,MAAM,sBACO,MAAM,UACnB,uBAAuB;+BA0EvB,MAAM,gBACC,MAAM,oBACF,kBAAkB;oBAc7B,MAAM,YACH,mBAAmB,UACtB,uBAAuB;oBA6FvB,MAAM,gBACC,MAAM,YACV,mBAAmB,UACtB,uBAAuB,YACrB,uBAAuB;uBAgMzB,MAAM,gBACC,MAAM,UACb,uBAAuB;wBA4DvB,MAAM,gBACC,MAAM,UACb,uBAAuB;uBAhjBF,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;0BAqlBhF,MAAM,gBACC,MAAM,UACb,uBAAuB;EAyMnC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { activityLog, agentCustomIntegrationBindings, customIntegrationTools, mcpConnections, mcpOAuthGrants, organizationSecrets, organizationSecretVersions, } from "@rudderhq/db";
|
|
1
|
+
import { activityLog, agentCustomIntegrationBindings, agents, customIntegrationTools, mcpConnections, mcpOAuthGrants, organizationSecrets, organizationSecretVersions, } from "@rudderhq/db";
|
|
2
2
|
import { createMcpConnectionSchema, MCP_PROVIDER_CATALOG, mcpConnectionMergedConfigSchema, mcpConnectionMutationConfigSchema, updateMcpConnectionSchema, } from "@rudderhq/shared";
|
|
3
3
|
import { and, asc, eq, sql } from "drizzle-orm";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { conflict, HttpError, notFound, unprocessable } from "../../errors.js";
|
|
6
6
|
import { getSecretProvider } from "../../secrets/provider-registry.js";
|
|
7
7
|
import { secretService } from "../secrets.js";
|
|
8
|
+
import { ensureDefaultManagedMcpBindingsForConnection } from "./managed-bindings.js";
|
|
8
9
|
import { createManagedMcpClient, resolveMcpHttpCredentials, } from "./managed-client.js";
|
|
9
10
|
import { MCP_PROVIDER_REGISTRY, resolveCuratedMcpEndpoint, } from "./provider-registry.js";
|
|
10
11
|
import { assertSafeMcpCredentialHeaders, assertSafeMcpHeaders, resolveMcpHttpTarget, validateMcpStdioPolicy, } from "./security-policy.js";
|
|
@@ -160,6 +161,8 @@ function publicSummary(row) {
|
|
|
160
161
|
return {
|
|
161
162
|
id: row.id,
|
|
162
163
|
orgId: row.orgId,
|
|
164
|
+
scope: row.scope,
|
|
165
|
+
ownerAgentId: row.ownerAgentId,
|
|
163
166
|
name: row.name,
|
|
164
167
|
displayName: row.displayName,
|
|
165
168
|
provider: row.provider,
|
|
@@ -249,6 +252,19 @@ export function managedMcpConnectionService(db, options) {
|
|
|
249
252
|
throw notFound("MCP connection not found");
|
|
250
253
|
return row;
|
|
251
254
|
}
|
|
255
|
+
async function assertConnectionOwner(orgId, scope, ownerAgentId) {
|
|
256
|
+
if (scope === "organization") {
|
|
257
|
+
if (ownerAgentId) {
|
|
258
|
+
throw unprocessable("Organization MCP connections cannot have an owner agent");
|
|
259
|
+
}
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (!ownerAgentId)
|
|
263
|
+
throw unprocessable("Agent MCP connections require an owner agent");
|
|
264
|
+
const owner = await db.select({ id: agents.id }).from(agents).where(and(eq(agents.orgId, orgId), eq(agents.id, ownerAgentId))).then((rows) => rows[0] ?? null);
|
|
265
|
+
if (!owner)
|
|
266
|
+
throw unprocessable("MCP connection owner must belong to the organization");
|
|
267
|
+
}
|
|
252
268
|
function assertHttpEnvironmentPolicy(config) {
|
|
253
269
|
if (options.deploymentMode !== "authenticated")
|
|
254
270
|
return;
|
|
@@ -459,13 +475,14 @@ export function managedMcpConnectionService(db, options) {
|
|
|
459
475
|
.orderBy(asc(mcpConnections.displayName))
|
|
460
476
|
.then((rows) => rows.map(publicSummary)),
|
|
461
477
|
get: async (orgId, connectionId) => publicSummary(await findRow(orgId, connectionId)),
|
|
462
|
-
ensureOfficial: async (orgId, provider,
|
|
478
|
+
ensureOfficial: async (orgId, provider, target, actor = {}) => {
|
|
479
|
+
await assertConnectionOwner(orgId, target.scope, target.ownerAgentId);
|
|
463
480
|
const definition = MCP_PROVIDER_REGISTRY[provider];
|
|
464
481
|
const catalog = MCP_PROVIDER_CATALOG.find((entry) => entry.id === provider);
|
|
465
482
|
if (!catalog) {
|
|
466
483
|
throw unprocessable("Official MCP provider is invalid");
|
|
467
484
|
}
|
|
468
|
-
const accessMode =
|
|
485
|
+
const accessMode = target.accessMode ?? definition.defaultAccessMode;
|
|
469
486
|
const accessModeIsValid = provider === "notion"
|
|
470
487
|
? accessMode === "provider_default"
|
|
471
488
|
: accessMode === "read_only" || accessMode === "read_write";
|
|
@@ -475,18 +492,24 @@ export function managedMcpConnectionService(db, options) {
|
|
|
475
492
|
const row = await db.transaction(async (tx) => {
|
|
476
493
|
await tx.execute(sql `
|
|
477
494
|
select pg_advisory_xact_lock(
|
|
478
|
-
hashtextextended(${`managed-mcp-official:${orgId}:${provider}`}, 0)
|
|
495
|
+
hashtextextended(${`managed-mcp-official:${orgId}:${provider}:${target.scope}:${target.ownerAgentId ?? "organization"}`}, 0)
|
|
479
496
|
)
|
|
480
497
|
`);
|
|
481
498
|
const existing = await tx.select().from(mcpConnections)
|
|
482
|
-
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, provider), eq(mcpConnections.
|
|
499
|
+
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, provider), eq(mcpConnections.scope, target.scope), target.scope === "agent"
|
|
500
|
+
? eq(mcpConnections.ownerAgentId, target.ownerAgentId)
|
|
501
|
+
: sql `${mcpConnections.ownerAgentId} is null`, eq(mcpConnections.canonicalState, "canonical")))
|
|
483
502
|
.for("update")
|
|
484
503
|
.then((rows) => rows[0] ?? null);
|
|
485
504
|
if (existing)
|
|
486
505
|
return existing;
|
|
487
506
|
const created = await tx.insert(mcpConnections).values({
|
|
488
507
|
orgId,
|
|
489
|
-
|
|
508
|
+
scope: target.scope,
|
|
509
|
+
ownerAgentId: target.ownerAgentId,
|
|
510
|
+
name: target.scope === "organization"
|
|
511
|
+
? provider
|
|
512
|
+
: `${provider}-agent-${target.ownerAgentId.slice(0, 12)}`,
|
|
490
513
|
displayName: catalog.label,
|
|
491
514
|
provider,
|
|
492
515
|
transport: "streamable_http",
|
|
@@ -510,6 +533,8 @@ export function managedMcpConnectionService(db, options) {
|
|
|
510
533
|
provider,
|
|
511
534
|
transport: created.transport,
|
|
512
535
|
status: created.status,
|
|
536
|
+
scope: created.scope,
|
|
537
|
+
ownerAgentId: created.ownerAgentId,
|
|
513
538
|
},
|
|
514
539
|
}));
|
|
515
540
|
return created;
|
|
@@ -536,19 +561,23 @@ export function managedMcpConnectionService(db, options) {
|
|
|
536
561
|
throw unprocessable("Only a canonical project-scoped Supabase connection can be upgraded");
|
|
537
562
|
}
|
|
538
563
|
const existing = await tx.select().from(mcpConnections)
|
|
539
|
-
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, "supabase"), eq(mcpConnections.
|
|
564
|
+
.where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, "supabase"), eq(mcpConnections.scope, legacy.scope), legacy.scope === "agent"
|
|
565
|
+
? eq(mcpConnections.ownerAgentId, legacy.ownerAgentId)
|
|
566
|
+
: sql `${mcpConnections.ownerAgentId} is null`, eq(mcpConnections.scopeMode, "account"), eq(mcpConnections.canonicalState, "superseded"), eq(mcpConnections.supersededByConnectionId, legacy.id)))
|
|
540
567
|
.then((rows) => rows[0] ?? null);
|
|
541
568
|
if (existing)
|
|
542
569
|
return existing;
|
|
543
570
|
const created = await tx.insert(mcpConnections).values({
|
|
544
571
|
orgId,
|
|
572
|
+
scope: legacy.scope,
|
|
573
|
+
ownerAgentId: legacy.ownerAgentId,
|
|
545
574
|
name: `supabase-account-upgrade-${legacy.id}`,
|
|
546
575
|
displayName: "Supabase",
|
|
547
576
|
provider: "supabase",
|
|
548
577
|
transport: "streamable_http",
|
|
549
578
|
externalScope: null,
|
|
550
579
|
scopeMode: "account",
|
|
551
|
-
accessMode: "
|
|
580
|
+
accessMode: "read_write",
|
|
552
581
|
status: "draft",
|
|
553
582
|
safeConfig: {},
|
|
554
583
|
enabled: true,
|
|
@@ -581,6 +610,7 @@ export function managedMcpConnectionService(db, options) {
|
|
|
581
610
|
},
|
|
582
611
|
create: async (orgId, rawInput, actor = {}) => {
|
|
583
612
|
const input = createMcpConnectionSchema.parse(rawInput);
|
|
613
|
+
await assertConnectionOwner(orgId, input.scope, input.ownerAgentId ?? null);
|
|
584
614
|
if (input.transport === "legacy_manual") {
|
|
585
615
|
throw unprocessable("Legacy manual MCP definitions cannot be created as managed connections");
|
|
586
616
|
}
|
|
@@ -621,6 +651,8 @@ export function managedMcpConnectionService(db, options) {
|
|
|
621
651
|
}
|
|
622
652
|
const created = await tx.insert(mcpConnections).values({
|
|
623
653
|
orgId,
|
|
654
|
+
scope: input.scope,
|
|
655
|
+
ownerAgentId: input.ownerAgentId ?? null,
|
|
624
656
|
credentialSecretId: credential?.id ?? null,
|
|
625
657
|
name: input.name,
|
|
626
658
|
displayName: input.displayName,
|
|
@@ -651,6 +683,8 @@ export function managedMcpConnectionService(db, options) {
|
|
|
651
683
|
provider: created.provider,
|
|
652
684
|
transport: created.transport,
|
|
653
685
|
status: created.status,
|
|
686
|
+
scope: created.scope,
|
|
687
|
+
ownerAgentId: created.ownerAgentId,
|
|
654
688
|
},
|
|
655
689
|
}));
|
|
656
690
|
return created;
|
|
@@ -1035,6 +1069,8 @@ export function managedMcpConnectionService(db, options) {
|
|
|
1035
1069
|
},
|
|
1036
1070
|
}));
|
|
1037
1071
|
});
|
|
1072
|
+
const activated = await findRow(orgId, connectionId);
|
|
1073
|
+
await ensureDefaultManagedMcpBindingsForConnection(db, activated);
|
|
1038
1074
|
return listTools(orgId, connectionId);
|
|
1039
1075
|
}
|
|
1040
1076
|
catch (error) {
|