@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.
@@ -1 +1 @@
1
- {"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ const App = __importStar(require("@zaiusinc/app-sdk"));
41
41
  const app_sdk_1 = require("@zaiusinc/app-sdk");
42
42
  const ParameterValidator_1 = require("../validation/ParameterValidator");
43
43
  /**
44
- * Default OptiID authentication requirement that will be enforced for all tools
44
+ * Default OptiID authentication requirement added when tool doesn't specify any auth
45
45
  */
46
46
  const DEFAULT_OPTIID_AUTH = new Models_1.AuthRequirement('OptiID', 'default', true);
47
47
  class NestedInteractions {
@@ -208,42 +208,33 @@ class ToolsService {
208
208
  return tools;
209
209
  }
210
210
  /**
211
- * Enforce OptiID authentication for tools by ensuring OptiID auth requirement is present
211
+ * Apply default auth requirements if none are specified
212
212
  * @param authRequirements Original authentication requirements
213
- * @returns Enforced authentication requirements with OptiID
213
+ * @returns Auth requirements with default OptiID if none specified, otherwise unchanged
214
214
  */
215
- enforceOptiIdAuth(authRequirements) {
216
- const hasOptiIdProvider = authRequirements
217
- && authRequirements.some((auth) => auth.provider.toLowerCase() === 'optiid');
218
- if (hasOptiIdProvider) {
219
- return authRequirements;
215
+ withDefaultAuthRequirements(authRequirements) {
216
+ // Only add default OptiID if no auth requirements are specified
217
+ if (!authRequirements || authRequirements.length === 0) {
218
+ return [DEFAULT_OPTIID_AUTH];
220
219
  }
221
- return [...(authRequirements || []), DEFAULT_OPTIID_AUTH];
220
+ // Respect developer's choice - return as-is
221
+ return authRequirements;
222
222
  }
223
223
  /**
224
- * Format an error as RFC 9457 Problem Details response
225
- * @param error The error to format
226
- * @param instance URI reference identifying the specific occurrence
227
- * @returns RFC 9457 compliant Response
224
+ * Check if an endpoint requires OptiID authentication
225
+ * Tools: Check auth requirements for OptiID provider
226
+ * Interactions: Always require OptiID
227
+ * @param endpoint The endpoint path to check
228
+ * @returns true if the endpoint requires OptiID auth
228
229
  */
229
- formatErrorResponse(error, instance) {
230
- let status = 500;
231
- let problemDetails;
232
- if (error instanceof ToolError_1.ToolError) {
233
- // Use ToolError's status and format
234
- status = error.status;
235
- problemDetails = error.toProblemDetails(instance);
236
- }
237
- else {
238
- // Convert regular errors to RFC 9457 format with 500 status
239
- problemDetails = {
240
- title: 'Internal Server Error',
241
- status: 500,
242
- detail: error.message || 'An unexpected error occurred',
243
- instance
244
- };
230
+ requiresOptiIdAuth(endpoint) {
231
+ const func = this.functions.get(endpoint);
232
+ if (func) {
233
+ return func.authRequirements.some((auth) => auth.provider.toLowerCase() === 'optiid');
245
234
  }
246
- return new App.Response(status, problemDetails, new app_sdk_1.Headers([['content-type', 'application/problem+json']]));
235
+ // Interactions always require OptiID
236
+ const interaction = this.interactions.get(endpoint);
237
+ return !!interaction;
247
238
  }
248
239
  /**
249
240
  * Register a tool function with generic auth data
@@ -252,12 +243,11 @@ class ToolsService {
252
243
  * @param handler Function implementing the tool
253
244
  * @param parameters List of parameters for the tool
254
245
  * @param endpoint API endpoint for the tool
255
- * @param authRequirements Authentication requirements (optional)
246
+ * @param authRequirements Authentication requirements (optional - defaults to OptiID if not specified)
256
247
  */
257
248
  registerTool(name, description, handler, parameters, endpoint, authRequirements) {
258
- // Enforce OptiID authentication for all tools
259
- const enforcedAuthRequirements = this.enforceOptiIdAuth(authRequirements);
260
- const func = new Tool(name, description, parameters, endpoint, handler, enforcedAuthRequirements);
249
+ const resolvedAuthRequirements = this.withDefaultAuthRequirements(authRequirements);
250
+ const func = new Tool(name, description, parameters, endpoint, handler, resolvedAuthRequirements);
261
251
  this.functions.set(endpoint, func);
262
252
  }
263
253
  /**
@@ -275,58 +265,36 @@ class ToolsService {
275
265
  if (req.path === '/discovery') {
276
266
  return await this.handleDiscoveryRequest(functionContext);
277
267
  }
278
- // Handle overrides endpoint
268
+ // Handle overrides endpoint (auth handled by function layer)
279
269
  if (req.path === '/overrides') {
280
270
  return await this.handleOverridesRequest(req, functionContext);
281
271
  }
282
272
  // Handle regular tool functions
273
+ // Auth is already validated by the function layer
283
274
  const func = this.functions.get(req.path);
284
275
  if (func) {
285
- try {
286
- let params;
287
- if (req.bodyJSON && req.bodyJSON.parameters) {
288
- params = req.bodyJSON.parameters;
289
- }
290
- else {
291
- params = req.bodyJSON;
292
- }
293
- // Validate parameters before calling the handler (only if tool has parameter definitions)
294
- // ParameterValidator.validate() throws ToolError if validation fails
295
- if (func.parameters && func.parameters.length > 0) {
296
- ParameterValidator_1.ParameterValidator.validate(params, func.parameters, func.endpoint);
297
- }
298
- // Extract auth data from body JSON
299
- const authData = req.bodyJSON ? req.bodyJSON.auth : undefined;
300
- const result = await func.handler(functionContext, params, authData);
301
- return new App.Response(200, result);
302
- }
303
- catch (error) {
304
- app_sdk_1.logger.error(`Error in function ${func.name}:`, error);
305
- return this.formatErrorResponse(error, func.endpoint);
276
+ const params = req.bodyJSON?.parameters ?? req.bodyJSON;
277
+ // Validate parameters before calling the handler (only if tool has parameter definitions)
278
+ // ParameterValidator.validate() throws ToolError if validation fails
279
+ if (func.parameters && func.parameters.length > 0) {
280
+ ParameterValidator_1.ParameterValidator.validate(params, func.parameters, func.endpoint);
306
281
  }
282
+ // Extract auth data from body JSON
283
+ const authData = req.bodyJSON?.auth;
284
+ const result = await func.handler(functionContext, params, authData);
285
+ return new App.Response(200, result);
307
286
  }
308
287
  // Handle interactions
288
+ // Auth is already validated by the function layer
309
289
  const interaction = this.interactions.get(req.path);
310
290
  if (interaction) {
311
- try {
312
- let params;
313
- if (req.bodyJSON && req.bodyJSON.data) {
314
- params = req.bodyJSON.data;
315
- }
316
- else {
317
- params = req.bodyJSON;
318
- }
319
- // Extract auth data from body JSON
320
- const authData = req.bodyJSON ? req.bodyJSON.auth : undefined;
321
- const result = await interaction.handler(functionContext, params, authData);
322
- return new App.Response(200, result);
323
- }
324
- catch (error) {
325
- app_sdk_1.logger.error(`Error in function ${interaction.name}:`, error);
326
- return this.formatErrorResponse(error, interaction.endpoint);
327
- }
291
+ const params = req.bodyJSON?.data ?? req.bodyJSON;
292
+ // Extract auth data from body JSON
293
+ const authData = req.bodyJSON?.auth;
294
+ const result = await interaction.handler(functionContext, params, authData);
295
+ return new App.Response(200, result);
328
296
  }
329
- return new App.Response(404, 'Function not found');
297
+ throw new ToolError_1.ToolError('Function not found', 404);
330
298
  }
331
299
  /**
332
300
  * Handle discovery endpoint with overrides applied
@@ -1 +1 @@
1
- {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,10 @@ jest.mock('@zaiusinc/app-sdk', () => {
72
72
  }))
73
73
  };
74
74
  });
75
+ // Mock the authenticateInternalRequest function
76
+ jest.mock('../auth/AuthUtils', () => ({
77
+ authenticateInternalRequest: jest.fn().mockResolvedValue(undefined)
78
+ }));
75
79
  // Get the mocked kvStore for use in tests
76
80
  const { storage } = jest.requireMock('@zaiusinc/app-sdk');
77
81
  const mockKvStore = storage.kvStore;
@@ -194,8 +198,7 @@ describe('ToolsService', () => {
194
198
  endpoint: '/second-tool',
195
199
  http_method: 'POST',
196
200
  auth_requirements: [
197
- { provider: 'oauth2', scope_bundle: 'calendar', required: true },
198
- { provider: 'OptiID', scope_bundle: 'default', required: true }
201
+ { provider: 'oauth2', scope_bundle: 'calendar', required: true }
199
202
  ]
200
203
  });
201
204
  });
@@ -296,75 +299,41 @@ describe('ToolsService', () => {
296
299
  expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunction, // functionContext
297
300
  { param1: 'test-value' }, undefined);
298
301
  });
299
- it('should return 500 error in RFC 9457 format when tool handler throws a regular error', async () => {
302
+ it('should throw error when tool handler throws a regular error', async () => {
300
303
  const errorMessage = 'Tool execution failed';
301
304
  jest.mocked(mockTool.handler).mockRejectedValueOnce(new Error(errorMessage));
302
305
  const mockRequest = createMockRequest();
303
- const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
304
- expect(response.status).toBe(500);
305
- expect(response.bodyJSON).toEqual({
306
- title: 'Internal Server Error',
307
- status: 500,
308
- detail: errorMessage,
309
- instance: mockTool.endpoint
310
- });
311
- expect(response.headers.get('content-type')).toBe('application/problem+json');
312
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockTool.name}:`, expect.any(Error));
306
+ await expect(Service_1.toolsService.processRequest(mockRequest, mockToolFunction))
307
+ .rejects.toThrow(errorMessage);
313
308
  });
314
- it('should return 500 error with generic message when error has no message', async () => {
309
+ it('should throw when tool handler throws object without message', async () => {
315
310
  jest.mocked(mockTool.handler).mockRejectedValueOnce({});
316
311
  const mockRequest = createMockRequest();
317
- const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
318
- expect(response.status).toBe(500);
319
- expect(response.bodyJSON).toEqual({
320
- title: 'Internal Server Error',
321
- status: 500,
322
- detail: 'An unexpected error occurred',
323
- instance: mockTool.endpoint
324
- });
325
- expect(response.headers.get('content-type')).toBe('application/problem+json');
312
+ await expect(Service_1.toolsService.processRequest(mockRequest, mockToolFunction))
313
+ .rejects.toEqual({});
326
314
  });
327
- it('should return custom status code when tool handler throws ToolError', async () => {
315
+ it('should throw ToolError when tool handler throws ToolError', async () => {
328
316
  const toolError = new ToolError_1.ToolError('Resource not found', 404, 'The requested task does not exist');
329
317
  jest.mocked(mockTool.handler).mockRejectedValueOnce(toolError);
330
318
  const mockRequest = createMockRequest();
331
- const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
332
- expect(response.status).toBe(404);
333
- expect(response.bodyJSON).toEqual({
334
- title: 'Resource not found',
335
- status: 404,
336
- detail: 'The requested task does not exist',
337
- instance: mockTool.endpoint
338
- });
339
- expect(response.headers.get('content-type')).toBe('application/problem+json');
340
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockTool.name}:`, expect.any(ToolError_1.ToolError));
319
+ await expect(Service_1.toolsService.processRequest(mockRequest, mockToolFunction))
320
+ .rejects.toThrow(toolError);
341
321
  });
342
- it('should return ToolError without detail field when detail is not provided', async () => {
322
+ it('should throw ToolError without detail when detail is not provided', async () => {
343
323
  const toolError = new ToolError_1.ToolError('Bad request', 400);
344
324
  jest.mocked(mockTool.handler).mockRejectedValueOnce(toolError);
345
325
  const mockRequest = createMockRequest();
346
- const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
347
- expect(response.status).toBe(400);
348
- expect(response.bodyJSON).toEqual({
349
- title: 'Bad request',
350
- status: 400,
351
- instance: mockTool.endpoint
352
- });
353
- expect(response.bodyJSON).not.toHaveProperty('detail');
354
- expect(response.headers.get('content-type')).toBe('application/problem+json');
326
+ await expect(Service_1.toolsService.processRequest(mockRequest, mockToolFunction))
327
+ .rejects.toThrow(toolError);
328
+ expect(toolError.status).toBe(400);
355
329
  });
356
- it('should default to 500 when ToolError is created without status', async () => {
330
+ it('should throw ToolError with default 500 status when created without status', async () => {
357
331
  const toolError = new ToolError_1.ToolError('Database error');
358
332
  jest.mocked(mockTool.handler).mockRejectedValueOnce(toolError);
359
333
  const mockRequest = createMockRequest();
360
- const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunction);
361
- expect(response.status).toBe(500);
362
- expect(response.bodyJSON).toEqual({
363
- title: 'Database error',
364
- status: 500,
365
- instance: mockTool.endpoint
366
- });
367
- expect(response.headers.get('content-type')).toBe('application/problem+json');
334
+ await expect(Service_1.toolsService.processRequest(mockRequest, mockToolFunction))
335
+ .rejects.toThrow(toolError);
336
+ expect(toolError.status).toBe(500);
368
337
  });
369
338
  });
370
339
  describe('interaction execution', () => {
@@ -430,48 +399,41 @@ describe('ToolsService', () => {
430
399
  auth: authData
431
400
  }, authData);
432
401
  });
433
- it('should return 500 error in RFC 9457 format when interaction handler throws a regular error', async () => {
402
+ it('should throw error when interaction handler throws a regular error', async () => {
434
403
  const errorMessage = 'Interaction execution failed';
435
404
  jest.mocked(mockInteraction.handler).mockRejectedValueOnce(new Error(errorMessage));
436
405
  const interactionRequest = createMockRequest({
437
406
  path: '/test-interaction',
438
407
  bodyJSON: { data: { param1: 'test-value' } }
439
408
  });
440
- const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
441
- expect(response.status).toBe(500);
442
- expect(response.bodyJSON).toEqual({
443
- title: 'Internal Server Error',
444
- status: 500,
445
- detail: errorMessage,
446
- instance: mockInteraction.endpoint
447
- });
448
- expect(response.headers.get('content-type')).toBe('application/problem+json');
449
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockInteraction.name}:`, expect.any(Error));
409
+ await expect(Service_1.toolsService.processRequest(interactionRequest, mockToolFunction))
410
+ .rejects.toThrow(errorMessage);
450
411
  });
451
- it('should return custom status code when interaction handler throws ToolError', async () => {
412
+ it('should throw ToolError when interaction handler throws ToolError', async () => {
452
413
  const toolError = new ToolError_1.ToolError('Webhook validation failed', 400, 'Invalid signature');
453
414
  jest.mocked(mockInteraction.handler).mockRejectedValueOnce(toolError);
454
415
  const interactionRequest = createMockRequest({
455
416
  path: '/test-interaction',
456
417
  bodyJSON: { data: { param1: 'test-value' } }
457
418
  });
458
- const response = await Service_1.toolsService.processRequest(interactionRequest, mockToolFunction);
459
- expect(response.status).toBe(400);
460
- expect(response.bodyJSON).toEqual({
461
- title: 'Webhook validation failed',
462
- status: 400,
463
- detail: 'Invalid signature',
464
- instance: mockInteraction.endpoint
465
- });
466
- expect(response.headers.get('content-type')).toBe('application/problem+json');
467
- expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockInteraction.name}:`, expect.any(ToolError_1.ToolError));
419
+ await expect(Service_1.toolsService.processRequest(interactionRequest, mockToolFunction))
420
+ .rejects.toThrow(toolError);
468
421
  });
469
422
  });
470
423
  describe('error cases', () => {
471
- it('should return 404 when no matching tool or interaction is found', async () => {
424
+ it('should throw ToolError with 404 when no matching tool or interaction is found', async () => {
472
425
  const unknownRequest = createMockRequest({ path: '/unknown-endpoint' });
473
- const response = await Service_1.toolsService.processRequest(unknownRequest, mockToolFunction);
474
- expect(response.status).toBe(404);
426
+ await expect(Service_1.toolsService.processRequest(unknownRequest, mockToolFunction))
427
+ .rejects.toThrow(ToolError_1.ToolError);
428
+ try {
429
+ await Service_1.toolsService.processRequest(unknownRequest, mockToolFunction);
430
+ }
431
+ catch (error) {
432
+ expect(error).toBeInstanceOf(ToolError_1.ToolError);
433
+ expect(error.status).toBe(404);
434
+ // ToolError prepends status to message
435
+ expect(error.message).toContain('Function not found');
436
+ }
475
437
  });
476
438
  it('should handle tool with OptiID auth requirements', async () => {
477
439
  const authRequirements = [
@@ -578,7 +540,7 @@ describe('ToolsService', () => {
578
540
  beforeEach(() => {
579
541
  jest.clearAllMocks();
580
542
  });
581
- it('should validate parameters and return 400 for invalid types', async () => {
543
+ it('should throw ToolError with 400 for invalid parameter types', async () => {
582
544
  // Register a tool with specific parameter types
583
545
  const toolWithTypedParams = {
584
546
  name: 'typed_tool',
@@ -603,22 +565,25 @@ describe('ToolsService', () => {
603
565
  }
604
566
  }
605
567
  });
606
- const response = await Service_1.toolsService.processRequest(invalidRequest, mockToolFunction);
607
- expect(response.status).toBe(400);
608
- // Expect RFC 9457 Problem Details format
609
- expect(response.bodyJSON).toHaveProperty('title', 'One or more validation errors occurred.');
610
- expect(response.bodyJSON).toHaveProperty('status', 400);
611
- expect(response.bodyJSON).toHaveProperty('detail', 'See \'errors\' field for details.');
612
- expect(response.bodyJSON).toHaveProperty('instance', '/typed-tool');
613
- expect(response.bodyJSON).toHaveProperty('errors');
614
- expect(response.bodyJSON.errors).toHaveLength(3);
615
- // Check error structure - field and message
616
- const errors = response.bodyJSON.errors;
617
- expect(errors[0]).toHaveProperty('field', 'name');
618
- expect(errors[0]).toHaveProperty('message', "Parameter 'name' must be a string, but received number");
619
- // Check that the content type is set to application/problem+json for RFC 9457 compliance
620
- expect(response.headers).toBeDefined();
621
- expect(response.headers.get('content-type')).toBe('application/problem+json');
568
+ await expect(Service_1.toolsService.processRequest(invalidRequest, mockToolFunction))
569
+ .rejects.toThrow(ToolError_1.ToolError);
570
+ try {
571
+ await Service_1.toolsService.processRequest(invalidRequest, mockToolFunction);
572
+ }
573
+ catch (error) {
574
+ expect(error).toBeInstanceOf(ToolError_1.ToolError);
575
+ const toolError = error;
576
+ expect(toolError.status).toBe(400);
577
+ // The ToolError has title property, message includes more details
578
+ expect(toolError.toProblemDetails('/typed-tool')).toMatchObject({
579
+ title: 'One or more validation errors occurred.',
580
+ status: 400
581
+ });
582
+ expect(toolError.errors).toHaveLength(3);
583
+ expect(toolError.errors[0]).toHaveProperty('field', 'name');
584
+ expect(toolError.errors[0].message)
585
+ .toBe("Parameter 'name' must be a string, but received number");
586
+ }
622
587
  // Verify the handler was not called
623
588
  expect(toolWithTypedParams.handler).not.toHaveBeenCalled();
624
589
  });