@mondaydotcomorg/atp-server 0.24.0 → 0.24.2
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/client-sessions.d.ts +0 -13
- package/dist/client-sessions.d.ts.map +1 -1
- package/dist/client-sessions.js +1 -57
- package/dist/client-sessions.js.map +1 -1
- package/dist/create-server.d.ts +0 -1
- package/dist/create-server.d.ts.map +1 -1
- package/dist/create-server.js +1 -7
- package/dist/create-server.js.map +1 -1
- package/dist/graphql-loader.d.ts +27 -5
- package/dist/graphql-loader.d.ts.map +1 -1
- package/dist/graphql-loader.js +14 -11
- package/dist/graphql-loader.js.map +1 -1
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +0 -3
- package/dist/http/router.js.map +1 -1
- package/dist/index.cjs +29 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +29 -98
- package/dist/index.js.map +1 -1
- package/dist/openapi-loader.d.ts +32 -7
- package/dist/openapi-loader.d.ts.map +1 -1
- package/dist/openapi-loader.js +11 -9
- package/dist/openapi-loader.js.map +1 -1
- package/package.json +6 -6
- package/src/client-sessions.ts +1 -64
- package/src/create-server.ts +1 -7
- package/src/graphql-loader.ts +43 -17
- package/src/http/router.ts +0 -2
- package/src/openapi-loader.ts +47 -17
- package/dist/handlers/token.handler.d.ts +0 -18
- package/dist/handlers/token.handler.d.ts.map +0 -1
- package/dist/handlers/token.handler.js +0 -36
- package/dist/handlers/token.handler.js.map +0 -1
- package/src/handlers/token.handler.ts +0 -59
package/dist/openapi-loader.d.ts
CHANGED
|
@@ -80,17 +80,14 @@ export interface LoadOpenAPIOptions {
|
|
|
80
80
|
baseURL?: string;
|
|
81
81
|
/**
|
|
82
82
|
* Dynamic header provider for per-request authentication (e.g., per-user OAuth).
|
|
83
|
-
*
|
|
83
|
+
* Called before each API request with the request parameters and the execution's requestContext.
|
|
84
84
|
* @param params - The request parameters
|
|
85
|
-
* @param
|
|
85
|
+
* @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
|
|
86
86
|
* @returns Headers to add to the request
|
|
87
87
|
*/
|
|
88
|
-
headerProvider?: (params: Record<string, unknown> | undefined,
|
|
88
|
+
headerProvider?: (params: Record<string, unknown> | undefined, requestContext?: Record<string, unknown>) => Promise<Record<string, string>> | Record<string, string>;
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
91
|
-
* Similar to GraphQL's contextProvider. Called once per request.
|
|
92
|
-
* @param executionContext - The execution context from ATP
|
|
93
|
-
* @returns Context object passed to headerProvider
|
|
90
|
+
* @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
|
|
94
91
|
*/
|
|
95
92
|
contextProvider?: (executionContext?: Record<string, unknown>) => Promise<Record<string, unknown>> | Record<string, unknown>;
|
|
96
93
|
/**
|
|
@@ -115,6 +112,34 @@ export interface LoadOpenAPIOptions {
|
|
|
115
112
|
headers?: Record<string, string>;
|
|
116
113
|
body?: string | undefined;
|
|
117
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* Custom fetch function for full control over the HTTP transport layer.
|
|
117
|
+
* Use this when the target API requires custom TLS certificates (mTLS, custom CA),
|
|
118
|
+
* a proxy, or any other transport-level configuration that headers alone cannot provide.
|
|
119
|
+
*
|
|
120
|
+
* The function receives the URL and standard RequestInit on every request,
|
|
121
|
+
* making it inherently dynamic — you can route to different agents based on the URL.
|
|
122
|
+
*
|
|
123
|
+
* Applied to both spec loading and runtime API calls.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* import { Agent } from 'undici';
|
|
128
|
+
*
|
|
129
|
+
* const mtlsAgent = new Agent({
|
|
130
|
+
* connect: {
|
|
131
|
+
* ca: fs.readFileSync('/certs/ca.pem'),
|
|
132
|
+
* cert: fs.readFileSync('/certs/client.pem'),
|
|
133
|
+
* key: fs.readFileSync('/certs/client-key.pem'),
|
|
134
|
+
* },
|
|
135
|
+
* });
|
|
136
|
+
*
|
|
137
|
+
* await server.loadOpenAPI('https://partner-api.example.com/spec.json', {
|
|
138
|
+
* fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
fetcher?: (url: string, init: RequestInit) => Promise<Response>;
|
|
118
143
|
}
|
|
119
144
|
/**
|
|
120
145
|
* Load OpenAPI specification and convert to ATP API group
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-loader.d.ts","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openapi-loader.d.ts","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/openapi-loader.js
CHANGED
|
@@ -17,7 +17,7 @@ function isSwagger2(spec) {
|
|
|
17
17
|
* Load OpenAPI specification and convert to ATP API group
|
|
18
18
|
*/
|
|
19
19
|
export async function loadOpenAPI(source, options = {}) {
|
|
20
|
-
const spec = await loadSpec(source);
|
|
20
|
+
const spec = await loadSpec(source, options.fetcher);
|
|
21
21
|
const name = options.name || spec.info.title.toLowerCase().replace(/\s+/g, '-');
|
|
22
22
|
let baseURL = options.baseURL;
|
|
23
23
|
if (!baseURL) {
|
|
@@ -63,11 +63,12 @@ export async function loadOpenAPI(source, options = {}) {
|
|
|
63
63
|
/**
|
|
64
64
|
* Load OpenAPI spec from file or URL
|
|
65
65
|
*/
|
|
66
|
-
async function loadSpec(source) {
|
|
66
|
+
async function loadSpec(source, fetcher) {
|
|
67
67
|
let content;
|
|
68
68
|
let isYaml = false;
|
|
69
69
|
if (source.startsWith('http://') || source.startsWith('https://')) {
|
|
70
|
-
const
|
|
70
|
+
const fetchFn = fetcher || fetch;
|
|
71
|
+
const response = await fetchFn(source, { method: 'GET' });
|
|
71
72
|
if (!response.ok) {
|
|
72
73
|
throw new Error(`Failed to load OpenAPI spec from ${source}: ${response.statusText}`);
|
|
73
74
|
}
|
|
@@ -200,12 +201,12 @@ function convertOperation(path, method, operation, spec, baseURL, options, pathP
|
|
|
200
201
|
const headers = {
|
|
201
202
|
'Content-Type': 'application/json',
|
|
202
203
|
};
|
|
203
|
-
let context;
|
|
204
|
-
if (options.contextProvider) {
|
|
205
|
-
context = await options.contextProvider(handlerContext?.requestContext);
|
|
206
|
-
}
|
|
207
204
|
if (options.headerProvider) {
|
|
208
|
-
|
|
205
|
+
let requestContext = handlerContext?.requestContext;
|
|
206
|
+
if (options.contextProvider) {
|
|
207
|
+
requestContext = await options.contextProvider(requestContext);
|
|
208
|
+
}
|
|
209
|
+
const dynamicHeaders = await options.headerProvider(input, requestContext);
|
|
209
210
|
Object.assign(headers, dynamicHeaders);
|
|
210
211
|
log.debug('Added headers from headerProvider', { keys: Object.keys(dynamicHeaders) });
|
|
211
212
|
}
|
|
@@ -333,7 +334,8 @@ function convertOperation(path, method, operation, spec, baseURL, options, pathP
|
|
|
333
334
|
if (transformed.body !== undefined)
|
|
334
335
|
finalBody = transformed.body;
|
|
335
336
|
}
|
|
336
|
-
const
|
|
337
|
+
const fetchFn = options.fetcher || fetch;
|
|
338
|
+
const response = await fetchFn(finalUrl, {
|
|
337
339
|
method: finalMethod,
|
|
338
340
|
headers: finalHeaders,
|
|
339
341
|
body: finalBody,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-loader.js","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openapi-loader.js","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/atp-server",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"description": "Server implementation for Agent Tool Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"@babel/parser": "^7.26.0",
|
|
50
50
|
"@babel/traverse": "^7.26.0",
|
|
51
51
|
"@babel/types": "^7.26.0",
|
|
52
|
-
"@mondaydotcomorg/atp-compiler": "0.22.
|
|
53
|
-
"@mondaydotcomorg/atp-protocol": "0.22.
|
|
54
|
-
"@mondaydotcomorg/atp-provenance": "0.22.
|
|
55
|
-
"@mondaydotcomorg/atp-providers": "0.22.
|
|
56
|
-
"@mondaydotcomorg/atp-runtime": "0.22.
|
|
52
|
+
"@mondaydotcomorg/atp-compiler": "0.22.1",
|
|
53
|
+
"@mondaydotcomorg/atp-protocol": "0.22.1",
|
|
54
|
+
"@mondaydotcomorg/atp-provenance": "0.22.1",
|
|
55
|
+
"@mondaydotcomorg/atp-providers": "0.22.1",
|
|
56
|
+
"@mondaydotcomorg/atp-runtime": "0.22.1",
|
|
57
57
|
"@opentelemetry/api": "^1.9.0",
|
|
58
58
|
"@opentelemetry/auto-instrumentations-node": "^0.66.0",
|
|
59
59
|
"@opentelemetry/core": "^2.2.0",
|
package/src/client-sessions.ts
CHANGED
|
@@ -74,10 +74,9 @@ export class ClientSessionManager {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
private ensureClientJWT(token: string, clientId: string
|
|
77
|
+
private ensureClientJWT(token: string, clientId: string) {
|
|
78
78
|
const decoded = jwt.verify(token, this.jwtSecret, {
|
|
79
79
|
algorithms: ['HS256'],
|
|
80
|
-
ignoreExpiration,
|
|
81
80
|
}) as { clientId: string; type: string };
|
|
82
81
|
|
|
83
82
|
if (decoded.clientId !== clientId || decoded.type !== 'client') {
|
|
@@ -136,27 +135,6 @@ export class ClientSessionManager {
|
|
|
136
135
|
}
|
|
137
136
|
}
|
|
138
137
|
|
|
139
|
-
/**
|
|
140
|
-
* Verify client token for refresh purposes - allows expired JWT tokens.
|
|
141
|
-
* This is used during token refresh when the JWT may have expired but
|
|
142
|
-
* the session still exists in cache.
|
|
143
|
-
*/
|
|
144
|
-
async verifyClientForRefresh(clientId: string, token: string): Promise<boolean> {
|
|
145
|
-
try {
|
|
146
|
-
// Verify token structure but ignore expiration - token refresh should work
|
|
147
|
-
// even if the JWT has expired, as long as the session still exists in cache
|
|
148
|
-
if (!this.ensureClientJWT(token, clientId, true)) {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Check if session exists in cache - don't check session.expiresAt
|
|
153
|
-
const session = await this.cache.get<ClientSession>(`session:${clientId}`);
|
|
154
|
-
return session !== null;
|
|
155
|
-
} catch {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
138
|
/**
|
|
161
139
|
* Get client session
|
|
162
140
|
*/
|
|
@@ -207,47 +185,6 @@ export class ClientSessionManager {
|
|
|
207
185
|
);
|
|
208
186
|
}
|
|
209
187
|
|
|
210
|
-
/**
|
|
211
|
-
* Refresh token for an existing client session.
|
|
212
|
-
* Returns new token credentials if session exists in cache.
|
|
213
|
-
* This works even if the session's expiresAt has passed - the refresh
|
|
214
|
-
* will update expiresAt to extend the session.
|
|
215
|
-
*/
|
|
216
|
-
async refreshToken(clientId: string): Promise<ClientInitResponse | null> {
|
|
217
|
-
// Get session directly from cache without expiry check
|
|
218
|
-
const session = await this.cache.get<ClientSession>(`session:${clientId}`);
|
|
219
|
-
if (!session) {
|
|
220
|
-
// Throw happens in handler
|
|
221
|
-
return null;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// Remove old client session entry.
|
|
225
|
-
await this.cache.delete(`session:${clientId}`);;
|
|
226
|
-
|
|
227
|
-
const newClientId = this.generateClientId();
|
|
228
|
-
const now = Date.now();
|
|
229
|
-
const newExpiresAt = now + this.tokenTTL;
|
|
230
|
-
const newTokenRotateAt = now + this.tokenRotation;
|
|
231
|
-
|
|
232
|
-
// Update session with both new clientId and new expiresAt
|
|
233
|
-
const updatedSession: ClientSession = {
|
|
234
|
-
...session,
|
|
235
|
-
clientId,
|
|
236
|
-
expiresAt: newExpiresAt,
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
await this.cache.set(`session:${newClientId}`, updatedSession);
|
|
240
|
-
|
|
241
|
-
const newToken = this.generateToken(newClientId);
|
|
242
|
-
|
|
243
|
-
return {
|
|
244
|
-
clientId: newClientId,
|
|
245
|
-
token: newToken,
|
|
246
|
-
expiresAt: newExpiresAt,
|
|
247
|
-
tokenRotateAt: newTokenRotateAt,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
|
|
251
188
|
/**
|
|
252
189
|
* Get token TTL and rotation settings (useful for clients)
|
|
253
190
|
*/
|
package/src/create-server.ts
CHANGED
|
@@ -39,7 +39,6 @@ import { handleSearch, handleSearchQuery } from './handlers/search.handler.js';
|
|
|
39
39
|
import { handleExplore } from './handlers/explorer.handler.js';
|
|
40
40
|
import { handleExecute } from './handlers/execute.handler.js';
|
|
41
41
|
import { handleResume } from './handlers/resume.handler.js';
|
|
42
|
-
import { handleTokenRefresh } from './handlers/token.handler.js';
|
|
43
42
|
import { getDefinitions } from './handlers/definitions.handler.js';
|
|
44
43
|
import { shutdownAudit } from './middleware/audit.js';
|
|
45
44
|
import {
|
|
@@ -159,7 +158,7 @@ export class AgentToolProtocolServer {
|
|
|
159
158
|
}
|
|
160
159
|
|
|
161
160
|
if (!this.cacheProvider) {
|
|
162
|
-
this.cacheProvider = new MemoryCache({ maxKeys: 1000, defaultTTL: 3600 });
|
|
161
|
+
this.cacheProvider = new MemoryCache({ maxKeys: 1000, defaultTTL: 24 * 3600 });
|
|
163
162
|
log.info('Cache provider configured (default)', { provider: 'memory' });
|
|
164
163
|
}
|
|
165
164
|
|
|
@@ -612,11 +611,6 @@ export class AgentToolProtocolServer {
|
|
|
612
611
|
);
|
|
613
612
|
}
|
|
614
613
|
|
|
615
|
-
async handleTokenRefresh(ctx: RequestContext): Promise<unknown> {
|
|
616
|
-
if (!this.sessionManager) ctx.throw(503, 'Session manager not initialized');
|
|
617
|
-
return await handleTokenRefresh(ctx, this.sessionManager);
|
|
618
|
-
}
|
|
619
|
-
|
|
620
614
|
/**
|
|
621
615
|
* Update server components with new API groups (internal method)
|
|
622
616
|
* @private
|
package/src/graphql-loader.ts
CHANGED
|
@@ -31,11 +31,11 @@ import fs from 'node:fs/promises';
|
|
|
31
31
|
* Dynamic header provider for GraphQL requests.
|
|
32
32
|
*
|
|
33
33
|
* @param params - The GraphQL query parameters
|
|
34
|
-
* @param
|
|
34
|
+
* @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
|
|
35
35
|
*/
|
|
36
36
|
export type GraphQLAuthProvider = (
|
|
37
37
|
params?: Record<string, any>,
|
|
38
|
-
|
|
38
|
+
requestContext?: Record<string, any>
|
|
39
39
|
) => Promise<Record<string, string>> | Record<string, string>;
|
|
40
40
|
|
|
41
41
|
/**
|
|
@@ -43,12 +43,12 @@ export type GraphQLAuthProvider = (
|
|
|
43
43
|
* Priority: headerProvider > authProvider + auth > static headers
|
|
44
44
|
* @param options - Load options including auth config
|
|
45
45
|
* @param params - Optional request params passed to headerProvider for dynamic resolution
|
|
46
|
-
* @param
|
|
46
|
+
* @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
|
|
47
47
|
*/
|
|
48
48
|
async function resolveHeaders(
|
|
49
49
|
options: LoadGraphQLOptions,
|
|
50
50
|
params?: Record<string, any>,
|
|
51
|
-
|
|
51
|
+
requestContext?: Record<string, any>
|
|
52
52
|
): Promise<Record<string, string>> {
|
|
53
53
|
const headers: Record<string, string> = {};
|
|
54
54
|
|
|
@@ -65,10 +65,11 @@ async function resolveHeaders(
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (options.headerProvider) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
let ctx = requestContext;
|
|
69
|
+
if (options.contextProvider) {
|
|
70
|
+
ctx = await options.contextProvider(requestContext);
|
|
71
|
+
}
|
|
72
|
+
const dynamicHeaders = await options.headerProvider(params, ctx);
|
|
72
73
|
Object.assign(headers, dynamicHeaders);
|
|
73
74
|
}
|
|
74
75
|
|
|
@@ -193,10 +194,11 @@ export interface LoadGraphQLOptions {
|
|
|
193
194
|
headers?: Record<string, string>;
|
|
194
195
|
/** Auth provider for dynamic credential resolution */
|
|
195
196
|
authProvider?: AuthProvider;
|
|
196
|
-
/** Dynamic header provider function - called before each request */
|
|
197
|
+
/** Dynamic header provider function - called before each request with params and requestContext */
|
|
197
198
|
headerProvider?: GraphQLAuthProvider;
|
|
198
|
-
/**
|
|
199
|
-
*
|
|
199
|
+
/**
|
|
200
|
+
* @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
|
|
201
|
+
*/
|
|
200
202
|
contextProvider?: (
|
|
201
203
|
executionContext?: Record<string, any>
|
|
202
204
|
) => Record<string, any> | Promise<Record<string, any>>;
|
|
@@ -204,6 +206,28 @@ export interface LoadGraphQLOptions {
|
|
|
204
206
|
auth?: AuthConfig;
|
|
205
207
|
depthLimit?: number;
|
|
206
208
|
queryDepthLimit?: number;
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Custom fetch function for full control over the HTTP transport layer.
|
|
212
|
+
* Use this when the target API requires custom TLS certificates (mTLS, custom CA),
|
|
213
|
+
* a proxy, or any other transport-level configuration that headers alone cannot provide.
|
|
214
|
+
*
|
|
215
|
+
* Applied to both schema loading and runtime GraphQL requests.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* import { Agent } from 'undici';
|
|
220
|
+
*
|
|
221
|
+
* const mtlsAgent = new Agent({
|
|
222
|
+
* connect: { ca: fs.readFileSync('/certs/ca.pem') },
|
|
223
|
+
* });
|
|
224
|
+
*
|
|
225
|
+
* await server.loadGraphQL('https://api.example.com/graphql', {
|
|
226
|
+
* fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
|
|
227
|
+
* });
|
|
228
|
+
* ```
|
|
229
|
+
*/
|
|
230
|
+
fetcher?: (url: string, init: RequestInit) => Promise<Response>;
|
|
207
231
|
}
|
|
208
232
|
|
|
209
233
|
/**
|
|
@@ -244,10 +268,11 @@ export async function loadGraphQL(
|
|
|
244
268
|
async function loadSchema(source: string, options: LoadGraphQLOptions): Promise<GraphQLSchema> {
|
|
245
269
|
// Check if source is a URL
|
|
246
270
|
if (source.startsWith('http://') || source.startsWith('https://')) {
|
|
271
|
+
const fetchFn = options.fetcher || fetch;
|
|
247
272
|
// Resolve headers for schema loading
|
|
248
273
|
const headers = await resolveHeaders(options);
|
|
249
274
|
|
|
250
|
-
const response = await
|
|
275
|
+
const response = await fetchFn(source, {
|
|
251
276
|
method: 'POST',
|
|
252
277
|
headers: {
|
|
253
278
|
'Content-Type': 'application/json',
|
|
@@ -258,7 +283,8 @@ async function loadSchema(source: string, options: LoadGraphQLOptions): Promise<
|
|
|
258
283
|
|
|
259
284
|
if (!response.ok) {
|
|
260
285
|
// If POST with introspection fails, try GET assuming it might return SDL or JSON
|
|
261
|
-
const getResponse = await
|
|
286
|
+
const getResponse = await fetchFn(source, {
|
|
287
|
+
method: 'GET',
|
|
262
288
|
headers,
|
|
263
289
|
});
|
|
264
290
|
if (getResponse.ok) {
|
|
@@ -318,7 +344,7 @@ function convertFieldToFunction(
|
|
|
318
344
|
description,
|
|
319
345
|
inputSchema,
|
|
320
346
|
outputSchema,
|
|
321
|
-
handler: async (params: unknown, context?: { metadata?: Record<string, any> }) => {
|
|
347
|
+
handler: async (params: unknown, context?: { metadata?: Record<string, any>; requestContext?: Record<string, unknown> }) => {
|
|
322
348
|
const paramsObj = (params as Record<string, any>) || {};
|
|
323
349
|
const customFields = paramsObj._fields;
|
|
324
350
|
|
|
@@ -349,10 +375,10 @@ function convertFieldToFunction(
|
|
|
349
375
|
context.metadata.graphql_variables = variables;
|
|
350
376
|
}
|
|
351
377
|
|
|
352
|
-
|
|
353
|
-
const headers = await resolveHeaders(options, paramsObj, context);
|
|
378
|
+
const headers = await resolveHeaders(options, paramsObj, context?.requestContext);
|
|
354
379
|
|
|
355
|
-
const
|
|
380
|
+
const fetchFn = options.fetcher || fetch;
|
|
381
|
+
const response = await fetchFn(url, {
|
|
356
382
|
method: 'POST',
|
|
357
383
|
headers: {
|
|
358
384
|
'Content-Type': 'application/json',
|
package/src/http/router.ts
CHANGED
|
@@ -24,8 +24,6 @@ export async function handleRoute(
|
|
|
24
24
|
} else if (ctx.path.startsWith('/api/resume/') && ctx.method === 'POST') {
|
|
25
25
|
const executionId = ctx.path.substring('/api/resume/'.length);
|
|
26
26
|
ctx.responseBody = await server.handleResume(ctx, executionId);
|
|
27
|
-
} else if (ctx.path === '/api/token/refresh' && ctx.method === 'POST') {
|
|
28
|
-
ctx.responseBody = await server.handleTokenRefresh(ctx);
|
|
29
27
|
} else {
|
|
30
28
|
ctx.status = 404;
|
|
31
29
|
ctx.responseBody = { error: 'Not found' };
|
package/src/openapi-loader.ts
CHANGED
|
@@ -166,21 +166,18 @@ export interface LoadOpenAPIOptions {
|
|
|
166
166
|
|
|
167
167
|
/**
|
|
168
168
|
* Dynamic header provider for per-request authentication (e.g., per-user OAuth).
|
|
169
|
-
*
|
|
169
|
+
* Called before each API request with the request parameters and the execution's requestContext.
|
|
170
170
|
* @param params - The request parameters
|
|
171
|
-
* @param
|
|
171
|
+
* @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
|
|
172
172
|
* @returns Headers to add to the request
|
|
173
173
|
*/
|
|
174
174
|
headerProvider?: (
|
|
175
175
|
params: Record<string, unknown> | undefined,
|
|
176
|
-
|
|
176
|
+
requestContext?: Record<string, unknown>
|
|
177
177
|
) => Promise<Record<string, string>> | Record<string, string>;
|
|
178
178
|
|
|
179
179
|
/**
|
|
180
|
-
*
|
|
181
|
-
* Similar to GraphQL's contextProvider. Called once per request.
|
|
182
|
-
* @param executionContext - The execution context from ATP
|
|
183
|
-
* @returns Context object passed to headerProvider
|
|
180
|
+
* @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
|
|
184
181
|
*/
|
|
185
182
|
contextProvider?: (
|
|
186
183
|
executionContext?: Record<string, unknown>
|
|
@@ -210,6 +207,35 @@ export interface LoadOpenAPIOptions {
|
|
|
210
207
|
headers?: Record<string, string>;
|
|
211
208
|
body?: string | undefined;
|
|
212
209
|
};
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Custom fetch function for full control over the HTTP transport layer.
|
|
213
|
+
* Use this when the target API requires custom TLS certificates (mTLS, custom CA),
|
|
214
|
+
* a proxy, or any other transport-level configuration that headers alone cannot provide.
|
|
215
|
+
*
|
|
216
|
+
* The function receives the URL and standard RequestInit on every request,
|
|
217
|
+
* making it inherently dynamic — you can route to different agents based on the URL.
|
|
218
|
+
*
|
|
219
|
+
* Applied to both spec loading and runtime API calls.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* import { Agent } from 'undici';
|
|
224
|
+
*
|
|
225
|
+
* const mtlsAgent = new Agent({
|
|
226
|
+
* connect: {
|
|
227
|
+
* ca: fs.readFileSync('/certs/ca.pem'),
|
|
228
|
+
* cert: fs.readFileSync('/certs/client.pem'),
|
|
229
|
+
* key: fs.readFileSync('/certs/client-key.pem'),
|
|
230
|
+
* },
|
|
231
|
+
* });
|
|
232
|
+
*
|
|
233
|
+
* await server.loadOpenAPI('https://partner-api.example.com/spec.json', {
|
|
234
|
+
* fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
|
|
235
|
+
* });
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
fetcher?: (url: string, init: RequestInit) => Promise<Response>;
|
|
213
239
|
}
|
|
214
240
|
|
|
215
241
|
/**
|
|
@@ -233,7 +259,7 @@ export async function loadOpenAPI(
|
|
|
233
259
|
source: string,
|
|
234
260
|
options: LoadOpenAPIOptions = {}
|
|
235
261
|
): Promise<APIGroupConfig> {
|
|
236
|
-
const spec = await loadSpec(source);
|
|
262
|
+
const spec = await loadSpec(source, options.fetcher);
|
|
237
263
|
|
|
238
264
|
const name = options.name || spec.info.title.toLowerCase().replace(/\s+/g, '-');
|
|
239
265
|
|
|
@@ -297,12 +323,16 @@ export async function loadOpenAPI(
|
|
|
297
323
|
/**
|
|
298
324
|
* Load OpenAPI spec from file or URL
|
|
299
325
|
*/
|
|
300
|
-
async function loadSpec(
|
|
326
|
+
async function loadSpec(
|
|
327
|
+
source: string,
|
|
328
|
+
fetcher?: (url: string, init: RequestInit) => Promise<Response>
|
|
329
|
+
): Promise<APISpec> {
|
|
301
330
|
let content: string;
|
|
302
331
|
let isYaml = false;
|
|
303
332
|
|
|
304
333
|
if (source.startsWith('http://') || source.startsWith('https://')) {
|
|
305
|
-
const
|
|
334
|
+
const fetchFn = fetcher || fetch;
|
|
335
|
+
const response = await fetchFn(source, { method: 'GET' });
|
|
306
336
|
if (!response.ok) {
|
|
307
337
|
throw new Error(`Failed to load OpenAPI spec from ${source}: ${response.statusText}`);
|
|
308
338
|
}
|
|
@@ -482,13 +512,12 @@ function convertOperation(
|
|
|
482
512
|
'Content-Type': 'application/json',
|
|
483
513
|
};
|
|
484
514
|
|
|
485
|
-
let context: Record<string, unknown> | undefined;
|
|
486
|
-
if (options.contextProvider) {
|
|
487
|
-
context = await options.contextProvider(handlerContext?.requestContext);
|
|
488
|
-
}
|
|
489
|
-
|
|
490
515
|
if (options.headerProvider) {
|
|
491
|
-
|
|
516
|
+
let requestContext = handlerContext?.requestContext;
|
|
517
|
+
if (options.contextProvider) {
|
|
518
|
+
requestContext = await options.contextProvider(requestContext);
|
|
519
|
+
}
|
|
520
|
+
const dynamicHeaders = await options.headerProvider(input, requestContext);
|
|
492
521
|
Object.assign(headers, dynamicHeaders);
|
|
493
522
|
log.debug('Added headers from headerProvider', { keys: Object.keys(dynamicHeaders) });
|
|
494
523
|
}
|
|
@@ -625,7 +654,8 @@ function convertOperation(
|
|
|
625
654
|
if (transformed.body !== undefined) finalBody = transformed.body;
|
|
626
655
|
}
|
|
627
656
|
|
|
628
|
-
const
|
|
657
|
+
const fetchFn = options.fetcher || fetch;
|
|
658
|
+
const response = await fetchFn(finalUrl, {
|
|
629
659
|
method: finalMethod,
|
|
630
660
|
headers: finalHeaders,
|
|
631
661
|
body: finalBody,
|