@optimizely-opal/opal-tool-ocp-sdk 1.0.0 → 1.1.0-beta.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/README.md +39 -3
- package/dist/function/GlobalToolFunction.d.ts +4 -1
- package/dist/function/GlobalToolFunction.d.ts.map +1 -1
- package/dist/function/GlobalToolFunction.js +25 -19
- package/dist/function/GlobalToolFunction.js.map +1 -1
- package/dist/function/GlobalToolFunction.test.js +114 -193
- package/dist/function/GlobalToolFunction.test.js.map +1 -1
- package/dist/function/ToolFunction.d.ts +4 -1
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +20 -21
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +73 -263
- package/dist/function/ToolFunction.test.js.map +1 -1
- package/dist/service/Service.d.ts +10 -9
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +42 -74
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +60 -95
- package/dist/service/Service.test.js.map +1 -1
- package/dist/utils/ErrorFormatter.d.ts +9 -0
- package/dist/utils/ErrorFormatter.d.ts.map +1 -0
- package/dist/utils/ErrorFormatter.js +25 -0
- package/dist/utils/ErrorFormatter.js.map +1 -0
- package/package.json +1 -1
- package/src/function/GlobalToolFunction.test.ts +113 -213
- package/src/function/GlobalToolFunction.ts +29 -29
- package/src/function/ToolFunction.test.ts +78 -285
- package/src/function/ToolFunction.ts +24 -30
- package/src/service/Service.test.ts +61 -113
- package/src/service/Service.ts +45 -79
- package/src/utils/ErrorFormatter.ts +31 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ A TypeScript SDK for building Opal tools in Optimizely Connect Platform. This SD
|
|
|
10
10
|
- 🌐 **Global and Regular Function Modes** - SDK can be used in either global or organization-scoped mode
|
|
11
11
|
- 🔧 **Type-safe Development** - Full TypeScript support with comprehensive type definitions
|
|
12
12
|
- 🏗️ **Abstract Base Classes** - Extend `ToolFunction` or `GlobalToolFunction` for standardized request processing
|
|
13
|
-
- 🔐 **Authentication Support** - OptiID authentication
|
|
13
|
+
- 🔐 **Authentication Support** - OptiID authentication (default), custom auth providers supported
|
|
14
14
|
- 🛡️ **Authorization Support** - OptiID token tool authorization
|
|
15
15
|
- 📝 **Parameter Validation** - Define and validate tool parameters with types
|
|
16
16
|
- ✅ **Automatic Validation** - SDK automatically validates parameters and returns RFC 9457 compliant error responses
|
|
@@ -173,9 +173,9 @@ This allow Opal to auto-correct.
|
|
|
173
173
|
|
|
174
174
|
The SDK supports authentication and authorization mechanisms:
|
|
175
175
|
|
|
176
|
-
#### OptiID Authentication
|
|
176
|
+
#### OptiID Authentication (Default)
|
|
177
177
|
|
|
178
|
-
OptiID provides user authentication with type safety.
|
|
178
|
+
OptiID provides user authentication with type safety. When a tool does not declare any `authRequirements`, the SDK automatically adds OptiID as the default authentication provider:
|
|
179
179
|
|
|
180
180
|
```typescript
|
|
181
181
|
interface AuthRequirementConfig {
|
|
@@ -221,6 +221,42 @@ export class MyToolFunction extends ToolFunction {
|
|
|
221
221
|
}
|
|
222
222
|
```
|
|
223
223
|
|
|
224
|
+
#### Custom Auth Providers
|
|
225
|
+
|
|
226
|
+
Tools can declare custom authentication providers instead of using the default OptiID. When a tool specifies its own `authRequirements`, the SDK respects that choice and skips its built-in authentication validation:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
@tool({
|
|
230
|
+
name: 'external_api_tool',
|
|
231
|
+
description: 'Tool that uses external OAuth2 authentication',
|
|
232
|
+
endpoint: '/external-api',
|
|
233
|
+
parameters: [
|
|
234
|
+
{ name: 'query', type: ParameterType.String, description: 'Search query', required: true }
|
|
235
|
+
],
|
|
236
|
+
authRequirements: [{ provider: 'google', scopeBundle: 'calendar', required: true }]
|
|
237
|
+
})
|
|
238
|
+
async externalApiTool(params: { query: string }, authData?: any) {
|
|
239
|
+
// SDK does NOT validate oauth2 credentials
|
|
240
|
+
// Your handler must validate the auth credentials
|
|
241
|
+
// Validate token with your external provider
|
|
242
|
+
const isValid = await this.validateOAuth2Token(authData.credentials.access_token);
|
|
243
|
+
if (!isValid) {
|
|
244
|
+
throw new ToolError('Invalid OAuth2 token', 401);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return { results: await this.searchExternalApi(params.query) };
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Important Security Considerations:**
|
|
252
|
+
|
|
253
|
+
> **Warning**: Tools using non-OptiID authentication should NOT expose sensitive data from app settings (such as API keys, secrets, or organization-specific configuration).
|
|
254
|
+
>
|
|
255
|
+
> - **OptiID auth** guarantees the caller is authorized for the specific organization and the request is from a trusted Opal instance
|
|
256
|
+
> - **Non-OptiID auth** only guarantees the credentials are valid for that provider - it does NOT guarantee the caller is authorized for the organization or app
|
|
257
|
+
>
|
|
258
|
+
> Only credentials for the declared auth provider are validated. If your tool declares `google` auth requirement, the SDK will pass through whatever credentials Opal sends without SDK-level validation. Your handler is fully responsible for credential validation and access control.
|
|
259
|
+
|
|
224
260
|
## Error Handling
|
|
225
261
|
|
|
226
262
|
The SDK provides RFC 9457 Problem Details compliant error handling through the `ToolError` class. This allows you to throw errors with custom HTTP status codes and detailed error information.
|
|
@@ -20,7 +20,10 @@ export declare abstract class GlobalToolFunction extends GlobalFunction {
|
|
|
20
20
|
perform(): Promise<Response>;
|
|
21
21
|
private handleRequest;
|
|
22
22
|
/**
|
|
23
|
-
* Authenticate the incoming request
|
|
23
|
+
* Authenticate the incoming request based on the endpoint
|
|
24
|
+
* - /discovery: No auth required
|
|
25
|
+
* - /overrides: Internal auth (header-based token)
|
|
26
|
+
* - Tools/interactions: Global auth if OptiID is required
|
|
24
27
|
*
|
|
25
28
|
* @throws {ToolError} If authentication fails
|
|
26
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAmB,MAAM,mBAAmB,CAAC;AAI9E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;GAGG;AACH,8BAAsB,kBAAmB,SAAQ,cAAc;IAE7D;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;IAInD;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;YAmB3B,aAAa;IAkB3B;;;;;;;OAOG;YACW,gBAAgB;CAiB/B"}
|
|
@@ -5,7 +5,7 @@ const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
|
5
5
|
const AuthUtils_1 = require("../auth/AuthUtils");
|
|
6
6
|
const Service_1 = require("../service/Service");
|
|
7
7
|
const ToolLogger_1 = require("../logging/ToolLogger");
|
|
8
|
-
const
|
|
8
|
+
const ErrorFormatter_1 = require("../utils/ErrorFormatter");
|
|
9
9
|
/**
|
|
10
10
|
* Abstract base class for global tool-based function execution
|
|
11
11
|
* Provides a standard interface for processing requests through registered tools
|
|
@@ -40,21 +40,6 @@ class GlobalToolFunction extends app_sdk_1.GlobalFunction {
|
|
|
40
40
|
return response;
|
|
41
41
|
}
|
|
42
42
|
async handleRequest() {
|
|
43
|
-
try {
|
|
44
|
-
await this.authorizeRequest();
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
if (error instanceof ToolError_1.ToolError) {
|
|
48
|
-
return new app_sdk_1.Response(error.status, error.toProblemDetails(this.request.path), new app_sdk_1.Headers([['content-type', 'application/problem+json']]));
|
|
49
|
-
}
|
|
50
|
-
// Fallback for unexpected errors
|
|
51
|
-
return new app_sdk_1.Response(500, {
|
|
52
|
-
title: 'Internal Server Error',
|
|
53
|
-
status: 500,
|
|
54
|
-
detail: 'An unexpected error occurred during authentication',
|
|
55
|
-
instance: this.request.path
|
|
56
|
-
}, new app_sdk_1.Headers([['content-type', 'application/problem+json']]));
|
|
57
|
-
}
|
|
58
43
|
if (this.request.path === '/ready') {
|
|
59
44
|
const readyResult = await this.ready();
|
|
60
45
|
const readyResponse = typeof readyResult === 'boolean'
|
|
@@ -62,15 +47,36 @@ class GlobalToolFunction extends app_sdk_1.GlobalFunction {
|
|
|
62
47
|
: readyResult;
|
|
63
48
|
return new app_sdk_1.Response(200, readyResponse);
|
|
64
49
|
}
|
|
65
|
-
|
|
50
|
+
try {
|
|
51
|
+
await this.authorizeRequest();
|
|
52
|
+
return await Service_1.toolsService.processRequest(this.request, this);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return (0, ErrorFormatter_1.formatErrorResponse)(error, this.request.path);
|
|
56
|
+
}
|
|
66
57
|
}
|
|
67
58
|
/**
|
|
68
|
-
* Authenticate the incoming request
|
|
59
|
+
* Authenticate the incoming request based on the endpoint
|
|
60
|
+
* - /discovery: No auth required
|
|
61
|
+
* - /overrides: Internal auth (header-based token)
|
|
62
|
+
* - Tools/interactions: Global auth if OptiID is required
|
|
69
63
|
*
|
|
70
64
|
* @throws {ToolError} If authentication fails
|
|
71
65
|
*/
|
|
72
66
|
async authorizeRequest() {
|
|
73
|
-
|
|
67
|
+
// Discovery endpoint doesn't require auth
|
|
68
|
+
if (this.request.path === '/discovery') {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Use internal authentication for overrides endpoint (header-based token)
|
|
72
|
+
if (this.request.path === '/overrides') {
|
|
73
|
+
await (0, AuthUtils_1.authenticateInternalRequest)(this.request);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Tool/interaction endpoints - authenticate only if OptiID is required
|
|
77
|
+
if (Service_1.toolsService.requiresOptiIdAuth(this.request.path)) {
|
|
78
|
+
await (0, AuthUtils_1.authenticateGlobalRequest)(this.request);
|
|
79
|
+
}
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
82
|
exports.GlobalToolFunction = GlobalToolFunction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalToolFunction.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":";;;AAAA,+CAA8E;AAC9E,iDAA4G;AAC5G,gDAAkD;AAClD,sDAAmD;AAEnD,4DAA8D;AAE9D;;;GAGG;AACH,MAAsB,kBAAmB,SAAQ,wBAAc;IAE7D;;;;;OAKG;IACO,KAAK;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;QAEhE,IAAA,yBAAe,EAAC;YACd,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;YAChE,UAAU,EAAE,UAAU,IAAI,EAAE;SAC7B,CAAC,CAAC;QAEH,uBAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,SAAS;gBACpD,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;gBACxB,CAAC,CAAC,WAAW,CAAC;YAChB,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE9B,OAAO,MAAM,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAA,oCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,gBAAgB;QAC5B,0CAA0C;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,IAAA,uCAA2B,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,IAAI,sBAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAA,qCAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AA/ED,gDA+EC"}
|
|
@@ -4,15 +4,23 @@ const GlobalToolFunction_1 = require("./GlobalToolFunction");
|
|
|
4
4
|
const Service_1 = require("../service/Service");
|
|
5
5
|
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
6
6
|
const TokenVerifier_1 = require("../auth/TokenVerifier");
|
|
7
|
+
const ToolError_1 = require("../types/ToolError");
|
|
8
|
+
const AuthUtils_1 = require("../auth/AuthUtils");
|
|
7
9
|
// Mock the dependencies
|
|
8
10
|
jest.mock('../service/Service', () => ({
|
|
9
11
|
toolsService: {
|
|
10
12
|
processRequest: jest.fn(),
|
|
13
|
+
requiresOptiIdAuth: jest.fn(),
|
|
11
14
|
},
|
|
12
15
|
}));
|
|
13
16
|
jest.mock('../auth/TokenVerifier', () => ({
|
|
14
17
|
getTokenVerifier: jest.fn(),
|
|
15
18
|
}));
|
|
19
|
+
jest.mock('../auth/AuthUtils', () => ({
|
|
20
|
+
authenticateGlobalRequest: jest.fn().mockResolvedValue(undefined),
|
|
21
|
+
authenticateInternalRequest: jest.fn().mockResolvedValue(undefined),
|
|
22
|
+
extractAuthData: jest.fn().mockReturnValue(null),
|
|
23
|
+
}));
|
|
16
24
|
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
17
25
|
GlobalFunction: class {
|
|
18
26
|
request;
|
|
@@ -159,6 +167,7 @@ describe('GlobalToolFunction', () => {
|
|
|
159
167
|
// Assert
|
|
160
168
|
expect(result).toBe(mockResponse);
|
|
161
169
|
expect(mockGetTokenVerifier).not.toHaveBeenCalled(); // Should not verify token for discovery
|
|
170
|
+
// processRequest is called without authValidator (auth handled internally)
|
|
162
171
|
expect(mockProcessRequest).toHaveBeenCalledWith(discoveryRequest, globalToolFunction);
|
|
163
172
|
});
|
|
164
173
|
});
|
|
@@ -250,237 +259,149 @@ describe('GlobalToolFunction', () => {
|
|
|
250
259
|
});
|
|
251
260
|
});
|
|
252
261
|
describe('perform', () => {
|
|
253
|
-
it('should
|
|
254
|
-
// Setup mock
|
|
255
|
-
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
262
|
+
it('should call processRequest and return its result', async () => {
|
|
263
|
+
// Setup mock to return a response
|
|
256
264
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
257
265
|
const result = await globalToolFunction.perform();
|
|
258
266
|
expect(result).toBe(mockResponse);
|
|
259
|
-
|
|
260
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
261
|
-
// Note: getAppContext should NOT be called for global functions
|
|
262
|
-
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
267
|
+
// processRequest is called with request and context (no authValidator)
|
|
263
268
|
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, globalToolFunction);
|
|
264
269
|
});
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
270
|
+
});
|
|
271
|
+
describe('inheritance', () => {
|
|
272
|
+
it('should be an instance of GlobalFunction', () => {
|
|
273
|
+
// Assert
|
|
274
|
+
expect(globalToolFunction).toBeInstanceOf(GlobalToolFunction_1.GlobalToolFunction);
|
|
275
|
+
});
|
|
276
|
+
it('should have access to the request property', () => {
|
|
277
|
+
// Assert
|
|
278
|
+
expect(globalToolFunction.getRequest()).toBe(mockRequest);
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
describe('system paths routing', () => {
|
|
282
|
+
beforeEach(() => {
|
|
283
|
+
jest.clearAllMocks();
|
|
284
|
+
});
|
|
285
|
+
it('should forward /overrides to processRequest directly', async () => {
|
|
286
|
+
const overridesRequest = {
|
|
287
|
+
path: '/overrides',
|
|
288
|
+
method: 'DELETE',
|
|
289
|
+
bodyJSON: {},
|
|
290
|
+
headers: {
|
|
291
|
+
get: jest.fn().mockImplementation((name) => {
|
|
292
|
+
if (name === 'x-opal-thread-id')
|
|
293
|
+
return 'test-thread-id';
|
|
294
|
+
return null;
|
|
295
|
+
})
|
|
278
296
|
}
|
|
279
297
|
};
|
|
280
|
-
const globalToolFunctionWithDifferentOrgId = new TestGlobalToolFunction(requestWithDifferentOrgId);
|
|
281
|
-
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
282
298
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
283
|
-
const
|
|
299
|
+
const globalFunc = new TestGlobalToolFunction(overridesRequest);
|
|
300
|
+
const result = await globalFunc.perform();
|
|
284
301
|
expect(result).toBe(mockResponse);
|
|
285
|
-
|
|
286
|
-
expect(
|
|
287
|
-
// Note: Should NOT validate organization ID for global functions
|
|
288
|
-
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
289
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithDifferentOrgId, globalToolFunctionWithDifferentOrgId);
|
|
302
|
+
// /overrides is forwarded directly to processRequest (auth handled there)
|
|
303
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, globalFunc);
|
|
290
304
|
});
|
|
291
|
-
it('should
|
|
292
|
-
|
|
293
|
-
const requestWithoutCustomerId = {
|
|
305
|
+
it('should forward tool endpoints to processRequest', async () => {
|
|
306
|
+
const toolRequest = {
|
|
294
307
|
...mockRequest,
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
303
|
-
}
|
|
308
|
+
path: '/some-tool',
|
|
309
|
+
headers: {
|
|
310
|
+
get: jest.fn().mockImplementation((name) => {
|
|
311
|
+
if (name === 'x-opal-thread-id')
|
|
312
|
+
return 'test-thread-id';
|
|
313
|
+
return null;
|
|
314
|
+
})
|
|
304
315
|
}
|
|
305
316
|
};
|
|
306
|
-
|
|
307
|
-
|
|
317
|
+
// Tool does not require OptiID auth
|
|
318
|
+
Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
|
|
308
319
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
309
|
-
const
|
|
320
|
+
const globalFunc = new TestGlobalToolFunction(toolRequest);
|
|
321
|
+
const result = await globalFunc.perform();
|
|
310
322
|
expect(result).toBe(mockResponse);
|
|
311
|
-
expect(
|
|
312
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
313
|
-
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
314
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithoutCustomerId, globalToolFunctionWithoutCustomerId);
|
|
323
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(toolRequest, globalFunc);
|
|
315
324
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
expect(result.status).toBe(403);
|
|
321
|
-
expect(result.bodyJSON).toEqual({
|
|
322
|
-
title: 'Forbidden',
|
|
323
|
-
status: 403,
|
|
324
|
-
detail: 'Invalid OptiID access token',
|
|
325
|
-
instance: '/test'
|
|
326
|
-
});
|
|
327
|
-
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
328
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
329
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
325
|
+
});
|
|
326
|
+
describe('error formatting', () => {
|
|
327
|
+
beforeEach(() => {
|
|
328
|
+
jest.clearAllMocks();
|
|
330
329
|
});
|
|
331
|
-
it('should
|
|
332
|
-
|
|
333
|
-
const requestWithoutToken = {
|
|
330
|
+
it('should format ToolError as RFC 9457 response when processRequest throws ToolError', async () => {
|
|
331
|
+
const toolRequest = {
|
|
334
332
|
...mockRequest,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
}
|
|
333
|
+
path: '/some-tool',
|
|
334
|
+
headers: {
|
|
335
|
+
get: jest.fn().mockImplementation((name) => {
|
|
336
|
+
if (name === 'x-opal-thread-id')
|
|
337
|
+
return 'test-thread-id';
|
|
338
|
+
return null;
|
|
339
|
+
})
|
|
344
340
|
}
|
|
345
341
|
};
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
|
|
342
|
+
const toolError = new ToolError_1.ToolError('Resource not found', 404, 'The requested resource does not exist');
|
|
343
|
+
mockProcessRequest.mockRejectedValue(toolError);
|
|
344
|
+
Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
|
|
345
|
+
const globalFunc = new TestGlobalToolFunction(toolRequest);
|
|
346
|
+
const result = await globalFunc.perform();
|
|
347
|
+
expect(result.status).toBe(404);
|
|
349
348
|
expect(result.bodyJSON).toEqual({
|
|
350
|
-
title: '
|
|
351
|
-
status:
|
|
352
|
-
detail: '
|
|
353
|
-
instance: '/
|
|
349
|
+
title: 'Resource not found',
|
|
350
|
+
status: 404,
|
|
351
|
+
detail: 'The requested resource does not exist',
|
|
352
|
+
instance: '/some-tool'
|
|
354
353
|
});
|
|
355
|
-
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
356
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
357
354
|
});
|
|
358
|
-
it('should
|
|
359
|
-
|
|
360
|
-
const requestWithDifferentProvider = {
|
|
355
|
+
it('should format generic Error as 500 RFC 9457 response when processRequest throws', async () => {
|
|
356
|
+
const toolRequest = {
|
|
361
357
|
...mockRequest,
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
358
|
+
path: '/some-tool',
|
|
359
|
+
headers: {
|
|
360
|
+
get: jest.fn().mockImplementation((name) => {
|
|
361
|
+
if (name === 'x-opal-thread-id')
|
|
362
|
+
return 'test-thread-id';
|
|
363
|
+
return null;
|
|
364
|
+
})
|
|
368
365
|
}
|
|
369
366
|
};
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
367
|
+
mockProcessRequest.mockRejectedValue(new Error('Database connection failed'));
|
|
368
|
+
Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(false);
|
|
369
|
+
const globalFunc = new TestGlobalToolFunction(toolRequest);
|
|
370
|
+
const result = await globalFunc.perform();
|
|
371
|
+
expect(result.status).toBe(500);
|
|
373
372
|
expect(result.bodyJSON).toEqual({
|
|
374
|
-
title: '
|
|
375
|
-
status:
|
|
376
|
-
detail: '
|
|
377
|
-
instance: '/
|
|
373
|
+
title: 'Internal Server Error',
|
|
374
|
+
status: 500,
|
|
375
|
+
detail: 'Database connection failed',
|
|
376
|
+
instance: '/some-tool'
|
|
378
377
|
});
|
|
379
|
-
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
380
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
381
378
|
});
|
|
382
|
-
it('should
|
|
383
|
-
|
|
384
|
-
const requestWithoutAuth = {
|
|
379
|
+
it('should format ToolError from authorization failure as RFC 9457 response', async () => {
|
|
380
|
+
const toolRequest = {
|
|
385
381
|
...mockRequest,
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
382
|
+
path: '/some-tool',
|
|
383
|
+
headers: {
|
|
384
|
+
get: jest.fn().mockImplementation((name) => {
|
|
385
|
+
if (name === 'x-opal-thread-id')
|
|
386
|
+
return 'test-thread-id';
|
|
387
|
+
return null;
|
|
388
|
+
})
|
|
389
389
|
}
|
|
390
390
|
};
|
|
391
|
-
const
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
status: 403,
|
|
397
|
-
detail: 'Authentication data is required',
|
|
398
|
-
instance: '/test'
|
|
399
|
-
});
|
|
400
|
-
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
401
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
402
|
-
});
|
|
403
|
-
it('should return 403 response when token verifier initialization fails', async () => {
|
|
404
|
-
// Setup mock to fail during token verifier initialization
|
|
405
|
-
mockGetTokenVerifier.mockRejectedValue(new Error('Failed to initialize token verifier'));
|
|
406
|
-
const result = await globalToolFunction.perform();
|
|
407
|
-
expect(result.status).toBe(403);
|
|
408
|
-
expect(result.bodyJSON).toEqual({
|
|
409
|
-
title: 'Forbidden',
|
|
410
|
-
status: 403,
|
|
411
|
-
detail: 'Token verification failed',
|
|
412
|
-
instance: '/test'
|
|
413
|
-
});
|
|
414
|
-
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
415
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
416
|
-
});
|
|
417
|
-
it('should return 403 response when token validation throws an error', async () => {
|
|
418
|
-
// Setup mock token verifier to throw an error
|
|
419
|
-
mockTokenVerifier.verify.mockRejectedValue(new Error('Token validation failed'));
|
|
420
|
-
const result = await globalToolFunction.perform();
|
|
391
|
+
const authError = new ToolError_1.ToolError('Unauthorized', 403, 'Invalid access token');
|
|
392
|
+
Service_1.toolsService.requiresOptiIdAuth.mockReturnValue(true);
|
|
393
|
+
jest.mocked(AuthUtils_1.authenticateGlobalRequest).mockRejectedValue(authError);
|
|
394
|
+
const globalFunc = new TestGlobalToolFunction(toolRequest);
|
|
395
|
+
const result = await globalFunc.perform();
|
|
421
396
|
expect(result.status).toBe(403);
|
|
422
397
|
expect(result.bodyJSON).toEqual({
|
|
423
|
-
title: '
|
|
398
|
+
title: 'Unauthorized',
|
|
424
399
|
status: 403,
|
|
425
|
-
detail: '
|
|
426
|
-
instance: '/
|
|
400
|
+
detail: 'Invalid access token',
|
|
401
|
+
instance: '/some-tool'
|
|
427
402
|
});
|
|
428
|
-
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
429
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
430
403
|
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
431
404
|
});
|
|
432
405
|
});
|
|
433
|
-
describe('inheritance', () => {
|
|
434
|
-
it('should be an instance of GlobalFunction', () => {
|
|
435
|
-
// Assert
|
|
436
|
-
expect(globalToolFunction).toBeInstanceOf(GlobalToolFunction_1.GlobalToolFunction);
|
|
437
|
-
});
|
|
438
|
-
it('should have access to the request property', () => {
|
|
439
|
-
// Assert
|
|
440
|
-
expect(globalToolFunction.getRequest()).toBe(mockRequest);
|
|
441
|
-
});
|
|
442
|
-
});
|
|
443
|
-
describe('authentication differences from ToolFunction', () => {
|
|
444
|
-
it('should NOT validate organization ID (unlike ToolFunction)', async () => {
|
|
445
|
-
// This test demonstrates the key difference between GlobalToolFunction and ToolFunction
|
|
446
|
-
// GlobalToolFunction should work with any customer_id, while ToolFunction requires matching org ID
|
|
447
|
-
const requestWithRandomOrgId = {
|
|
448
|
-
...mockRequest,
|
|
449
|
-
bodyJSON: {
|
|
450
|
-
...mockRequest.bodyJSON,
|
|
451
|
-
auth: {
|
|
452
|
-
...mockRequest.bodyJSON.auth,
|
|
453
|
-
credentials: {
|
|
454
|
-
...mockRequest.bodyJSON.auth.credentials,
|
|
455
|
-
customer_id: 'random-org-999' // This would fail in ToolFunction but should work here
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
};
|
|
460
|
-
const globalToolFunctionWithRandomOrgId = new TestGlobalToolFunction(requestWithRandomOrgId);
|
|
461
|
-
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
462
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
463
|
-
const result = await globalToolFunctionWithRandomOrgId.perform();
|
|
464
|
-
// Should succeed even with different org ID
|
|
465
|
-
expect(result).toBe(mockResponse);
|
|
466
|
-
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
467
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
468
|
-
// Crucially: getAppContext should NOT be called (no org validation)
|
|
469
|
-
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
470
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithRandomOrgId, globalToolFunctionWithRandomOrgId);
|
|
471
|
-
});
|
|
472
|
-
it('should only require valid OptiID token (no organization constraints)', async () => {
|
|
473
|
-
// Test that only token validation is performed, no org validation
|
|
474
|
-
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
475
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
476
|
-
const result = await globalToolFunction.perform();
|
|
477
|
-
expect(result).toBe(mockResponse);
|
|
478
|
-
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
479
|
-
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
480
|
-
// Key assertion: getAppContext should never be called for global functions
|
|
481
|
-
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
482
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, globalToolFunction);
|
|
483
|
-
});
|
|
484
|
-
});
|
|
485
406
|
});
|
|
486
407
|
//# sourceMappingURL=GlobalToolFunction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalToolFunction.test.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.test.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,10 @@ export declare abstract class ToolFunction extends Function {
|
|
|
25
25
|
*/
|
|
26
26
|
private handleRequest;
|
|
27
27
|
/**
|
|
28
|
-
* Authenticate the incoming request
|
|
28
|
+
* Authenticate the incoming request based on the endpoint
|
|
29
|
+
* - /discovery: No auth required
|
|
30
|
+
* - /overrides: Internal auth (header-based token)
|
|
31
|
+
* - Tools/interactions: Regular auth if OptiID is required
|
|
29
32
|
*
|
|
30
33
|
* @throws {ToolError} If authentication fails
|
|
31
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAmB,MAAM,mBAAmB,CAAC;AAIxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,QAAQ;IAEjD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;IAInD;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAYzC;;;;OAIG;YACW,aAAa;IAmB3B;;;;;;;OAOG;YACW,gBAAgB;CAiB/B"}
|