@kya-os/mcp-i-cloudflare 1.6.12 → 1.6.13
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/runtime/oauth-handler.d.ts +2 -2
- package/dist/runtime/oauth-handler.d.ts.map +1 -1
- package/dist/runtime/oauth-handler.js +187 -161
- package/dist/runtime/oauth-handler.js.map +1 -1
- package/package.json +2 -2
- package/dist/__tests__/e2e/test-config.d.ts +0 -37
- package/dist/__tests__/e2e/test-config.d.ts.map +0 -1
- package/dist/__tests__/e2e/test-config.js +0 -62
- package/dist/__tests__/e2e/test-config.js.map +0 -1
|
@@ -13,8 +13,8 @@ export interface HonoContext {
|
|
|
13
13
|
json: (object: any, status?: number) => Response;
|
|
14
14
|
header: (name: string, value: string) => void;
|
|
15
15
|
}
|
|
16
|
-
import type { ConsentService } from
|
|
17
|
-
import type { OAuthSecurityService } from
|
|
16
|
+
import type { ConsentService } from "../services/consent.service";
|
|
17
|
+
import type { OAuthSecurityService } from "../services/oauth-security.service";
|
|
18
18
|
export interface OAuthCallbackConfig {
|
|
19
19
|
/**
|
|
20
20
|
* AgentShield API URL (defaults to AGENTSHIELD_API_URL env var)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE;QACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KAC9C,CAAC;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IAClD,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAID,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAErD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC;IAElD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8KD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,GAAE,mBAAwB,IAC3D,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"oauth-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE;QACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KAC9C,CAAC;IACF,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IAClD,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAID,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAErD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC;IAElD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8KD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,GAAE,mBAAwB,IAC3D,GAAG,WAAW,uBAk6B7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAoBpE"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides reusable OAuth callback handler for agents using delegation flow
|
|
5
5
|
*/
|
|
6
|
-
import { STORAGE_KEYS } from
|
|
6
|
+
import { STORAGE_KEYS } from "../constants/storage-keys";
|
|
7
7
|
/**
|
|
8
8
|
* Default success page template
|
|
9
9
|
*/
|
|
@@ -94,7 +94,7 @@ const defaultSuccessTemplate = (data) => `
|
|
|
94
94
|
|
|
95
95
|
<div class="info">
|
|
96
96
|
<p>Authorized Scopes:</p>
|
|
97
|
-
<div class="code">${data.scopes.join(
|
|
97
|
+
<div class="code">${data.scopes.join(", ")}</div>
|
|
98
98
|
</div>
|
|
99
99
|
|
|
100
100
|
<p>You can now close this window and return to Claude Desktop. The authorized tools are ready to use.</p>
|
|
@@ -184,39 +184,39 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
184
184
|
return async (c) => {
|
|
185
185
|
const env = c.env;
|
|
186
186
|
// Get configuration with defaults
|
|
187
|
-
const { agentShieldApiUrl = env.AGENTSHIELD_API_URL ||
|
|
187
|
+
const { agentShieldApiUrl = env.AGENTSHIELD_API_URL || "https://hobbs.work", delegationStorage, consentService, oauthSecurityService, successTemplate = defaultSuccessTemplate, errorTemplate = defaultErrorTemplate, autoClose = true, autoCloseDelay = 5000, agentName, // MCP Server name for delegation notifications
|
|
188
188
|
} = config;
|
|
189
189
|
// Get query parameters
|
|
190
|
-
const code = c.req.query(
|
|
191
|
-
const stateParam = c.req.query(
|
|
192
|
-
const error = c.req.query(
|
|
190
|
+
const code = c.req.query("code");
|
|
191
|
+
const stateParam = c.req.query("state");
|
|
192
|
+
const error = c.req.query("error");
|
|
193
193
|
// Handle OAuth errors
|
|
194
194
|
if (error) {
|
|
195
|
-
const errorDescription = c.req.query(
|
|
196
|
-
console.error(
|
|
195
|
+
const errorDescription = c.req.query("error_description") || "Authorization failed";
|
|
196
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Error from provider:", {
|
|
197
197
|
error,
|
|
198
198
|
errorDescription,
|
|
199
199
|
timestamp: new Date().toISOString(),
|
|
200
|
-
eventType:
|
|
200
|
+
eventType: "oauth_provider_error",
|
|
201
201
|
});
|
|
202
202
|
const html = errorTemplate({
|
|
203
203
|
error,
|
|
204
|
-
description: errorDescription
|
|
204
|
+
description: errorDescription,
|
|
205
205
|
});
|
|
206
206
|
return c.html(html, 400);
|
|
207
207
|
}
|
|
208
208
|
// Validate required parameters
|
|
209
209
|
if (!code || !stateParam) {
|
|
210
|
-
console.error(
|
|
210
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Missing required parameters:", {
|
|
211
211
|
hasCode: !!code,
|
|
212
212
|
hasState: !!stateParam,
|
|
213
213
|
timestamp: new Date().toISOString(),
|
|
214
|
-
eventType:
|
|
215
|
-
reason:
|
|
214
|
+
eventType: "oauth_validation_failed",
|
|
215
|
+
reason: "missing_parameters",
|
|
216
216
|
});
|
|
217
217
|
const html = errorTemplate({
|
|
218
|
-
error:
|
|
219
|
-
description:
|
|
218
|
+
error: "invalid_request",
|
|
219
|
+
description: "Missing authorization code or state parameter",
|
|
220
220
|
});
|
|
221
221
|
return c.html(html, 400);
|
|
222
222
|
}
|
|
@@ -228,15 +228,15 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
228
228
|
try {
|
|
229
229
|
stateData = await oauthSecurityService.getOAuthState(stateParam);
|
|
230
230
|
if (!stateData) {
|
|
231
|
-
console.error(
|
|
232
|
-
stateParam: stateParam.substring(0, 20) +
|
|
231
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: State validation failed - state not found or expired:", {
|
|
232
|
+
stateParam: stateParam.substring(0, 20) + "...",
|
|
233
233
|
timestamp: new Date().toISOString(),
|
|
234
|
-
eventType:
|
|
235
|
-
reason:
|
|
234
|
+
eventType: "csrf_protection_failed",
|
|
235
|
+
reason: "state_not_found_or_expired",
|
|
236
236
|
});
|
|
237
237
|
const html = errorTemplate({
|
|
238
|
-
error:
|
|
239
|
-
description:
|
|
238
|
+
error: "invalid_state",
|
|
239
|
+
description: "Invalid or expired state parameter. This may be a CSRF attack or the authorization request has expired.",
|
|
240
240
|
});
|
|
241
241
|
return c.html(html, 400);
|
|
242
242
|
}
|
|
@@ -247,46 +247,46 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
247
247
|
session_id: stateData.session_id,
|
|
248
248
|
delegation_id: stateData.delegation_id,
|
|
249
249
|
};
|
|
250
|
-
console.log(
|
|
250
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: State validated successfully:", {
|
|
251
251
|
projectId: state.project_id,
|
|
252
|
-
agentDid: state.agent_did.substring(0, 20) +
|
|
253
|
-
sessionId: state.session_id?.substring(0, 20) +
|
|
252
|
+
agentDid: state.agent_did.substring(0, 20) + "...",
|
|
253
|
+
sessionId: state.session_id?.substring(0, 20) + "...",
|
|
254
254
|
timestamp: new Date().toISOString(),
|
|
255
|
-
eventType:
|
|
256
|
-
stateStoredAt: stateData.storedAt
|
|
255
|
+
eventType: "csrf_protection_success",
|
|
256
|
+
stateStoredAt: stateData.storedAt,
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
catch (err) {
|
|
260
|
-
console.error(
|
|
260
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: State validation error:", {
|
|
261
261
|
error: err instanceof Error ? err.message : String(err),
|
|
262
|
-
stateParam: stateParam.substring(0, 20) +
|
|
262
|
+
stateParam: stateParam.substring(0, 20) + "...",
|
|
263
263
|
timestamp: new Date().toISOString(),
|
|
264
|
-
eventType:
|
|
265
|
-
reason:
|
|
264
|
+
eventType: "csrf_protection_error",
|
|
265
|
+
reason: "validation_exception",
|
|
266
266
|
});
|
|
267
267
|
const html = errorTemplate({
|
|
268
|
-
error:
|
|
269
|
-
description:
|
|
268
|
+
error: "invalid_state",
|
|
269
|
+
description: "Failed to validate state parameter",
|
|
270
270
|
});
|
|
271
271
|
return c.html(html, 400);
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
else {
|
|
275
275
|
// Fallback: Decode state parameter directly (less secure, but backward compatible)
|
|
276
|
-
console.warn(
|
|
276
|
+
console.warn("[OAuth] ⚠️ SECURITY WARNING: OAuthSecurityService not provided, using insecure state decoding");
|
|
277
277
|
try {
|
|
278
278
|
state = JSON.parse(atob(stateParam));
|
|
279
279
|
}
|
|
280
280
|
catch (err) {
|
|
281
|
-
console.error(
|
|
281
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Failed to decode state:", {
|
|
282
282
|
error: err instanceof Error ? err.message : String(err),
|
|
283
283
|
timestamp: new Date().toISOString(),
|
|
284
|
-
eventType:
|
|
285
|
-
reason:
|
|
284
|
+
eventType: "oauth_validation_failed",
|
|
285
|
+
reason: "state_decode_error",
|
|
286
286
|
});
|
|
287
287
|
const html = errorTemplate({
|
|
288
|
-
error:
|
|
289
|
-
description:
|
|
288
|
+
error: "invalid_state",
|
|
289
|
+
description: "Invalid state parameter",
|
|
290
290
|
});
|
|
291
291
|
return c.html(html, 400);
|
|
292
292
|
}
|
|
@@ -294,10 +294,10 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
294
294
|
const { project_id, agent_did, session_id, delegation_id } = state;
|
|
295
295
|
// Validate session ID
|
|
296
296
|
if (!session_id) {
|
|
297
|
-
console.error(
|
|
297
|
+
console.error("[OAuth] No session ID in state");
|
|
298
298
|
const html = errorTemplate({
|
|
299
|
-
error:
|
|
300
|
-
description:
|
|
299
|
+
error: "missing_session",
|
|
300
|
+
description: "No session ID provided in OAuth state",
|
|
301
301
|
});
|
|
302
302
|
return c.html(html, 400);
|
|
303
303
|
}
|
|
@@ -307,13 +307,13 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
307
307
|
const codeVerifier = stateData?.code_verifier;
|
|
308
308
|
const redirectUri = stateData?.redirect_uri;
|
|
309
309
|
const requestedScopes = stateData?.scopes || [];
|
|
310
|
-
console.log(
|
|
310
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: Processing authorization code exchange:", {
|
|
311
311
|
projectId: project_id,
|
|
312
|
-
agentDid: agent_did.substring(0, 20) +
|
|
313
|
-
sessionId: session_id?.substring(0, 20) +
|
|
312
|
+
agentDid: agent_did.substring(0, 20) + "...",
|
|
313
|
+
sessionId: session_id?.substring(0, 20) + "...",
|
|
314
314
|
delegationId: delegation_id,
|
|
315
315
|
timestamp: new Date().toISOString(),
|
|
316
|
-
eventType:
|
|
316
|
+
eventType: "oauth_code_exchange_start",
|
|
317
317
|
hasSecureState: !!oauthSecurityService,
|
|
318
318
|
isDirectPKCE,
|
|
319
319
|
provider: stateProvider,
|
|
@@ -323,27 +323,35 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
323
323
|
try {
|
|
324
324
|
// Check if this is a direct PKCE flow (exchange with provider directly)
|
|
325
325
|
if (isDirectPKCE && stateProvider && codeVerifier && redirectUri) {
|
|
326
|
-
console.log(
|
|
326
|
+
console.log("[OAuth] 🔐 Direct PKCE flow detected, exchanging with provider directly:", {
|
|
327
327
|
provider: stateProvider,
|
|
328
328
|
redirectUri,
|
|
329
329
|
projectId: project_id,
|
|
330
330
|
});
|
|
331
331
|
// Import services for direct PKCE flow
|
|
332
|
-
const { OAuthService, OAuthConfigService } = await import(
|
|
333
|
-
const { KVOAuthConfigCache } = await import(
|
|
332
|
+
const { OAuthService, OAuthConfigService } = await import("@kya-os/mcp-i-core");
|
|
333
|
+
const { KVOAuthConfigCache } = await import("../cache/kv-oauth-config-cache.js");
|
|
334
334
|
// Create fetch provider for OAuth services
|
|
335
335
|
const fetchProvider = {
|
|
336
336
|
fetch: globalThis.fetch.bind(globalThis),
|
|
337
337
|
// These methods are not needed for PKCE token exchange, stub them
|
|
338
|
-
resolveDID: async () => {
|
|
339
|
-
|
|
340
|
-
|
|
338
|
+
resolveDID: async () => {
|
|
339
|
+
throw new Error("Not implemented");
|
|
340
|
+
},
|
|
341
|
+
fetchStatusList: async () => {
|
|
342
|
+
throw new Error("Not implemented");
|
|
343
|
+
},
|
|
344
|
+
fetchDelegationChain: async () => {
|
|
345
|
+
throw new Error("Not implemented");
|
|
346
|
+
},
|
|
341
347
|
};
|
|
342
348
|
// Initialize OAuth services
|
|
343
|
-
const oauthConfigCache = new KVOAuthConfigCache({
|
|
344
|
-
|
|
349
|
+
const oauthConfigCache = new KVOAuthConfigCache({
|
|
350
|
+
kv: delegationStorage,
|
|
351
|
+
});
|
|
352
|
+
const apiKey = env.AGENTSHIELD_API_KEY || "";
|
|
345
353
|
const oauthConfigService = new OAuthConfigService({
|
|
346
|
-
baseUrl: env.AGENTSHIELD_API_URL ||
|
|
354
|
+
baseUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
|
|
347
355
|
apiKey: apiKey,
|
|
348
356
|
fetchProvider: fetchProvider,
|
|
349
357
|
cache: oauthConfigCache,
|
|
@@ -351,14 +359,14 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
351
359
|
const oauthService = new OAuthService({
|
|
352
360
|
configService: oauthConfigService,
|
|
353
361
|
fetchProvider: fetchProvider,
|
|
354
|
-
agentShieldApiUrl: env.AGENTSHIELD_API_URL ||
|
|
362
|
+
agentShieldApiUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
|
|
355
363
|
agentShieldApiKey: apiKey,
|
|
356
364
|
projectId: project_id,
|
|
357
365
|
logger: (msg, data) => console.log(`[OAuthService] ${msg}`, data),
|
|
358
366
|
});
|
|
359
367
|
// Step 1: Exchange authorization code with OAuth provider (GitHub) directly
|
|
360
368
|
const idpTokens = await oauthService.exchangeToken(stateProvider, code, codeVerifier, redirectUri);
|
|
361
|
-
console.log(
|
|
369
|
+
console.log("[OAuth] ✅ Direct PKCE token exchange successful:", {
|
|
362
370
|
provider: stateProvider,
|
|
363
371
|
hasAccessToken: !!idpTokens.access_token,
|
|
364
372
|
expiresAt: new Date(idpTokens.expires_at).toISOString(),
|
|
@@ -371,13 +379,13 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
371
379
|
try {
|
|
372
380
|
const userInfoResponse = await fetch(providerConfig.userInfoUrl, {
|
|
373
381
|
headers: {
|
|
374
|
-
|
|
375
|
-
|
|
382
|
+
Authorization: `Bearer ${idpTokens.access_token}`,
|
|
383
|
+
Accept: "application/json",
|
|
376
384
|
},
|
|
377
385
|
});
|
|
378
386
|
if (userInfoResponse.ok) {
|
|
379
387
|
userInfo = await userInfoResponse.json();
|
|
380
|
-
console.log(
|
|
388
|
+
console.log("[OAuth] ✅ User info retrieved:", {
|
|
381
389
|
provider: stateProvider,
|
|
382
390
|
hasEmail: !!userInfo?.email,
|
|
383
391
|
hasName: !!userInfo?.name,
|
|
@@ -385,7 +393,7 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
385
393
|
}
|
|
386
394
|
}
|
|
387
395
|
catch (err) {
|
|
388
|
-
console.warn(
|
|
396
|
+
console.warn("[OAuth] Failed to get user info (non-fatal):", err);
|
|
389
397
|
}
|
|
390
398
|
}
|
|
391
399
|
// Step 3: Create delegation on AgentShield
|
|
@@ -393,11 +401,11 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
393
401
|
// Build user identifier from OAuth user info
|
|
394
402
|
const userIdentifier = userInfo?.email || userInfo?.login || userInfo?.sub || userInfo?.id;
|
|
395
403
|
const delegationResponse = await fetch(delegationEndpoint, {
|
|
396
|
-
method:
|
|
404
|
+
method: "POST",
|
|
397
405
|
headers: {
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
406
|
+
"Content-Type": "application/json",
|
|
407
|
+
Authorization: `Bearer ${env.AGENTSHIELD_API_KEY}`,
|
|
408
|
+
"X-Project-Id": project_id,
|
|
401
409
|
},
|
|
402
410
|
body: JSON.stringify({
|
|
403
411
|
agent_did: agent_did,
|
|
@@ -408,34 +416,39 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
408
416
|
// Include OAuth metadata for audit trail
|
|
409
417
|
metadata: {
|
|
410
418
|
oauth_provider: stateProvider,
|
|
411
|
-
oauth_flow:
|
|
419
|
+
oauth_flow: "direct_pkce",
|
|
412
420
|
oauth_user_id: userInfo?.sub || userInfo?.id || userInfo?.login,
|
|
413
421
|
},
|
|
414
422
|
}),
|
|
415
423
|
});
|
|
416
424
|
if (!delegationResponse.ok) {
|
|
417
425
|
const errorText = await delegationResponse.text();
|
|
418
|
-
console.error(
|
|
426
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Delegation creation failed:", {
|
|
419
427
|
status: delegationResponse.status,
|
|
420
428
|
error: errorText.substring(0, 200),
|
|
421
429
|
projectId: project_id,
|
|
422
|
-
agentDid: agent_did.substring(0, 20) +
|
|
430
|
+
agentDid: agent_did.substring(0, 20) + "...",
|
|
423
431
|
timestamp: new Date().toISOString(),
|
|
424
|
-
eventType:
|
|
432
|
+
eventType: "delegation_creation_failed",
|
|
425
433
|
});
|
|
426
434
|
const html = errorTemplate({
|
|
427
|
-
error:
|
|
428
|
-
description:
|
|
435
|
+
error: "delegation_failed",
|
|
436
|
+
description: "Failed to create delegation after OAuth authorization",
|
|
429
437
|
});
|
|
430
438
|
return c.html(html, delegationResponse.status);
|
|
431
439
|
}
|
|
432
440
|
const delegationData = await delegationResponse.json();
|
|
433
441
|
// Map delegation response to TokenExchangeResponse format
|
|
434
442
|
tokenData = {
|
|
435
|
-
delegation_token: delegationData.data?.delegation_token ||
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
443
|
+
delegation_token: delegationData.data?.delegation_token ||
|
|
444
|
+
delegationData.delegation_token,
|
|
445
|
+
token_type: "Bearer",
|
|
446
|
+
expires_in: delegationData.data?.expires_in ||
|
|
447
|
+
delegationData.expires_in ||
|
|
448
|
+
3600,
|
|
449
|
+
delegation_id: delegationData.data?.delegation_id ||
|
|
450
|
+
delegationData.delegation_id ||
|
|
451
|
+
`del_${Date.now()}`,
|
|
439
452
|
scopes: requestedScopes,
|
|
440
453
|
session_id: session_id,
|
|
441
454
|
};
|
|
@@ -443,7 +456,7 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
443
456
|
tokenData.provider = stateProvider;
|
|
444
457
|
tokenData.idp_tokens = idpTokens;
|
|
445
458
|
tokenData.user_info = userInfo;
|
|
446
|
-
console.log(
|
|
459
|
+
console.log("[OAuth] ✅ Direct PKCE flow complete:", {
|
|
447
460
|
delegationId: tokenData.delegation_id,
|
|
448
461
|
provider: stateProvider,
|
|
449
462
|
hasIdpTokens: true,
|
|
@@ -453,34 +466,34 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
453
466
|
else {
|
|
454
467
|
// Bouncer flow: Exchange via AgentShield's OAuth token endpoint
|
|
455
468
|
// This is the legacy flow for proxy mode or when PKCE is not available
|
|
456
|
-
console.log(
|
|
469
|
+
console.log("[OAuth] 📡 Using bouncer flow for token exchange");
|
|
457
470
|
const tokenEndpoint = `${agentShieldApiUrl}/api/v1/bouncer/oauth/token`;
|
|
458
471
|
const tokenResponse = await fetch(tokenEndpoint, {
|
|
459
|
-
method:
|
|
472
|
+
method: "POST",
|
|
460
473
|
headers: {
|
|
461
|
-
|
|
462
|
-
|
|
474
|
+
"Content-Type": "application/json",
|
|
475
|
+
Accept: "application/json",
|
|
463
476
|
},
|
|
464
477
|
body: JSON.stringify({
|
|
465
|
-
grant_type:
|
|
478
|
+
grant_type: "authorization_code",
|
|
466
479
|
code: code,
|
|
467
480
|
agent_did: agent_did,
|
|
468
|
-
project_id: project_id
|
|
469
|
-
})
|
|
481
|
+
project_id: project_id,
|
|
482
|
+
}),
|
|
470
483
|
});
|
|
471
484
|
if (!tokenResponse.ok) {
|
|
472
485
|
const errorText = await tokenResponse.text();
|
|
473
|
-
console.error(
|
|
486
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Token exchange failed:", {
|
|
474
487
|
status: tokenResponse.status,
|
|
475
488
|
error: errorText.substring(0, 200),
|
|
476
489
|
projectId: project_id,
|
|
477
|
-
agentDid: agent_did.substring(0, 20) +
|
|
490
|
+
agentDid: agent_did.substring(0, 20) + "...",
|
|
478
491
|
timestamp: new Date().toISOString(),
|
|
479
|
-
eventType:
|
|
492
|
+
eventType: "oauth_token_exchange_failed",
|
|
480
493
|
});
|
|
481
494
|
const html = errorTemplate({
|
|
482
|
-
error:
|
|
483
|
-
description:
|
|
495
|
+
error: "token_exchange_failed",
|
|
496
|
+
description: "Failed to exchange authorization code for delegation token",
|
|
484
497
|
});
|
|
485
498
|
return c.html(html, tokenResponse.status);
|
|
486
499
|
}
|
|
@@ -488,26 +501,26 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
488
501
|
}
|
|
489
502
|
// Validate token response
|
|
490
503
|
if (!tokenData.delegation_token) {
|
|
491
|
-
console.error(
|
|
504
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Invalid token response:", {
|
|
492
505
|
hasDelegationToken: !!tokenData.delegation_token,
|
|
493
506
|
responseKeys: Object.keys(tokenData),
|
|
494
507
|
projectId: project_id,
|
|
495
508
|
timestamp: new Date().toISOString(),
|
|
496
|
-
eventType:
|
|
509
|
+
eventType: "oauth_invalid_token_response",
|
|
497
510
|
});
|
|
498
511
|
const html = errorTemplate({
|
|
499
|
-
error:
|
|
500
|
-
description:
|
|
512
|
+
error: "invalid_response",
|
|
513
|
+
description: "Invalid token response from authorization server",
|
|
501
514
|
});
|
|
502
515
|
return c.html(html, 500);
|
|
503
516
|
}
|
|
504
|
-
console.log(
|
|
517
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: Token exchange successful:", {
|
|
505
518
|
delegationId: tokenData.delegation_id,
|
|
506
519
|
sessionId: tokenData.session_id || session_id,
|
|
507
520
|
expiresIn: tokenData.expires_in,
|
|
508
521
|
scopes: tokenData.scopes,
|
|
509
522
|
timestamp: new Date().toISOString(),
|
|
510
|
-
eventType:
|
|
523
|
+
eventType: "oauth_token_exchange_success",
|
|
511
524
|
});
|
|
512
525
|
// Phase 4 PR #3: Extract OAuth user info and link to User DID
|
|
513
526
|
let oauthIdentity = null;
|
|
@@ -523,13 +536,15 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
523
536
|
// 2. State parameter (if stored during OAuth initiation)
|
|
524
537
|
// 3. Environment variable (if configured)
|
|
525
538
|
// 4. Default fallback ('google')
|
|
526
|
-
const provider = tokenData.provider
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
539
|
+
const provider = tokenData.provider ||
|
|
540
|
+
state.provider ||
|
|
541
|
+
env.DEFAULT_OAUTH_PROVIDER ||
|
|
542
|
+
"google";
|
|
530
543
|
oauthIdentity = {
|
|
531
544
|
provider: provider,
|
|
532
|
-
subject: userInfoFromToken.sub ||
|
|
545
|
+
subject: userInfoFromToken.sub ||
|
|
546
|
+
userInfoFromToken.id ||
|
|
547
|
+
userInfoFromToken.email,
|
|
533
548
|
email: userInfoFromToken.email,
|
|
534
549
|
name: userInfoFromToken.name || userInfoFromToken.display_name,
|
|
535
550
|
};
|
|
@@ -539,8 +554,8 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
539
554
|
// This requires an access_token from the token exchange
|
|
540
555
|
// For now, we'll log a warning and skip OAuth linking
|
|
541
556
|
// TODO: Implement userinfo endpoint call if access_token is available
|
|
542
|
-
console.warn(
|
|
543
|
-
console.warn(
|
|
557
|
+
console.warn("[OAuth] User info not available in token response. OAuth linking skipped.");
|
|
558
|
+
console.warn("[OAuth] To enable OAuth linking, ensure AgentShield returns user info or access_token in token response.");
|
|
544
559
|
}
|
|
545
560
|
// Link OAuth identity to User DID if we have it
|
|
546
561
|
if (oauthIdentity && oauthIdentity.subject) {
|
|
@@ -548,25 +563,25 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
548
563
|
// Set OAuth identity cookie for consent page
|
|
549
564
|
const cookieValue = encodeURIComponent(JSON.stringify(oauthIdentity));
|
|
550
565
|
c.header("Set-Cookie", `oauth_identity=${cookieValue}; HttpOnly; Secure; SameSite=Lax; Max-Age=604800; Path=/`);
|
|
551
|
-
console.log(
|
|
566
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: OAuth identity linked and cookie set:", {
|
|
552
567
|
provider: oauthIdentity.provider,
|
|
553
|
-
subject: oauthIdentity.subject.substring(0, 20) +
|
|
554
|
-
userDid: userDid.substring(0, 20) +
|
|
555
|
-
sessionId: session_id?.substring(0, 20) +
|
|
568
|
+
subject: oauthIdentity.subject.substring(0, 20) + "...",
|
|
569
|
+
userDid: userDid.substring(0, 20) + "...",
|
|
570
|
+
sessionId: session_id?.substring(0, 20) + "...",
|
|
556
571
|
timestamp: new Date().toISOString(),
|
|
557
|
-
eventType:
|
|
558
|
-
cookieSet: true
|
|
572
|
+
eventType: "oauth_identity_linked",
|
|
573
|
+
cookieSet: true,
|
|
559
574
|
});
|
|
560
575
|
}
|
|
561
576
|
}
|
|
562
577
|
catch (error) {
|
|
563
578
|
// OAuth linking errors are non-fatal - log but continue
|
|
564
|
-
console.error(
|
|
579
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Failed to link OAuth identity (non-fatal):", {
|
|
565
580
|
error: error instanceof Error ? error.message : String(error),
|
|
566
|
-
sessionId: session_id?.substring(0, 20) +
|
|
581
|
+
sessionId: session_id?.substring(0, 20) + "...",
|
|
567
582
|
timestamp: new Date().toISOString(),
|
|
568
|
-
eventType:
|
|
569
|
-
severity:
|
|
583
|
+
eventType: "oauth_identity_linking_failed",
|
|
584
|
+
severity: "warning",
|
|
570
585
|
});
|
|
571
586
|
}
|
|
572
587
|
}
|
|
@@ -574,7 +589,9 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
574
589
|
// After receiving delegation token, retrieve OAuth tokens separately
|
|
575
590
|
// Note: userDid may not be available if OAuth linking failed, but we still need to store tokens
|
|
576
591
|
// For PKCE flows, we can use session-based userDid lookup if needed
|
|
577
|
-
if (delegationStorage &&
|
|
592
|
+
if (delegationStorage &&
|
|
593
|
+
oauthSecurityService &&
|
|
594
|
+
tokenData.delegation_id) {
|
|
578
595
|
try {
|
|
579
596
|
// Extract provider from state or token response
|
|
580
597
|
const provider = tokenData.provider ||
|
|
@@ -594,7 +611,8 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
594
611
|
let effectiveUserDid = userDid;
|
|
595
612
|
if (!effectiveUserDid && session_id && consentService) {
|
|
596
613
|
try {
|
|
597
|
-
effectiveUserDid =
|
|
614
|
+
effectiveUserDid =
|
|
615
|
+
await consentService.getUserDidForSession(session_id);
|
|
598
616
|
}
|
|
599
617
|
catch (error) {
|
|
600
618
|
console.warn("[OAuth] Failed to get userDid from session, skipping token storage:", {
|
|
@@ -709,47 +727,49 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
709
727
|
if (delegationStorage) {
|
|
710
728
|
// Use != null to properly handle expires_in: 0 (immediate expiration)
|
|
711
729
|
// Truthiness check would incorrectly treat 0 as missing
|
|
712
|
-
const ttl = tokenData.expires_in != null
|
|
730
|
+
const ttl = tokenData.expires_in != null
|
|
731
|
+
? tokenData.expires_in
|
|
732
|
+
: 7 * 24 * 60 * 60; // Default 7 days
|
|
713
733
|
try {
|
|
714
734
|
// Get userDID from session if available (Phase 4)
|
|
715
735
|
// Use linked userDid if available, otherwise check session
|
|
716
736
|
let sessionUserDid = userDid;
|
|
717
737
|
const sessionKey = STORAGE_KEYS.session(session_id);
|
|
718
738
|
if (!sessionUserDid) {
|
|
719
|
-
const sessionData = await delegationStorage.get(sessionKey, "json");
|
|
739
|
+
const sessionData = (await delegationStorage.get(sessionKey, "json"));
|
|
720
740
|
sessionUserDid = sessionData?.userDid;
|
|
721
741
|
}
|
|
722
742
|
// Primary: User+Agent scoped (no conflicts) - Phase 4
|
|
723
743
|
if (sessionUserDid) {
|
|
724
744
|
const userAgentKey = STORAGE_KEYS.delegation(sessionUserDid, agent_did);
|
|
725
745
|
await delegationStorage.put(userAgentKey, tokenData.delegation_token, {
|
|
726
|
-
expirationTtl: ttl
|
|
746
|
+
expirationTtl: ttl,
|
|
727
747
|
});
|
|
728
|
-
console.log(
|
|
729
|
-
key: userAgentKey.substring(0, 50) +
|
|
748
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: Delegation token stored with user+agent DID:", {
|
|
749
|
+
key: userAgentKey.substring(0, 50) + "...",
|
|
730
750
|
ttl,
|
|
731
|
-
agentDid: agent_did.substring(0, 20) +
|
|
732
|
-
userDid: sessionUserDid.substring(0, 20) +
|
|
751
|
+
agentDid: agent_did.substring(0, 20) + "...",
|
|
752
|
+
userDid: sessionUserDid.substring(0, 20) + "...",
|
|
733
753
|
delegationId: tokenData.delegation_id,
|
|
734
754
|
timestamp: new Date().toISOString(),
|
|
735
|
-
eventType:
|
|
736
|
-
storageType:
|
|
755
|
+
eventType: "delegation_token_stored",
|
|
756
|
+
storageType: "user_agent_scoped",
|
|
737
757
|
});
|
|
738
758
|
}
|
|
739
759
|
// Backward compatibility: Agent-only key (24 hour TTL)
|
|
740
760
|
const legacyKey = STORAGE_KEYS.legacyDelegation(agent_did);
|
|
741
761
|
await delegationStorage.put(legacyKey, tokenData.delegation_token, {
|
|
742
|
-
expirationTtl: 24 * 60 * 60 // 24 hours only
|
|
762
|
+
expirationTtl: 24 * 60 * 60, // 24 hours only
|
|
743
763
|
});
|
|
744
|
-
console.log(
|
|
745
|
-
key: legacyKey.substring(0, 50) +
|
|
764
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: Delegation token stored with legacy agent key:", {
|
|
765
|
+
key: legacyKey.substring(0, 50) + "...",
|
|
746
766
|
ttl: 24 * 60 * 60,
|
|
747
|
-
agentDid: agent_did.substring(0, 20) +
|
|
767
|
+
agentDid: agent_did.substring(0, 20) + "...",
|
|
748
768
|
delegationId: tokenData.delegation_id,
|
|
749
769
|
timestamp: new Date().toISOString(),
|
|
750
|
-
eventType:
|
|
751
|
-
storageType:
|
|
752
|
-
warning:
|
|
770
|
+
eventType: "delegation_token_stored",
|
|
771
|
+
storageType: "legacy_agent_scoped",
|
|
772
|
+
warning: "Legacy format - migrate to user+agent scoped tokens",
|
|
753
773
|
});
|
|
754
774
|
// Session cache for fast lookup (shorter TTL for performance)
|
|
755
775
|
await delegationStorage.put(sessionKey, JSON.stringify({
|
|
@@ -758,16 +778,16 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
758
778
|
delegationToken: tokenData.delegation_token,
|
|
759
779
|
cachedAt: Date.now(),
|
|
760
780
|
}), {
|
|
761
|
-
expirationTtl: Math.min(ttl, 1800) // 30 minutes or token TTL, whichever is shorter
|
|
781
|
+
expirationTtl: Math.min(ttl, 1800), // 30 minutes or token TTL, whichever is shorter
|
|
762
782
|
});
|
|
763
|
-
console.log(
|
|
764
|
-
key: sessionKey.substring(0, 50) +
|
|
783
|
+
console.log("[OAuth] 🔒 SECURITY EVENT: Delegation token cached for session:", {
|
|
784
|
+
key: sessionKey.substring(0, 50) + "...",
|
|
765
785
|
ttl: Math.min(ttl, 1800),
|
|
766
|
-
sessionId: session_id?.substring(0, 20) +
|
|
767
|
-
userDid: sessionUserDid?.substring(0, 20) +
|
|
786
|
+
sessionId: session_id?.substring(0, 20) + "...",
|
|
787
|
+
userDid: sessionUserDid?.substring(0, 20) + "...",
|
|
768
788
|
timestamp: new Date().toISOString(),
|
|
769
|
-
eventType:
|
|
770
|
-
storageType:
|
|
789
|
+
eventType: "delegation_token_cached",
|
|
790
|
+
storageType: "session_cache",
|
|
771
791
|
});
|
|
772
792
|
// Fire-and-forget notification to AgentShield for audit trail
|
|
773
793
|
// This enables dashboard visibility into delegations created via direct OAuth flow
|
|
@@ -777,13 +797,13 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
777
797
|
// Use != null to properly handle expires_in: 0 (immediate expiration)
|
|
778
798
|
// Truthiness check would incorrectly treat 0 as missing
|
|
779
799
|
const expiresAt = tokenData.expires_in != null
|
|
780
|
-
? new Date(Date.now() +
|
|
800
|
+
? new Date(Date.now() + tokenData.expires_in * 1000).toISOString()
|
|
781
801
|
: null;
|
|
782
802
|
fetch(delegationNotifyUrl, {
|
|
783
|
-
method:
|
|
803
|
+
method: "POST",
|
|
784
804
|
headers: {
|
|
785
|
-
|
|
786
|
-
|
|
805
|
+
"Content-Type": "application/json",
|
|
806
|
+
"X-AgentShield-Key": env.AGENTSHIELD_API_KEY || "",
|
|
787
807
|
},
|
|
788
808
|
// AgentShield notifyDelegationSchema uses snake_case
|
|
789
809
|
body: JSON.stringify({
|
|
@@ -803,28 +823,30 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
803
823
|
expires_at: expiresAt || undefined,
|
|
804
824
|
// Metadata for audit trail and debugging
|
|
805
825
|
metadata: {
|
|
806
|
-
source:
|
|
807
|
-
oauth_flow:
|
|
826
|
+
source: "mcp-i-direct-oauth",
|
|
827
|
+
oauth_flow: "pkce",
|
|
808
828
|
mcp_server_name: agentName || undefined,
|
|
809
829
|
session_id: session_id || undefined,
|
|
810
830
|
},
|
|
811
831
|
}),
|
|
812
|
-
})
|
|
832
|
+
})
|
|
833
|
+
.then((response) => {
|
|
813
834
|
if (response.ok) {
|
|
814
|
-
console.log(
|
|
835
|
+
console.log("[OAuth] Delegation notification sent to AgentShield:", {
|
|
815
836
|
delegation_id: tokenData.delegation_id,
|
|
816
837
|
project_id: project_id,
|
|
817
838
|
agent_name: agentName,
|
|
818
839
|
});
|
|
819
840
|
}
|
|
820
841
|
else {
|
|
821
|
-
console.warn(
|
|
842
|
+
console.warn("[OAuth] Delegation notification failed (non-blocking):", {
|
|
822
843
|
status: response.status,
|
|
823
844
|
delegation_id: tokenData.delegation_id,
|
|
824
845
|
});
|
|
825
846
|
}
|
|
826
|
-
})
|
|
827
|
-
|
|
847
|
+
})
|
|
848
|
+
.catch((err) => {
|
|
849
|
+
console.warn("[OAuth] Delegation notification failed (non-blocking):", {
|
|
828
850
|
error: err instanceof Error ? err.message : String(err),
|
|
829
851
|
delegation_id: tokenData.delegation_id,
|
|
830
852
|
});
|
|
@@ -832,12 +854,14 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
832
854
|
}
|
|
833
855
|
catch (storageError) {
|
|
834
856
|
// Storage errors are non-fatal - log but continue
|
|
835
|
-
console.error(
|
|
836
|
-
error: storageError instanceof Error
|
|
837
|
-
|
|
857
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Storage error (non-fatal):", {
|
|
858
|
+
error: storageError instanceof Error
|
|
859
|
+
? storageError.message
|
|
860
|
+
: String(storageError),
|
|
861
|
+
sessionId: session_id?.substring(0, 20) + "...",
|
|
838
862
|
timestamp: new Date().toISOString(),
|
|
839
|
-
eventType:
|
|
840
|
-
severity:
|
|
863
|
+
eventType: "delegation_storage_error",
|
|
864
|
+
severity: "warning",
|
|
841
865
|
});
|
|
842
866
|
}
|
|
843
867
|
}
|
|
@@ -846,21 +870,23 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
846
870
|
delegationId: tokenData.delegation_id || delegation_id,
|
|
847
871
|
sessionId: session_id,
|
|
848
872
|
scopes: tokenData.scopes || [],
|
|
849
|
-
expiresIn: autoClose ? autoCloseDelay : 0
|
|
873
|
+
expiresIn: autoClose ? autoCloseDelay : 0,
|
|
850
874
|
});
|
|
851
875
|
return c.html(html);
|
|
852
876
|
}
|
|
853
877
|
catch (error) {
|
|
854
|
-
console.error(
|
|
878
|
+
console.error("[OAuth] 🔒 SECURITY EVENT: Unexpected error:", {
|
|
855
879
|
error: error instanceof Error ? error.message : String(error),
|
|
856
880
|
stack: error instanceof Error ? error.stack : undefined,
|
|
857
881
|
timestamp: new Date().toISOString(),
|
|
858
|
-
eventType:
|
|
859
|
-
severity:
|
|
882
|
+
eventType: "oauth_unexpected_error",
|
|
883
|
+
severity: "error",
|
|
860
884
|
});
|
|
861
885
|
const html = errorTemplate({
|
|
862
|
-
error:
|
|
863
|
-
description: error instanceof Error
|
|
886
|
+
error: "internal_error",
|
|
887
|
+
description: error instanceof Error
|
|
888
|
+
? error.message
|
|
889
|
+
: "An unexpected error occurred",
|
|
864
890
|
});
|
|
865
891
|
return c.html(html, 500);
|
|
866
892
|
}
|
|
@@ -879,17 +905,17 @@ export function createOAuthCallbackHandler(config = {}) {
|
|
|
879
905
|
*/
|
|
880
906
|
export function extractDelegationToken(c) {
|
|
881
907
|
// Check Authorization header
|
|
882
|
-
const authHeader = c.req.header(
|
|
883
|
-
if (authHeader?.startsWith(
|
|
908
|
+
const authHeader = c.req.header("Authorization");
|
|
909
|
+
if (authHeader?.startsWith("Bearer ")) {
|
|
884
910
|
return authHeader.substring(7);
|
|
885
911
|
}
|
|
886
912
|
// Check custom header
|
|
887
|
-
const customHeader = c.req.header(
|
|
913
|
+
const customHeader = c.req.header("x-delegation-token");
|
|
888
914
|
if (customHeader) {
|
|
889
915
|
return customHeader;
|
|
890
916
|
}
|
|
891
917
|
// Check query parameter
|
|
892
|
-
const queryParam = c.req.query(
|
|
918
|
+
const queryParam = c.req.query("delegation_token");
|
|
893
919
|
if (queryParam) {
|
|
894
920
|
return queryParam;
|
|
895
921
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../src/runtime/oauth-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../src/runtime/oauth-handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kya-os/mcp-i-cloudflare",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.13",
|
|
4
4
|
"description": "Cloudflare Workers adapter for MCP-I framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@kya-os/contracts": "^1.6.1",
|
|
21
|
-
"@kya-os/mcp-i-core": "^1.3.
|
|
21
|
+
"@kya-os/mcp-i-core": "^1.3.5",
|
|
22
22
|
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
23
23
|
"agents": "^0.2.21",
|
|
24
24
|
"base-x": "^5.0.0",
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* E2E Test Configuration
|
|
3
|
-
*
|
|
4
|
-
* This file contains configuration for end-to-end tests that use real AgentShield API.
|
|
5
|
-
* Set these environment variables before running E2E tests:
|
|
6
|
-
*
|
|
7
|
-
* ```bash
|
|
8
|
-
* export E2E_AGENTSHIELD_API_KEY="sk_test_..."
|
|
9
|
-
* export E2E_AGENTSHIELD_PROJECT_ID="test-project-id"
|
|
10
|
-
* export E2E_AGENTSHIELD_API_URL="https://kya.vouched.id" # Optional, defaults to production
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* Or create a `.env.e2e` file in the package root:
|
|
14
|
-
* ```
|
|
15
|
-
* E2E_AGENTSHIELD_API_KEY=sk_test_...
|
|
16
|
-
* E2E_AGENTSHIELD_PROJECT_ID=test-project-id
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export interface E2ETestConfig {
|
|
20
|
-
apiKey: string;
|
|
21
|
-
projectId: string;
|
|
22
|
-
apiUrl: string;
|
|
23
|
-
enabled: boolean;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Load E2E test configuration from environment variables
|
|
27
|
-
*/
|
|
28
|
-
export declare function loadE2EConfig(): E2ETestConfig | null;
|
|
29
|
-
/**
|
|
30
|
-
* Check if E2E tests should run
|
|
31
|
-
*/
|
|
32
|
-
export declare function shouldRunE2ETests(): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Get E2E test configuration or throw if not configured
|
|
35
|
-
*/
|
|
36
|
-
export declare function getE2EConfig(): E2ETestConfig;
|
|
37
|
-
//# sourceMappingURL=test-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-config.d.ts","sourceRoot":"","sources":["../../../src/__tests__/e2e/test-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,aAAa,GAAG,IAAI,CAyBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAU5C"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* E2E Test Configuration
|
|
3
|
-
*
|
|
4
|
-
* This file contains configuration for end-to-end tests that use real AgentShield API.
|
|
5
|
-
* Set these environment variables before running E2E tests:
|
|
6
|
-
*
|
|
7
|
-
* ```bash
|
|
8
|
-
* export E2E_AGENTSHIELD_API_KEY="sk_test_..."
|
|
9
|
-
* export E2E_AGENTSHIELD_PROJECT_ID="test-project-id"
|
|
10
|
-
* export E2E_AGENTSHIELD_API_URL="https://kya.vouched.id" # Optional, defaults to production
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* Or create a `.env.e2e` file in the package root:
|
|
14
|
-
* ```
|
|
15
|
-
* E2E_AGENTSHIELD_API_KEY=sk_test_...
|
|
16
|
-
* E2E_AGENTSHIELD_PROJECT_ID=test-project-id
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Load E2E test configuration from environment variables
|
|
21
|
-
*/
|
|
22
|
-
export function loadE2EConfig() {
|
|
23
|
-
// Access environment variables - works in Node.js (vitest) environment
|
|
24
|
-
const apiKey = typeof process !== "undefined" && process.env
|
|
25
|
-
? process.env.E2E_AGENTSHIELD_API_KEY
|
|
26
|
-
: undefined;
|
|
27
|
-
const projectId = typeof process !== "undefined" && process.env
|
|
28
|
-
? process.env.E2E_AGENTSHIELD_PROJECT_ID
|
|
29
|
-
: undefined;
|
|
30
|
-
const apiUrl = typeof process !== "undefined" && process.env
|
|
31
|
-
? process.env.E2E_AGENTSHIELD_API_URL || "https://kya.vouched.id"
|
|
32
|
-
: "https://kya.vouched.id";
|
|
33
|
-
if (!apiKey || !projectId) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
apiKey,
|
|
38
|
-
projectId,
|
|
39
|
-
apiUrl,
|
|
40
|
-
enabled: true,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Check if E2E tests should run
|
|
45
|
-
*/
|
|
46
|
-
export function shouldRunE2ETests() {
|
|
47
|
-
const config = loadE2EConfig();
|
|
48
|
-
return config !== null && config.enabled;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Get E2E test configuration or throw if not configured
|
|
52
|
-
*/
|
|
53
|
-
export function getE2EConfig() {
|
|
54
|
-
const config = loadE2EConfig();
|
|
55
|
-
if (!config) {
|
|
56
|
-
throw new Error("E2E tests require E2E_AGENTSHIELD_API_KEY and E2E_AGENTSHIELD_PROJECT_ID environment variables.\n" +
|
|
57
|
-
"Set them in your environment or create a .env.e2e file.\n" +
|
|
58
|
-
"See packages/mcp-i-cloudflare/src/__tests__/e2e/test-config.ts for details.");
|
|
59
|
-
}
|
|
60
|
-
return config;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=test-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-config.js","sourceRoot":"","sources":["../../../src/__tests__/e2e/test-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAkBH;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,uEAAuE;IACvE,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG;QAC3C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,SAAS,GACb,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG;QAC3C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACxC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG;QAC3C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,wBAAwB;QACjE,CAAC,CAAC,wBAAwB,CAAC;IAE/B,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,mGAAmG;YACjG,2DAA2D;YAC3D,6EAA6E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|