@kya-os/mcp-i-core 1.3.13 → 1.3.15
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/config/remote-config.js +9 -12
- package/dist/runtime/base.d.ts +2 -1
- package/dist/runtime/base.js +34 -6
- package/dist/services/access-control.service.js +5 -0
- package/dist/services/tool-protection.service.js +17 -8
- package/package.json +2 -2
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test$colon$coverage.log +0 -4586
- package/.turbo/turbo-test.log +0 -4631
- package/COMPLIANCE_IMPROVEMENT_REPORT.md +0 -483
- package/Composer 3.md +0 -615
- package/GPT-5.md +0 -1169
- package/OPUS-plan.md +0 -352
- package/PHASE_3_AND_4.1_SUMMARY.md +0 -585
- package/PHASE_3_SUMMARY.md +0 -317
- package/PHASE_4.1.3_SUMMARY.md +0 -428
- package/PHASE_4.1_COMPLETE.md +0 -525
- package/PHASE_4_USER_DID_IDENTITY_LINKING_PLAN.md +0 -1240
- package/SCHEMA_COMPLIANCE_REPORT.md +0 -275
- package/TEST_PLAN.md +0 -571
- package/coverage/coverage-final.json +0 -60
- package/dist/cache/oauth-config-cache.d.ts.map +0 -1
- package/dist/cache/oauth-config-cache.js.map +0 -1
- package/dist/cache/tool-protection-cache.d.ts.map +0 -1
- package/dist/cache/tool-protection-cache.js.map +0 -1
- package/dist/compliance/index.d.ts.map +0 -1
- package/dist/compliance/index.js.map +0 -1
- package/dist/compliance/schema-registry.d.ts.map +0 -1
- package/dist/compliance/schema-registry.js.map +0 -1
- package/dist/compliance/schema-verifier.d.ts.map +0 -1
- package/dist/compliance/schema-verifier.js.map +0 -1
- package/dist/config/remote-config.d.ts.map +0 -1
- package/dist/config/remote-config.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/delegation/audience-validator.d.ts.map +0 -1
- package/dist/delegation/audience-validator.js.map +0 -1
- package/dist/delegation/bitstring.d.ts.map +0 -1
- package/dist/delegation/bitstring.js.map +0 -1
- package/dist/delegation/cascading-revocation.d.ts.map +0 -1
- package/dist/delegation/cascading-revocation.js.map +0 -1
- package/dist/delegation/delegation-graph.d.ts.map +0 -1
- package/dist/delegation/delegation-graph.js.map +0 -1
- package/dist/delegation/did-key-resolver.d.ts.map +0 -1
- package/dist/delegation/did-key-resolver.js.map +0 -1
- package/dist/delegation/index.d.ts.map +0 -1
- package/dist/delegation/index.js.map +0 -1
- package/dist/delegation/statuslist-manager.d.ts.map +0 -1
- package/dist/delegation/statuslist-manager.js.map +0 -1
- package/dist/delegation/storage/index.d.ts.map +0 -1
- package/dist/delegation/storage/index.js.map +0 -1
- package/dist/delegation/storage/memory-graph-storage.d.ts.map +0 -1
- package/dist/delegation/storage/memory-graph-storage.js.map +0 -1
- package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +0 -1
- package/dist/delegation/storage/memory-statuslist-storage.js.map +0 -1
- package/dist/delegation/utils.d.ts.map +0 -1
- package/dist/delegation/utils.js.map +0 -1
- package/dist/delegation/vc-issuer.d.ts.map +0 -1
- package/dist/delegation/vc-issuer.js.map +0 -1
- package/dist/delegation/vc-verifier.d.ts.map +0 -1
- package/dist/delegation/vc-verifier.js.map +0 -1
- package/dist/identity/idp-token-resolver.d.ts.map +0 -1
- package/dist/identity/idp-token-resolver.js.map +0 -1
- package/dist/identity/idp-token-storage.interface.d.ts.map +0 -1
- package/dist/identity/idp-token-storage.interface.js.map +0 -1
- package/dist/identity/user-did-manager.d.ts.map +0 -1
- package/dist/identity/user-did-manager.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/base.d.ts.map +0 -1
- package/dist/providers/base.js.map +0 -1
- package/dist/providers/memory.d.ts.map +0 -1
- package/dist/providers/memory.js.map +0 -1
- package/dist/runtime/audit-logger.d.ts.map +0 -1
- package/dist/runtime/audit-logger.js.map +0 -1
- package/dist/runtime/base.d.ts.map +0 -1
- package/dist/runtime/base.js.map +0 -1
- package/dist/services/access-control.service.d.ts.map +0 -1
- package/dist/services/access-control.service.js.map +0 -1
- package/dist/services/authorization/authorization-registry.d.ts.map +0 -1
- package/dist/services/authorization/authorization-registry.js.map +0 -1
- package/dist/services/authorization/types.d.ts.map +0 -1
- package/dist/services/authorization/types.js.map +0 -1
- package/dist/services/batch-delegation.service.d.ts.map +0 -1
- package/dist/services/batch-delegation.service.js.map +0 -1
- package/dist/services/crypto.service.d.ts.map +0 -1
- package/dist/services/crypto.service.js.map +0 -1
- package/dist/services/errors.d.ts.map +0 -1
- package/dist/services/errors.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/services/oauth-config.service.d.ts.map +0 -1
- package/dist/services/oauth-config.service.js.map +0 -1
- package/dist/services/oauth-provider-registry.d.ts.map +0 -1
- package/dist/services/oauth-provider-registry.js.map +0 -1
- package/dist/services/oauth-service.d.ts.map +0 -1
- package/dist/services/oauth-service.js.map +0 -1
- package/dist/services/oauth-token-retrieval.service.d.ts.map +0 -1
- package/dist/services/oauth-token-retrieval.service.js.map +0 -1
- package/dist/services/proof-verifier.d.ts.map +0 -1
- package/dist/services/proof-verifier.js.map +0 -1
- package/dist/services/provider-resolver.d.ts.map +0 -1
- package/dist/services/provider-resolver.js.map +0 -1
- package/dist/services/provider-validator.d.ts.map +0 -1
- package/dist/services/provider-validator.js.map +0 -1
- package/dist/services/session-registration.service.d.ts.map +0 -1
- package/dist/services/session-registration.service.js.map +0 -1
- package/dist/services/storage.service.d.ts.map +0 -1
- package/dist/services/storage.service.js.map +0 -1
- package/dist/services/tool-context-builder.d.ts.map +0 -1
- package/dist/services/tool-context-builder.js.map +0 -1
- package/dist/services/tool-protection.service.d.ts.map +0 -1
- package/dist/services/tool-protection.service.js.map +0 -1
- package/dist/types/oauth-required-error.d.ts.map +0 -1
- package/dist/types/oauth-required-error.js.map +0 -1
- package/dist/types/tool-protection.d.ts.map +0 -1
- package/dist/types/tool-protection.js.map +0 -1
- package/dist/utils/base58.d.ts.map +0 -1
- package/dist/utils/base58.js.map +0 -1
- package/dist/utils/base64.d.ts.map +0 -1
- package/dist/utils/base64.js.map +0 -1
- package/dist/utils/cors.d.ts.map +0 -1
- package/dist/utils/cors.js.map +0 -1
- package/dist/utils/did-helpers.d.ts.map +0 -1
- package/dist/utils/did-helpers.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/storage-keys.d.ts.map +0 -1
- package/dist/utils/storage-keys.js.map +0 -1
- package/docs/API_REFERENCE.md +0 -1362
- package/docs/COMPLIANCE_MATRIX.md +0 -691
- package/docs/STATUSLIST2021_GUIDE.md +0 -696
- package/docs/W3C_VC_DELEGATION_GUIDE.md +0 -710
- package/src/__tests__/cache/tool-protection-cache.test.ts +0 -640
- package/src/__tests__/config/provider-runtime-config.test.ts +0 -309
- package/src/__tests__/delegation-e2e.test.ts +0 -690
- package/src/__tests__/identity/user-did-manager.test.ts +0 -232
- package/src/__tests__/index.test.ts +0 -56
- package/src/__tests__/integration/full-flow.test.ts +0 -789
- package/src/__tests__/integration.test.ts +0 -281
- package/src/__tests__/providers/base.test.ts +0 -173
- package/src/__tests__/providers/memory.test.ts +0 -319
- package/src/__tests__/regression/phase2-regression.test.ts +0 -429
- package/src/__tests__/runtime/audit-logger.test.ts +0 -154
- package/src/__tests__/runtime/base-extensions.test.ts +0 -595
- package/src/__tests__/runtime/base.test.ts +0 -869
- package/src/__tests__/runtime/delegation-flow.test.ts +0 -164
- package/src/__tests__/runtime/proof-client-did.test.ts +0 -376
- package/src/__tests__/runtime/route-interception.test.ts +0 -686
- package/src/__tests__/runtime/tool-protection-enforcement.test.ts +0 -908
- package/src/__tests__/services/agentshield-integration.test.ts +0 -791
- package/src/__tests__/services/cache-busting.test.ts +0 -125
- package/src/__tests__/services/oauth-service-pkce.test.ts +0 -556
- package/src/__tests__/services/provider-resolver-edge-cases.test.ts +0 -591
- package/src/__tests__/services/tool-protection-merged-config.test.ts +0 -485
- package/src/__tests__/services/tool-protection-oauth-provider.test.ts +0 -480
- package/src/__tests__/services/tool-protection.service.test.ts +0 -1373
- package/src/__tests__/utils/mock-providers.ts +0 -340
- package/src/cache/oauth-config-cache.d.ts +0 -69
- package/src/cache/oauth-config-cache.d.ts.map +0 -1
- package/src/cache/oauth-config-cache.js.map +0 -1
- package/src/cache/oauth-config-cache.ts +0 -123
- package/src/cache/tool-protection-cache.ts +0 -171
- package/src/compliance/EXAMPLE.md +0 -412
- package/src/compliance/__tests__/schema-verifier.test.ts +0 -797
- package/src/compliance/index.ts +0 -8
- package/src/compliance/schema-registry.ts +0 -460
- package/src/compliance/schema-verifier.ts +0 -708
- package/src/config/__tests__/merged-config.spec.ts +0 -445
- package/src/config/__tests__/remote-config.spec.ts +0 -268
- package/src/config/remote-config.ts +0 -264
- package/src/config.ts +0 -312
- package/src/delegation/__tests__/audience-validator.test.ts +0 -112
- package/src/delegation/__tests__/bitstring.test.ts +0 -346
- package/src/delegation/__tests__/cascading-revocation.test.ts +0 -628
- package/src/delegation/__tests__/delegation-graph.test.ts +0 -584
- package/src/delegation/__tests__/did-key-resolver.test.ts +0 -265
- package/src/delegation/__tests__/utils.test.ts +0 -152
- package/src/delegation/__tests__/vc-issuer.test.ts +0 -442
- package/src/delegation/__tests__/vc-verifier.test.ts +0 -922
- package/src/delegation/audience-validator.ts +0 -52
- package/src/delegation/bitstring.ts +0 -278
- package/src/delegation/cascading-revocation.ts +0 -370
- package/src/delegation/delegation-graph.ts +0 -299
- package/src/delegation/did-key-resolver.ts +0 -179
- package/src/delegation/index.ts +0 -14
- package/src/delegation/statuslist-manager.ts +0 -353
- package/src/delegation/storage/__tests__/memory-graph-storage.test.ts +0 -366
- package/src/delegation/storage/__tests__/memory-statuslist-storage.test.ts +0 -228
- package/src/delegation/storage/index.ts +0 -9
- package/src/delegation/storage/memory-graph-storage.ts +0 -178
- package/src/delegation/storage/memory-statuslist-storage.ts +0 -77
- package/src/delegation/utils.ts +0 -221
- package/src/delegation/vc-issuer.ts +0 -232
- package/src/delegation/vc-verifier.ts +0 -568
- package/src/identity/idp-token-resolver.ts +0 -181
- package/src/identity/idp-token-storage.interface.ts +0 -94
- package/src/identity/user-did-manager.ts +0 -526
- package/src/index.ts +0 -310
- package/src/providers/base.d.ts +0 -91
- package/src/providers/base.d.ts.map +0 -1
- package/src/providers/base.js.map +0 -1
- package/src/providers/base.ts +0 -96
- package/src/providers/memory.ts +0 -142
- package/src/runtime/audit-logger.ts +0 -39
- package/src/runtime/base.ts +0 -1392
- package/src/services/__tests__/access-control.integration.test.ts +0 -443
- package/src/services/__tests__/access-control.proof-response-validation.test.ts +0 -578
- package/src/services/__tests__/access-control.service.test.ts +0 -970
- package/src/services/__tests__/batch-delegation.service.test.ts +0 -351
- package/src/services/__tests__/crypto.service.test.ts +0 -531
- package/src/services/__tests__/oauth-provider-registry.test.ts +0 -142
- package/src/services/__tests__/proof-verifier.integration.test.ts +0 -485
- package/src/services/__tests__/proof-verifier.test.ts +0 -489
- package/src/services/__tests__/provider-resolution.integration.test.ts +0 -202
- package/src/services/__tests__/provider-resolver.test.ts +0 -213
- package/src/services/__tests__/storage.service.test.ts +0 -358
- package/src/services/access-control.service.ts +0 -990
- package/src/services/authorization/authorization-registry.ts +0 -66
- package/src/services/authorization/types.ts +0 -71
- package/src/services/batch-delegation.service.ts +0 -137
- package/src/services/crypto.service.ts +0 -302
- package/src/services/errors.ts +0 -76
- package/src/services/index.ts +0 -18
- package/src/services/oauth-config.service.d.ts +0 -53
- package/src/services/oauth-config.service.d.ts.map +0 -1
- package/src/services/oauth-config.service.js.map +0 -1
- package/src/services/oauth-config.service.ts +0 -192
- package/src/services/oauth-provider-registry.d.ts +0 -57
- package/src/services/oauth-provider-registry.d.ts.map +0 -1
- package/src/services/oauth-provider-registry.js.map +0 -1
- package/src/services/oauth-provider-registry.ts +0 -141
- package/src/services/oauth-service.ts +0 -544
- package/src/services/oauth-token-retrieval.service.ts +0 -245
- package/src/services/proof-verifier.ts +0 -478
- package/src/services/provider-resolver.d.ts +0 -48
- package/src/services/provider-resolver.d.ts.map +0 -1
- package/src/services/provider-resolver.js.map +0 -1
- package/src/services/provider-resolver.ts +0 -146
- package/src/services/provider-validator.ts +0 -170
- package/src/services/session-registration.service.ts +0 -251
- package/src/services/storage.service.ts +0 -566
- package/src/services/tool-context-builder.ts +0 -237
- package/src/services/tool-protection.service.ts +0 -1070
- package/src/types/oauth-required-error.ts +0 -63
- package/src/types/tool-protection.ts +0 -155
- package/src/utils/__tests__/did-helpers.test.ts +0 -156
- package/src/utils/base58.ts +0 -109
- package/src/utils/base64.ts +0 -148
- package/src/utils/cors.ts +0 -83
- package/src/utils/did-helpers.ts +0 -210
- package/src/utils/index.ts +0 -8
- package/src/utils/storage-keys.ts +0 -278
- package/tsconfig.json +0 -21
- package/vitest.config.ts +0 -56
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IDP Token Resolver
|
|
3
|
-
*
|
|
4
|
-
* Resolves User DID to IDP access token (MH-7 requirement).
|
|
5
|
-
* Handles token lookup, expiration checking, and automatic refresh.
|
|
6
|
-
*
|
|
7
|
-
* Updated for CRED-003: Returns full token data including usage metadata
|
|
8
|
-
* to support credential providers with custom token usage patterns.
|
|
9
|
-
*
|
|
10
|
-
* @package @kya-os/mcp-i-core
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { IdpTokens } from "@kya-os/contracts/config";
|
|
14
|
-
import type { IIdpTokenStorage, IdpTokensWithMetadata } from "./idp-token-storage.interface.js";
|
|
15
|
-
|
|
16
|
-
export interface IdpTokenResolverConfig {
|
|
17
|
-
/** Token storage implementation */
|
|
18
|
-
tokenStorage: IIdpTokenStorage;
|
|
19
|
-
|
|
20
|
-
/** OAuth service for token refresh */
|
|
21
|
-
oauthService: {
|
|
22
|
-
refreshToken(provider: string, refreshToken: string): Promise<IdpTokens | null>;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/** Optional logger callback for diagnostics */
|
|
26
|
-
logger?: (message: string, data?: unknown) => void;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Service for resolving User DID to IDP access token
|
|
31
|
-
*
|
|
32
|
-
* MH-7 Requirement: resolveTokenFromDid(userDid: string): Promise<string>
|
|
33
|
-
*
|
|
34
|
-
* This service implements the core MH-7 functionality:
|
|
35
|
-
* - Resolves User DID to IDP access token
|
|
36
|
-
* - Handles token expiration and automatic refresh
|
|
37
|
-
* - Supports multiple IDP providers
|
|
38
|
-
*/
|
|
39
|
-
export class IdpTokenResolver {
|
|
40
|
-
private config: Required<Omit<IdpTokenResolverConfig, "logger">> & {
|
|
41
|
-
logger: (message: string, data?: unknown) => void;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
constructor(config: IdpTokenResolverConfig) {
|
|
45
|
-
this.config = {
|
|
46
|
-
tokenStorage: config.tokenStorage,
|
|
47
|
-
oauthService: config.oauthService,
|
|
48
|
-
logger: config.logger || (() => {}),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Resolve User DID to IDP access token
|
|
54
|
-
*
|
|
55
|
-
* MH-7 Requirement: resolveTokenFromDid(userDid: string): Promise<string>
|
|
56
|
-
*
|
|
57
|
-
* Flow:
|
|
58
|
-
* 1. Look up token from storage
|
|
59
|
-
* 2. Check expiration
|
|
60
|
-
* 3. Auto-refresh if expired and refresh_token available
|
|
61
|
-
* 4. Update storage after refresh
|
|
62
|
-
* 5. Return access_token or null
|
|
63
|
-
*
|
|
64
|
-
* @param userDid - User DID to resolve
|
|
65
|
-
* @param provider - OAuth provider name (e.g., "github", "google")
|
|
66
|
-
* @param scopes - Required scopes for token
|
|
67
|
-
* @returns Access token or null if not found/expired
|
|
68
|
-
*/
|
|
69
|
-
async resolveTokenFromDid(
|
|
70
|
-
userDid: string,
|
|
71
|
-
provider: string,
|
|
72
|
-
scopes: string[]
|
|
73
|
-
): Promise<string | null> {
|
|
74
|
-
const tokenData = await this.resolveTokenDataFromDid(userDid, provider, scopes);
|
|
75
|
-
return tokenData?.access_token ?? null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Resolve User DID to full IDP token data (CRED-003)
|
|
80
|
-
*
|
|
81
|
-
* Returns the full token data including usage metadata for credential providers.
|
|
82
|
-
* This allows ToolContextBuilder to construct appropriate headers based on
|
|
83
|
-
* tokenUsage (cookie/bearer/header) and cookieFormat.
|
|
84
|
-
*
|
|
85
|
-
* @param userDid - User DID to resolve
|
|
86
|
-
* @param provider - OAuth provider name or credential provider
|
|
87
|
-
* @param scopes - Required scopes for token
|
|
88
|
-
* @returns Full token data with metadata or null if not found/expired
|
|
89
|
-
*/
|
|
90
|
-
async resolveTokenDataFromDid(
|
|
91
|
-
userDid: string,
|
|
92
|
-
provider: string,
|
|
93
|
-
scopes: string[]
|
|
94
|
-
): Promise<IdpTokensWithMetadata | null> {
|
|
95
|
-
// 1. Look up token from storage
|
|
96
|
-
const storedToken = await this.config.tokenStorage.getToken(
|
|
97
|
-
userDid,
|
|
98
|
-
provider,
|
|
99
|
-
scopes
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
if (!storedToken) {
|
|
103
|
-
this.config.logger("[IdpTokenResolver] Token not found", {
|
|
104
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
105
|
-
provider,
|
|
106
|
-
scopes,
|
|
107
|
-
});
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// 2. Check expiration
|
|
112
|
-
const now = Date.now();
|
|
113
|
-
if (storedToken.expires_at < now) {
|
|
114
|
-
this.config.logger("[IdpTokenResolver] Token expired, attempting refresh", {
|
|
115
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
116
|
-
provider,
|
|
117
|
-
expiresAt: new Date(storedToken.expires_at).toISOString(),
|
|
118
|
-
hasRefreshToken: !!storedToken.refresh_token,
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
// 3. Refresh if refresh_token available
|
|
122
|
-
// Note: Credential tokens don't support refresh - they require re-authentication
|
|
123
|
-
if (storedToken.refresh_token) {
|
|
124
|
-
const refreshed = await this.config.oauthService.refreshToken(
|
|
125
|
-
provider,
|
|
126
|
-
storedToken.refresh_token
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
if (refreshed) {
|
|
130
|
-
// 4. Update storage with new tokens, preserving usage metadata
|
|
131
|
-
const refreshedWithMetadata: IdpTokensWithMetadata = {
|
|
132
|
-
...refreshed,
|
|
133
|
-
tokenUsage: storedToken.tokenUsage,
|
|
134
|
-
tokenHeader: storedToken.tokenHeader,
|
|
135
|
-
cookieFormat: storedToken.cookieFormat,
|
|
136
|
-
apiHeaders: storedToken.apiHeaders,
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
await this.config.tokenStorage.storeToken(
|
|
140
|
-
userDid,
|
|
141
|
-
provider,
|
|
142
|
-
scopes,
|
|
143
|
-
refreshedWithMetadata
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
this.config.logger("[IdpTokenResolver] Token refreshed successfully", {
|
|
147
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
148
|
-
provider,
|
|
149
|
-
expiresAt: new Date(refreshed.expires_at).toISOString(),
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// 5. Return new token data
|
|
153
|
-
return refreshedWithMetadata;
|
|
154
|
-
} else {
|
|
155
|
-
this.config.logger("[IdpTokenResolver] Token refresh failed", {
|
|
156
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
157
|
-
provider,
|
|
158
|
-
});
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
} else {
|
|
162
|
-
this.config.logger("[IdpTokenResolver] Token expired and no refresh token", {
|
|
163
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
164
|
-
provider,
|
|
165
|
-
});
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// 4. Return valid token data
|
|
171
|
-
this.config.logger("[IdpTokenResolver] Token resolved successfully", {
|
|
172
|
-
userDid: userDid.substring(0, 20) + "...",
|
|
173
|
-
provider,
|
|
174
|
-
expiresAt: new Date(storedToken.expires_at).toISOString(),
|
|
175
|
-
tokenUsage: storedToken.tokenUsage,
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
return storedToken;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IDP Token Storage Interface
|
|
3
|
-
*
|
|
4
|
-
* Platform-agnostic interface for storing and retrieving IDP tokens.
|
|
5
|
-
* Platform-specific implementations (Cloudflare KV, Node.js database, etc.)
|
|
6
|
-
* implement this interface.
|
|
7
|
-
*
|
|
8
|
-
* Supports both OAuth tokens and credential-based session tokens (CRED-003).
|
|
9
|
-
*
|
|
10
|
-
* @package @kya-os/mcp-i-core
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { IdpTokens } from "@kya-os/contracts/config";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Token usage metadata for credential providers (CRED-003)
|
|
17
|
-
*
|
|
18
|
-
* Specifies how the token should be used in subsequent API calls.
|
|
19
|
-
*/
|
|
20
|
-
export interface TokenUsageMetadata {
|
|
21
|
-
/**
|
|
22
|
-
* How to use the token in requests
|
|
23
|
-
* - "cookie": Send as Cookie header
|
|
24
|
-
* - "bearer": Send as Authorization: Bearer xxx
|
|
25
|
-
* - "header": Send as custom header (specify tokenHeader)
|
|
26
|
-
*/
|
|
27
|
-
tokenUsage?: "cookie" | "bearer" | "header";
|
|
28
|
-
|
|
29
|
-
/** Custom header name when tokenUsage is "header" */
|
|
30
|
-
tokenHeader?: string;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Cookie format template when tokenUsage is "cookie"
|
|
34
|
-
* Use {{token}} placeholder for the token value
|
|
35
|
-
* @example "CIX={{token}}; customerCookie={{token}}"
|
|
36
|
-
*/
|
|
37
|
-
cookieFormat?: string;
|
|
38
|
-
|
|
39
|
-
/** Additional headers to include in API calls */
|
|
40
|
-
apiHeaders?: Record<string, string>;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Extended IdpTokens with usage metadata (CRED-003)
|
|
45
|
-
*/
|
|
46
|
-
export interface IdpTokensWithMetadata extends IdpTokens, TokenUsageMetadata {}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Interface for IDP token storage
|
|
50
|
-
*/
|
|
51
|
-
export interface IIdpTokenStorage {
|
|
52
|
-
/**
|
|
53
|
-
* Store IDP tokens
|
|
54
|
-
*
|
|
55
|
-
* @param userDid - User DID to associate tokens with
|
|
56
|
-
* @param provider - OAuth provider name or credential provider
|
|
57
|
-
* @param scopes - Scopes granted for these tokens
|
|
58
|
-
* @param tokens - IDP tokens to store (may include usage metadata for credentials)
|
|
59
|
-
*/
|
|
60
|
-
storeToken(
|
|
61
|
-
userDid: string,
|
|
62
|
-
provider: string,
|
|
63
|
-
scopes: string[],
|
|
64
|
-
tokens: IdpTokens | IdpTokensWithMetadata
|
|
65
|
-
): Promise<void>;
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Retrieve IDP tokens
|
|
69
|
-
*
|
|
70
|
-
* @param userDid - User DID to retrieve tokens for
|
|
71
|
-
* @param provider - OAuth provider name or credential provider
|
|
72
|
-
* @param scopes - Scopes to retrieve tokens for
|
|
73
|
-
* @returns IDP tokens with optional usage metadata or null if not found
|
|
74
|
-
*/
|
|
75
|
-
getToken(
|
|
76
|
-
userDid: string,
|
|
77
|
-
provider: string,
|
|
78
|
-
scopes: string[]
|
|
79
|
-
): Promise<IdpTokensWithMetadata | null>;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Delete IDP tokens
|
|
83
|
-
*
|
|
84
|
-
* @param userDid - User DID
|
|
85
|
-
* @param provider - OAuth provider name or credential provider
|
|
86
|
-
* @param scopes - Scopes
|
|
87
|
-
*/
|
|
88
|
-
deleteToken(
|
|
89
|
-
userDid: string,
|
|
90
|
-
provider: string,
|
|
91
|
-
scopes: string[]
|
|
92
|
-
): Promise<void>;
|
|
93
|
-
}
|
|
94
|
-
|