@agent-deck/backend 1.1.7 → 1.2.1
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/.tsbuildinfo +1 -1
- package/dist/lib/paths.d.ts +8 -0
- package/dist/lib/paths.d.ts.map +1 -1
- package/dist/lib/paths.js +28 -4
- package/dist/lib/paths.js.map +1 -1
- package/dist/models/database.d.ts +5 -1
- package/dist/models/database.d.ts.map +1 -1
- package/dist/models/database.js +32 -19
- package/dist/models/database.js.map +1 -1
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/oauth.js +8 -5
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/services.d.ts.map +1 -1
- package/dist/routes/services.js +33 -12
- package/dist/routes/services.js.map +1 -1
- package/dist/server/index.d.ts +3 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +9 -4
- package/dist/server/index.js.map +1 -1
- package/dist/services/icon-resolver.d.ts +1 -0
- package/dist/services/icon-resolver.d.ts.map +1 -1
- package/dist/services/icon-resolver.js +10 -0
- package/dist/services/icon-resolver.js.map +1 -1
- package/dist/services/mcp-client-manager.d.ts +3 -1
- package/dist/services/mcp-client-manager.d.ts.map +1 -1
- package/dist/services/mcp-client-manager.js +18 -5
- package/dist/services/mcp-client-manager.js.map +1 -1
- package/dist/services/oauth-connect-service.d.ts +16 -2
- package/dist/services/oauth-connect-service.d.ts.map +1 -1
- package/dist/services/oauth-connect-service.js +48 -10
- package/dist/services/oauth-connect-service.js.map +1 -1
- package/dist/services/oauth-manager.d.ts +7 -1
- package/dist/services/oauth-manager.d.ts.map +1 -1
- package/dist/services/oauth-manager.js +42 -13
- package/dist/services/oauth-manager.js.map +1 -1
- package/dist/services/service-manager.d.ts +3 -1
- package/dist/services/service-manager.d.ts.map +1 -1
- package/dist/services/service-manager.js +34 -7
- package/dist/services/service-manager.js.map +1 -1
- package/dist/vault/index.d.ts +2 -0
- package/dist/vault/index.d.ts.map +1 -1
- package/dist/vault/index.js +2 -0
- package/dist/vault/index.js.map +1 -1
- package/dist/vault/oauth-client-secret-vault.d.ts +14 -0
- package/dist/vault/oauth-client-secret-vault.d.ts.map +1 -0
- package/dist/vault/oauth-client-secret-vault.js +46 -0
- package/dist/vault/oauth-client-secret-vault.js.map +1 -0
- package/dist/vault/oauth-token-vault.d.ts +20 -0
- package/dist/vault/oauth-token-vault.d.ts.map +1 -0
- package/dist/vault/oauth-token-vault.js +93 -0
- package/dist/vault/oauth-token-vault.js.map +1 -0
- package/dist/vault/yaml-sync.d.ts.map +1 -1
- package/dist/vault/yaml-sync.js +2 -2
- package/dist/vault/yaml-sync.js.map +1 -1
- package/package.json +4 -4
- package/static-ui/assets/index-BuvzLRH9.js +372 -0
- package/static-ui/assets/index-DR7EPqDZ.css +1 -0
- package/static-ui/index.html +2 -2
- package/static-ui/assets/index-Df5pC3f-.css +0 -1
- package/static-ui/assets/index-Z9Ok_u4n.js +0 -362
|
@@ -7,11 +7,20 @@ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/client/streamable
|
|
|
7
7
|
const local_mcp_server_manager_1 = require("./local-mcp-server-manager");
|
|
8
8
|
const mcp_connection_error_1 = require("../lib/mcp-connection-error");
|
|
9
9
|
class MCPClientManager {
|
|
10
|
+
resolveAccessToken;
|
|
10
11
|
clients = new Map();
|
|
11
12
|
localServerManager;
|
|
12
|
-
constructor() {
|
|
13
|
+
constructor(resolveAccessToken) {
|
|
14
|
+
this.resolveAccessToken = resolveAccessToken;
|
|
13
15
|
this.localServerManager = new local_mcp_server_manager_1.LocalMCPServerManager();
|
|
14
16
|
}
|
|
17
|
+
invalidateClient(serviceId) {
|
|
18
|
+
const client = this.clients.get(serviceId);
|
|
19
|
+
if (client) {
|
|
20
|
+
void client.close().catch(() => undefined);
|
|
21
|
+
this.clients.delete(serviceId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
15
24
|
async getClient(service) {
|
|
16
25
|
const clientKey = service.id;
|
|
17
26
|
// Check if this is a local MCP server
|
|
@@ -40,15 +49,19 @@ class MCPClientManager {
|
|
|
40
49
|
'Content-Type': 'application/json'
|
|
41
50
|
};
|
|
42
51
|
// Add OAuth token if available
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
const accessToken = this.resolveAccessToken
|
|
53
|
+
? await this.resolveAccessToken(service.id)
|
|
54
|
+
: service.oauthAccessToken;
|
|
55
|
+
if (accessToken) {
|
|
56
|
+
headers['Authorization'] = `Bearer ${accessToken}`;
|
|
45
57
|
}
|
|
46
|
-
// Add custom headers from service configuration
|
|
58
|
+
// Add custom headers from service configuration (skip legacy duplicated Bearer)
|
|
47
59
|
if (service.headers) {
|
|
48
60
|
try {
|
|
49
61
|
const customHeaders = typeof service.headers === 'string'
|
|
50
62
|
? JSON.parse(service.headers)
|
|
51
|
-
: service.headers;
|
|
63
|
+
: { ...service.headers };
|
|
64
|
+
delete customHeaders.Authorization;
|
|
52
65
|
Object.assign(headers, customHeaders);
|
|
53
66
|
console.log(`🔧 Using custom headers for service ${service.id}:`, customHeaders);
|
|
54
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../src/services/mcp-client-manager.ts"],"names":[],"mappings":";;;AACA,wEAAmE;AACnE,oEAA6E;AAC7E,0FAAmG;AACnG,yEAAmE;AACnE,sEAA+F;AAe/F,MAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../src/services/mcp-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,21 @@ import { MCPDiscoveryService } from './mcp-discovery-service';
|
|
|
2
2
|
import { OAuthManager } from './oauth-manager';
|
|
3
3
|
import { DatabaseManager } from '../models/database';
|
|
4
4
|
import { type OAuthProviderGuide } from '../data/oauth-provider-guides';
|
|
5
|
+
import { OAuthClientSecretVault } from '../vault/oauth-client-secret-vault';
|
|
5
6
|
export type OAuthConnectInput = {
|
|
6
7
|
clientId?: string;
|
|
7
8
|
clientSecret?: string;
|
|
8
9
|
};
|
|
10
|
+
export type StoredOAuthCredentials = {
|
|
11
|
+
oauthClientId?: string | null;
|
|
12
|
+
oauthClientSecret?: string | null;
|
|
13
|
+
};
|
|
14
|
+
export declare function resolveOAuthClientCredentials(input: OAuthConnectInput, stored: StoredOAuthCredentials): {
|
|
15
|
+
clientId?: string;
|
|
16
|
+
clientSecret?: string;
|
|
17
|
+
missingRequiredSecret: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function hasSavedOAuthCredentials(stored: StoredOAuthCredentials): boolean;
|
|
9
20
|
export type OAuthConnectResult = {
|
|
10
21
|
success: true;
|
|
11
22
|
authorizationUrl: string;
|
|
@@ -18,9 +29,12 @@ export type OAuthConnectResult = {
|
|
|
18
29
|
guide: OAuthProviderGuide;
|
|
19
30
|
error: string;
|
|
20
31
|
};
|
|
21
|
-
export declare function getOAuthSetupInfo(db: DatabaseManager, serviceId: string): Promise<{
|
|
32
|
+
export declare function getOAuthSetupInfo(db: DatabaseManager, serviceId: string, clientSecrets: OAuthClientSecretVault): Promise<{
|
|
22
33
|
guide: OAuthProviderGuide;
|
|
23
34
|
discovery: Awaited<ReturnType<MCPDiscoveryService['discoverService']>>;
|
|
35
|
+
savedOAuthClientId?: string;
|
|
36
|
+
hasStoredClientSecret: boolean;
|
|
37
|
+
hasSavedCredentials: boolean;
|
|
24
38
|
}>;
|
|
25
|
-
export declare function startOAuthConnect(db: DatabaseManager, oauthManager: OAuthManager, serviceId: string, input?: OAuthConnectInput): Promise<OAuthConnectResult>;
|
|
39
|
+
export declare function startOAuthConnect(db: DatabaseManager, oauthManager: OAuthManager, clientSecrets: OAuthClientSecretVault, serviceId: string, input?: OAuthConnectInput): Promise<OAuthConnectResult>;
|
|
26
40
|
//# sourceMappingURL=oauth-connect-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-connect-service.d.ts","sourceRoot":"","sources":["../../src/services/oauth-connect-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-connect-service.d.ts","sourceRoot":"","sources":["../../src/services/oauth-connect-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,sBAAsB,GAC7B;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAE,CAU9E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAEhF;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,OAAO,EAAE,IAAI,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxC,GACD;IACE,OAAO,EAAE,KAAK,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,sBAAsB,GACpC,OAAO,CAAC;IACT,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC,CA8BD;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,eAAe,EACnB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,iBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAkI7B"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveOAuthClientCredentials = resolveOAuthClientCredentials;
|
|
4
|
+
exports.hasSavedOAuthCredentials = hasSavedOAuthCredentials;
|
|
3
5
|
exports.getOAuthSetupInfo = getOAuthSetupInfo;
|
|
4
6
|
exports.startOAuthConnect = startOAuthConnect;
|
|
5
7
|
const mcp_discovery_service_1 = require("./mcp-discovery-service");
|
|
6
8
|
const oauth_provider_guides_1 = require("../data/oauth-provider-guides");
|
|
7
9
|
const shared_oauth_apps_1 = require("../config/shared-oauth-apps");
|
|
8
|
-
|
|
10
|
+
function resolveOAuthClientCredentials(input, stored) {
|
|
11
|
+
const clientId = input.clientId?.trim() || stored.oauthClientId?.trim() || undefined;
|
|
12
|
+
const clientSecret = input.clientSecret?.trim() || stored.oauthClientSecret?.trim() || undefined;
|
|
13
|
+
return {
|
|
14
|
+
clientId,
|
|
15
|
+
clientSecret,
|
|
16
|
+
missingRequiredSecret: Boolean(clientId && !clientSecret),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function hasSavedOAuthCredentials(stored) {
|
|
20
|
+
return Boolean(stored.oauthClientId?.trim() && stored.oauthClientSecret?.trim());
|
|
21
|
+
}
|
|
22
|
+
async function getOAuthSetupInfo(db, serviceId, clientSecrets) {
|
|
9
23
|
const service = await db.getService(serviceId);
|
|
10
24
|
if (!service) {
|
|
11
25
|
throw new Error('Service not found');
|
|
@@ -22,9 +36,18 @@ async function getOAuthSetupInfo(db, serviceId) {
|
|
|
22
36
|
}),
|
|
23
37
|
setupMode,
|
|
24
38
|
};
|
|
25
|
-
|
|
39
|
+
const storedSecret = await clientSecrets.get(serviceId, service.oauthClientSecret);
|
|
40
|
+
const hasStoredClientSecret = Boolean(storedSecret);
|
|
41
|
+
const hasSavedCredentials = Boolean(service.oauthClientId?.trim() && storedSecret);
|
|
42
|
+
return {
|
|
43
|
+
guide,
|
|
44
|
+
discovery,
|
|
45
|
+
savedOAuthClientId: service.oauthClientId ?? undefined,
|
|
46
|
+
hasStoredClientSecret,
|
|
47
|
+
hasSavedCredentials,
|
|
48
|
+
};
|
|
26
49
|
}
|
|
27
|
-
async function startOAuthConnect(db, oauthManager, serviceId, input = {}) {
|
|
50
|
+
async function startOAuthConnect(db, oauthManager, clientSecrets, serviceId, input = {}) {
|
|
28
51
|
const service = await db.getService(serviceId);
|
|
29
52
|
if (!service) {
|
|
30
53
|
throw new Error('Service not found');
|
|
@@ -73,12 +96,15 @@ async function startOAuthConnect(db, oauthManager, serviceId, input = {}) {
|
|
|
73
96
|
error: 'Could not discover OAuth authorization and token URLs for this service.',
|
|
74
97
|
};
|
|
75
98
|
}
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
99
|
+
const storedSecret = await clientSecrets.get(serviceId, service.oauthClientSecret);
|
|
100
|
+
const resolved = resolveOAuthClientCredentials(input, {
|
|
101
|
+
oauthClientId: service.oauthClientId,
|
|
102
|
+
oauthClientSecret: storedSecret,
|
|
103
|
+
});
|
|
104
|
+
let clientId = resolved.clientId;
|
|
105
|
+
let clientSecret = resolved.clientSecret;
|
|
106
|
+
let mode = clientId ? 'manual' : 'dynamic';
|
|
107
|
+
const shared = !input.clientId?.trim() ? (0, shared_oauth_apps_1.getSharedOAuthCredentials)(provider) : null;
|
|
82
108
|
if (shared) {
|
|
83
109
|
clientId = shared.clientId;
|
|
84
110
|
clientSecret = shared.clientSecret;
|
|
@@ -107,9 +133,21 @@ async function startOAuthConnect(db, oauthManager, serviceId, input = {}) {
|
|
|
107
133
|
clientSecret = registration.clientSecret;
|
|
108
134
|
mode = 'dynamic';
|
|
109
135
|
}
|
|
136
|
+
else if (guide.setupMode === 'manual' && resolved.missingRequiredSecret) {
|
|
137
|
+
return {
|
|
138
|
+
success: false,
|
|
139
|
+
needsCredentials: true,
|
|
140
|
+
setupMode: 'manual',
|
|
141
|
+
guide: { ...guide, setupMode: 'manual' },
|
|
142
|
+
error: 'Client secret is missing. Paste it below, or leave the field blank if one is already saved for this service.',
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (clientSecret) {
|
|
146
|
+
await clientSecrets.set(serviceId, clientSecret);
|
|
147
|
+
}
|
|
110
148
|
await db.updateService(serviceId, {
|
|
111
149
|
oauthClientId: clientId,
|
|
112
|
-
oauthClientSecret:
|
|
150
|
+
oauthClientSecret: '',
|
|
113
151
|
oauthAuthorizationUrl: oauthConfig.authorizationUrl,
|
|
114
152
|
oauthTokenUrl: oauthConfig.tokenUrl,
|
|
115
153
|
oauthRedirectUri: redirectUri,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-connect-service.js","sourceRoot":"","sources":["../../src/services/oauth-connect-service.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oauth-connect-service.js","sourceRoot":"","sources":["../../src/services/oauth-connect-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { OAuthDiscoveryResult, OAuthConfig, OAuthToken, OAuthFlowInput, OAuthCallbackInput, OAuthRefreshInput } from '@agent-deck/shared';
|
|
2
2
|
import { DatabaseManager } from '../models/database';
|
|
3
|
+
import { OAuthClientSecretVault } from '../vault/oauth-client-secret-vault';
|
|
4
|
+
import { OAuthTokenVault } from '../vault/oauth-token-vault';
|
|
3
5
|
export declare class OAuthManager {
|
|
4
6
|
private db;
|
|
7
|
+
private clientSecrets;
|
|
8
|
+
private tokens;
|
|
5
9
|
private oauthStates;
|
|
6
10
|
getOAuthState(state: string): string | undefined;
|
|
7
|
-
constructor(db: DatabaseManager);
|
|
11
|
+
constructor(db: DatabaseManager, clientSecrets: OAuthClientSecretVault, tokens: OAuthTokenVault);
|
|
8
12
|
discoverOAuth(serviceUrl: string): Promise<OAuthDiscoveryResult>;
|
|
9
13
|
initiateOAuthFlow(input: OAuthFlowInput): Promise<{
|
|
10
14
|
authorizationUrl: string;
|
|
@@ -14,6 +18,8 @@ export declare class OAuthManager {
|
|
|
14
18
|
refreshOAuthToken(input: OAuthRefreshInput): Promise<OAuthToken>;
|
|
15
19
|
isTokenExpired(serviceId: string): Promise<boolean>;
|
|
16
20
|
getValidAccessToken(serviceId: string): Promise<string | null>;
|
|
21
|
+
hasOAuthTokens(serviceId: string): Promise<boolean>;
|
|
22
|
+
hasRefreshToken(serviceId: string): Promise<boolean>;
|
|
17
23
|
autoRegisterOAuthApp(serviceUrl: string, config: OAuthConfig): Promise<{
|
|
18
24
|
success: boolean;
|
|
19
25
|
clientId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../../src/services/oauth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../../src/services/oauth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AA2B7D,qBAAa,YAAY;IAQrB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,WAAW,CAAsC;IAEzD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;gBAKtC,EAAE,EAAE,eAAe,EACnB,aAAa,EAAE,sBAAsB,EACrC,MAAM,EAAE,eAAe;IAG3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkEhE,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC9F,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgFnE,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsDhE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBnD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqC9D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAapD,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QAC3E,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CAqJH"}
|
|
@@ -8,12 +8,16 @@ const oauth_redirect_1 = require("../config/oauth-redirect");
|
|
|
8
8
|
const oauth_token_response_1 = require("../lib/oauth-token-response");
|
|
9
9
|
class OAuthManager {
|
|
10
10
|
db;
|
|
11
|
+
clientSecrets;
|
|
12
|
+
tokens;
|
|
11
13
|
oauthStates = new Map();
|
|
12
14
|
getOAuthState(state) {
|
|
13
15
|
return this.oauthStates.get(state)?.serviceId;
|
|
14
16
|
}
|
|
15
|
-
constructor(db) {
|
|
17
|
+
constructor(db, clientSecrets, tokens) {
|
|
16
18
|
this.db = db;
|
|
19
|
+
this.clientSecrets = clientSecrets;
|
|
20
|
+
this.tokens = tokens;
|
|
17
21
|
}
|
|
18
22
|
async discoverOAuth(serviceUrl) {
|
|
19
23
|
try {
|
|
@@ -130,8 +134,9 @@ class OAuthManager {
|
|
|
130
134
|
redirect_uri: redirectUri,
|
|
131
135
|
code_verifier: codeVerifier,
|
|
132
136
|
});
|
|
133
|
-
|
|
134
|
-
|
|
137
|
+
const clientSecret = await this.clientSecrets.get(input.serviceId, service.oauthClientSecret);
|
|
138
|
+
if (clientSecret) {
|
|
139
|
+
tokenBody.set('client_secret', clientSecret);
|
|
135
140
|
}
|
|
136
141
|
const tokenResponse = await fetch(service.oauthTokenUrl, {
|
|
137
142
|
method: 'POST',
|
|
@@ -152,8 +157,8 @@ class OAuthManager {
|
|
|
152
157
|
tokenType: tokenData.token_type || 'Bearer',
|
|
153
158
|
scope: tokenData.scope,
|
|
154
159
|
};
|
|
155
|
-
// Store tokens in
|
|
156
|
-
await this.
|
|
160
|
+
// Store tokens in Keychain; expiry + has-token flag in SQLite
|
|
161
|
+
await this.tokens.set(serviceId, token.accessToken, token.refreshToken, token.expiresAt);
|
|
157
162
|
// Clear state - we'll need to implement this properly
|
|
158
163
|
// await this.db.updateService(input.serviceId, {
|
|
159
164
|
// oauthState: undefined,
|
|
@@ -173,8 +178,9 @@ class OAuthManager {
|
|
|
173
178
|
client_id: service.oauthClientId || '',
|
|
174
179
|
refresh_token: input.refreshToken,
|
|
175
180
|
});
|
|
176
|
-
|
|
177
|
-
|
|
181
|
+
const clientSecret = await this.clientSecrets.get(input.serviceId, service.oauthClientSecret);
|
|
182
|
+
if (clientSecret) {
|
|
183
|
+
refreshBody.set('client_secret', clientSecret);
|
|
178
184
|
}
|
|
179
185
|
const tokenResponse = await fetch(service.oauthTokenUrl, {
|
|
180
186
|
method: 'POST',
|
|
@@ -195,8 +201,8 @@ class OAuthManager {
|
|
|
195
201
|
tokenType: tokenData.token_type || 'Bearer',
|
|
196
202
|
scope: tokenData.scope,
|
|
197
203
|
};
|
|
198
|
-
// Store new tokens in
|
|
199
|
-
await this.
|
|
204
|
+
// Store new tokens in Keychain
|
|
205
|
+
await this.tokens.set(input.serviceId, token.accessToken, token.refreshToken, token.expiresAt);
|
|
200
206
|
return token;
|
|
201
207
|
}
|
|
202
208
|
async isTokenExpired(serviceId) {
|
|
@@ -204,21 +210,29 @@ class OAuthManager {
|
|
|
204
210
|
if (!service) {
|
|
205
211
|
return true;
|
|
206
212
|
}
|
|
213
|
+
const hasToken = await this.tokens.has(serviceId, service.oauthAccessToken, service.oauthRefreshToken);
|
|
214
|
+
if (!hasToken) {
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
207
217
|
return (0, shared_1.isOAuthAccessTokenExpired)(service);
|
|
208
218
|
}
|
|
209
219
|
async getValidAccessToken(serviceId) {
|
|
210
220
|
const service = await this.db.getService(serviceId);
|
|
211
|
-
if (!service
|
|
221
|
+
if (!service) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
const bundle = await this.tokens.get(serviceId, service.oauthAccessToken, service.oauthRefreshToken);
|
|
225
|
+
if (!bundle?.accessToken) {
|
|
212
226
|
return null;
|
|
213
227
|
}
|
|
214
228
|
// Check if token is expired (missing expiry means still valid)
|
|
215
229
|
if ((0, shared_1.isOAuthAccessTokenExpired)(service)) {
|
|
216
230
|
// Try to refresh the token
|
|
217
|
-
if (
|
|
231
|
+
if (bundle.refreshToken) {
|
|
218
232
|
try {
|
|
219
233
|
const newToken = await this.refreshOAuthToken({
|
|
220
234
|
serviceId,
|
|
221
|
-
refreshToken:
|
|
235
|
+
refreshToken: bundle.refreshToken,
|
|
222
236
|
});
|
|
223
237
|
return newToken.accessToken;
|
|
224
238
|
}
|
|
@@ -231,7 +245,22 @@ class OAuthManager {
|
|
|
231
245
|
return null;
|
|
232
246
|
}
|
|
233
247
|
}
|
|
234
|
-
return
|
|
248
|
+
return bundle.accessToken;
|
|
249
|
+
}
|
|
250
|
+
async hasOAuthTokens(serviceId) {
|
|
251
|
+
const service = await this.db.getService(serviceId);
|
|
252
|
+
if (!service) {
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
return this.tokens.has(serviceId, service.oauthAccessToken, service.oauthRefreshToken);
|
|
256
|
+
}
|
|
257
|
+
async hasRefreshToken(serviceId) {
|
|
258
|
+
const service = await this.db.getService(serviceId);
|
|
259
|
+
if (!service) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
const bundle = await this.tokens.get(serviceId, service.oauthAccessToken, service.oauthRefreshToken);
|
|
263
|
+
return Boolean(bundle?.refreshToken);
|
|
235
264
|
}
|
|
236
265
|
async autoRegisterOAuthApp(serviceUrl, config) {
|
|
237
266
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../../src/services/oauth-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../../src/services/oauth-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@ import { Service, CreateServiceInput, UpdateServiceInput, ServiceTool, ServiceCa
|
|
|
2
2
|
import { DatabaseManager } from '../models/database';
|
|
3
3
|
import { MCPClientManager } from './mcp-client-manager';
|
|
4
4
|
import { OAuthManager } from './oauth-manager';
|
|
5
|
+
import { OAuthClientSecretVault } from '../vault/oauth-client-secret-vault';
|
|
5
6
|
export declare class ServiceManager {
|
|
6
7
|
private db;
|
|
7
8
|
private mcpClient;
|
|
8
9
|
private oauthManager;
|
|
10
|
+
private clientSecrets;
|
|
9
11
|
private configManager;
|
|
10
|
-
constructor(db: DatabaseManager, mcpClient: MCPClientManager, oauthManager: OAuthManager);
|
|
12
|
+
constructor(db: DatabaseManager, mcpClient: MCPClientManager, oauthManager: OAuthManager, clientSecrets: OAuthClientSecretVault);
|
|
11
13
|
get mcpClientManager(): MCPClientManager;
|
|
12
14
|
createService(input: CreateServiceInput): Promise<Service>;
|
|
13
15
|
private probeInitialHealth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../src/services/service-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAIjB,8BAA8B,EAC9B,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../src/services/service-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,11 +41,13 @@ class ServiceManager {
|
|
|
41
41
|
db;
|
|
42
42
|
mcpClient;
|
|
43
43
|
oauthManager;
|
|
44
|
+
clientSecrets;
|
|
44
45
|
configManager;
|
|
45
|
-
constructor(db, mcpClient, oauthManager) {
|
|
46
|
+
constructor(db, mcpClient, oauthManager, clientSecrets) {
|
|
46
47
|
this.db = db;
|
|
47
48
|
this.mcpClient = mcpClient;
|
|
48
49
|
this.oauthManager = oauthManager;
|
|
50
|
+
this.clientSecrets = clientSecrets;
|
|
49
51
|
this.configManager = new config_manager_1.ConfigManager();
|
|
50
52
|
}
|
|
51
53
|
get mcpClientManager() {
|
|
@@ -67,9 +69,12 @@ class ServiceManager {
|
|
|
67
69
|
try {
|
|
68
70
|
const oauthDiscovery = await this.oauthManager.discoverOAuth(service.url);
|
|
69
71
|
if (oauthDiscovery.hasOAuth && oauthDiscovery.config) {
|
|
72
|
+
if (oauthDiscovery.config.clientSecret) {
|
|
73
|
+
await this.clientSecrets.set(service.id, oauthDiscovery.config.clientSecret);
|
|
74
|
+
}
|
|
70
75
|
await this.db.updateService(service.id, {
|
|
71
76
|
oauthClientId: oauthDiscovery.config.clientId,
|
|
72
|
-
oauthClientSecret:
|
|
77
|
+
oauthClientSecret: '',
|
|
73
78
|
oauthAuthorizationUrl: oauthDiscovery.config.authorizationUrl,
|
|
74
79
|
oauthTokenUrl: oauthDiscovery.config.tokenUrl,
|
|
75
80
|
oauthRedirectUri: oauthDiscovery.config.redirectUri,
|
|
@@ -102,6 +107,10 @@ class ServiceManager {
|
|
|
102
107
|
if (!onUpdate || !('health' in result) || !result.success) {
|
|
103
108
|
return;
|
|
104
109
|
}
|
|
110
|
+
const health = result.health;
|
|
111
|
+
if (service.health === health && service.isConnected === result.isConnected) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
105
114
|
onUpdate({
|
|
106
115
|
serviceId: service.id,
|
|
107
116
|
health: result.health,
|
|
@@ -123,7 +132,9 @@ class ServiceManager {
|
|
|
123
132
|
const hasOAuthConfig = Boolean(service.oauthClientId ||
|
|
124
133
|
service.oauthAuthorizationUrl ||
|
|
125
134
|
service.oauthTokenUrl);
|
|
126
|
-
const hasAuth = Boolean(service.
|
|
135
|
+
const hasAuth = Boolean(service.oauthHasToken ||
|
|
136
|
+
service.oauthAccessToken ||
|
|
137
|
+
service.headers?.Authorization);
|
|
127
138
|
if (hasOAuthConfig && !hasAuth) {
|
|
128
139
|
return false;
|
|
129
140
|
}
|
|
@@ -150,9 +161,20 @@ class ServiceManager {
|
|
|
150
161
|
}
|
|
151
162
|
async backfillMissingIcons() {
|
|
152
163
|
const services = await this.db.getAllServices();
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
164
|
+
const needsRefresh = [];
|
|
165
|
+
for (const service of services) {
|
|
166
|
+
if (!this.shouldResolveIcon(service)) {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
if (!service.iconUrl) {
|
|
170
|
+
needsRefresh.push(service);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (!(await (0, icon_resolver_1.serviceIconFileExists)(service.id))) {
|
|
174
|
+
needsRefresh.push(service);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
await Promise.all(needsRefresh.map((service) => this.refreshServiceIcon(service.id).catch((error) => {
|
|
156
178
|
console.warn(`Failed to resolve icon for service ${service.name}:`, error);
|
|
157
179
|
})));
|
|
158
180
|
}
|
|
@@ -162,7 +184,12 @@ class ServiceManager {
|
|
|
162
184
|
async getAllServices() {
|
|
163
185
|
const services = await this.db.getAllServices();
|
|
164
186
|
return Promise.all(services.map(async (service) => {
|
|
165
|
-
if (!
|
|
187
|
+
if (!this.shouldResolveIcon(service)) {
|
|
188
|
+
return service;
|
|
189
|
+
}
|
|
190
|
+
const missingIconUrl = !service.iconUrl;
|
|
191
|
+
const missingCacheFile = service.iconUrl && !(await (0, icon_resolver_1.serviceIconFileExists)(service.id));
|
|
192
|
+
if (missingIconUrl || missingCacheFile) {
|
|
166
193
|
const updated = await this.refreshServiceIcon(service.id);
|
|
167
194
|
return updated ?? service;
|
|
168
195
|
}
|