@optimizely-opal/opal-tool-ocp-sdk 1.0.0-beta.4 → 1.0.0-beta.6

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.
Files changed (42) hide show
  1. package/dist/auth/AuthUtils.d.ts +7 -0
  2. package/dist/auth/AuthUtils.d.ts.map +1 -1
  3. package/dist/auth/AuthUtils.js +27 -0
  4. package/dist/auth/AuthUtils.js.map +1 -1
  5. package/dist/auth/AuthUtils.test.js +99 -0
  6. package/dist/auth/AuthUtils.test.js.map +1 -1
  7. package/dist/function/ToolFunction.d.ts.map +1 -1
  8. package/dist/function/ToolFunction.js +8 -1
  9. package/dist/function/ToolFunction.js.map +1 -1
  10. package/dist/function/ToolFunction.test.js +206 -0
  11. package/dist/function/ToolFunction.test.js.map +1 -1
  12. package/dist/logging/ToolLogger.d.ts.map +1 -1
  13. package/dist/logging/ToolLogger.js +2 -1
  14. package/dist/logging/ToolLogger.js.map +1 -1
  15. package/dist/logging/ToolLogger.test.js +114 -2
  16. package/dist/logging/ToolLogger.test.js.map +1 -1
  17. package/dist/service/Service.d.ts +73 -0
  18. package/dist/service/Service.d.ts.map +1 -1
  19. package/dist/service/Service.js +188 -42
  20. package/dist/service/Service.js.map +1 -1
  21. package/dist/service/Service.test.js +380 -34
  22. package/dist/service/Service.test.js.map +1 -1
  23. package/dist/types/ToolError.d.ts +13 -0
  24. package/dist/types/ToolError.d.ts.map +1 -1
  25. package/dist/types/ToolError.js +30 -2
  26. package/dist/types/ToolError.js.map +1 -1
  27. package/dist/types/ToolError.test.js +27 -3
  28. package/dist/types/ToolError.test.js.map +1 -1
  29. package/dist/validation/ParameterValidator.test.js +2 -1
  30. package/dist/validation/ParameterValidator.test.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/auth/AuthUtils.test.ts +115 -1
  33. package/src/auth/AuthUtils.ts +30 -1
  34. package/src/function/ToolFunction.test.ts +220 -0
  35. package/src/function/ToolFunction.ts +8 -2
  36. package/src/logging/ToolLogger.test.ts +118 -2
  37. package/src/logging/ToolLogger.ts +2 -1
  38. package/src/service/Service.test.ts +474 -32
  39. package/src/service/Service.ts +245 -41
  40. package/src/types/ToolError.test.ts +33 -3
  41. package/src/types/ToolError.ts +32 -2
  42. package/src/validation/ParameterValidator.test.ts +4 -1
@@ -4,18 +4,27 @@ exports.ToolError = void 0;
4
4
  /**
5
5
  * Custom error class for tool functions that supports RFC 9457 Problem Details format
6
6
  *
7
+ * The error message includes status code and details for better logging:
8
+ * - No detail: "[status] message"
9
+ * - With detail: "[status] message: detail"
10
+ * - With errors: "[status] message: field1 (error1); field2 (error2)"
11
+ *
7
12
  * @example
8
13
  * ```typescript
9
14
  * // Throw a 404 error
15
+ * // Message: "[404] Resource not found: The requested task does not exist"
10
16
  * throw new ToolError('Resource not found', 404, 'The requested task does not exist');
11
17
  *
12
18
  * // Throw a 400 error
19
+ * // Message: "[400] Invalid input: The priority must be "low", "medium", or "high""
13
20
  * throw new ToolError('Invalid input', 400, 'The priority must be "low", "medium", or "high"');
14
21
  *
15
22
  * // Throw a 500 error (default)
23
+ * // Message: "[500] Database connection failed"
16
24
  * throw new ToolError('Database connection failed');
17
25
  *
18
26
  * // Throw a validation error with multiple field errors
27
+ * // Message: "[400] Validation failed: email (Invalid email format); age (Must be a positive number)"
19
28
  * throw new ToolError('Validation failed', 400, "See 'errors' field for details.", [
20
29
  * { field: 'email', message: 'Invalid email format' },
21
30
  * { field: 'age', message: 'Must be a positive number' }
@@ -35,6 +44,10 @@ class ToolError extends Error {
35
44
  * Array of validation errors (optional)
36
45
  */
37
46
  errors;
47
+ /**
48
+ * The title field for RFC 9457 format (same as message when no detail is provided)
49
+ */
50
+ title;
38
51
  /**
39
52
  * Create a new ToolError
40
53
  *
@@ -44,8 +57,23 @@ class ToolError extends Error {
44
57
  * @param errors - Array of validation errors (optional)
45
58
  */
46
59
  constructor(message, status = 500, detail, errors) {
47
- super(message);
60
+ // Build comprehensive error message for logging/debugging
61
+ // Format: [status] message: details
62
+ let fullMessage = `[${status}] ${message}`;
63
+ if (errors && errors.length > 0) {
64
+ // Errors take precedence: field1 (message1); field2 (message2)
65
+ const errorDetails = errors
66
+ .map((err) => `${err.field} (${err.message})`)
67
+ .join('; ');
68
+ fullMessage += `: ${errorDetails}`;
69
+ }
70
+ else if (detail) {
71
+ // Include detail if no errors
72
+ fullMessage += `: ${detail}`;
73
+ }
74
+ super(fullMessage);
48
75
  this.name = 'ToolError';
76
+ this.title = message;
49
77
  this.status = status;
50
78
  this.detail = detail;
51
79
  this.errors = errors;
@@ -62,7 +90,7 @@ class ToolError extends Error {
62
90
  */
63
91
  toProblemDetails(instance) {
64
92
  const problemDetails = {
65
- title: this.message,
93
+ title: this.title,
66
94
  status: this.status,
67
95
  instance
68
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ToolError.js","sourceRoot":"","sources":["../../src/types/ToolError.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,SAAU,SAAQ,KAAK;IAClC;;OAEG;IACa,MAAM,CAAS;IAE/B;;OAEG;IACa,MAAM,CAAU;IAEhC;;OAEG;IACa,MAAM,CAAqB;IAE3C;;;;;;;OAOG;IACH,YACE,OAAe,EACf,SAAiB,GAAG,EACpB,MAAe,EACf,MAA0B;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,4EAA4E;QAC5E,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,QAAgB;QACtC,MAAM,cAAc,GAA4B;YAC9C,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;SACT,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAjED,8BAiEC"}
1
+ {"version":3,"file":"ToolError.js","sourceRoot":"","sources":["../../src/types/ToolError.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,SAAU,SAAQ,KAAK;IAClC;;OAEG;IACa,MAAM,CAAS;IAE/B;;OAEG;IACa,MAAM,CAAU;IAEhC;;OAEG;IACa,MAAM,CAAqB;IAE3C;;OAEG;IACa,KAAK,CAAS;IAE9B;;;;;;;OAOG;IACH,YACE,OAAe,EACf,SAAiB,GAAG,EACpB,MAAe,EACf,MAA0B;QAE1B,0DAA0D;QAC1D,oCAAoC;QACpC,IAAI,WAAW,GAAG,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAE3C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,+DAA+D;YAC/D,MAAM,YAAY,GAAG,MAAM;iBACxB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC;iBAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,WAAW,IAAI,KAAK,YAAY,EAAE,CAAC;QACrC,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,8BAA8B;YAC9B,WAAW,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,4EAA4E;QAC5E,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,QAAgB;QACtC,MAAM,cAAc,GAA4B;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;SACT,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAtFD,8BAsFC"}
@@ -5,23 +5,47 @@ describe('ToolError', () => {
5
5
  describe('constructor', () => {
6
6
  it('should create error with message and default status 500', () => {
7
7
  const error = new ToolError_1.ToolError('Something went wrong');
8
- expect(error.message).toBe('Something went wrong');
8
+ expect(error.message).toBe('[500] Something went wrong');
9
+ expect(error.title).toBe('Something went wrong');
9
10
  expect(error.status).toBe(500);
10
11
  expect(error.detail).toBeUndefined();
11
12
  expect(error.name).toBe('ToolError');
12
13
  });
13
14
  it('should create error with custom status code', () => {
14
15
  const error = new ToolError_1.ToolError('Not found', 404);
15
- expect(error.message).toBe('Not found');
16
+ expect(error.message).toBe('[404] Not found');
17
+ expect(error.title).toBe('Not found');
16
18
  expect(error.status).toBe(404);
17
19
  expect(error.detail).toBeUndefined();
18
20
  });
19
21
  it('should create error with message, status, and detail', () => {
20
22
  const error = new ToolError_1.ToolError('Validation failed', 400, 'Email format is invalid');
21
- expect(error.message).toBe('Validation failed');
23
+ expect(error.message).toBe('[400] Validation failed: Email format is invalid');
24
+ expect(error.title).toBe('Validation failed');
22
25
  expect(error.status).toBe(400);
23
26
  expect(error.detail).toBe('Email format is invalid');
24
27
  });
28
+ it('should create error with errors array in message', () => {
29
+ const errors = [
30
+ { field: 'email', message: 'Invalid email format' },
31
+ { field: 'age', message: 'Must be a positive number' }
32
+ ];
33
+ const error = new ToolError_1.ToolError('Validation failed', 400, "See 'errors' field for details.", errors);
34
+ expect(error.message).toBe('[400] Validation failed: email (Invalid email format); age (Must be a positive number)');
35
+ expect(error.title).toBe('Validation failed');
36
+ expect(error.status).toBe(400);
37
+ expect(error.detail).toBe("See 'errors' field for details.");
38
+ expect(error.errors).toEqual(errors);
39
+ });
40
+ it('should create error with single error in message', () => {
41
+ const errors = [{ field: 'username', message: 'Required field is missing' }];
42
+ const error = new ToolError_1.ToolError('Validation failed', 400, undefined, errors);
43
+ expect(error.message).toBe('[400] Validation failed: username (Required field is missing)');
44
+ expect(error.title).toBe('Validation failed');
45
+ expect(error.status).toBe(400);
46
+ expect(error.detail).toBeUndefined();
47
+ expect(error.errors).toEqual(errors);
48
+ });
25
49
  it('should be an instance of Error', () => {
26
50
  const error = new ToolError_1.ToolError('Test error');
27
51
  expect(error).toBeInstanceOf(Error);
@@ -1 +1 @@
1
- {"version":3,"file":"ToolError.test.js","sourceRoot":"","sources":["../../src/types/ToolError.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolError.test.js","sourceRoot":"","sources":["../../src/types/ToolError.test.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AAExC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,sBAAsB,CAAC,CAAC;YAEpD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAE9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;YAEjF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG;gBACb,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBACnD,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;aACvD,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,iCAAiC,EAAE,MAAM,CAAC,CAAC;YAEjG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACxB,wFAAwF,CACzF,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAEzE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAC5F,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,YAAY,CAAC,CAAC;YAE1C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,qBAAS,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,YAAY,CAAC,CAAC;YAE1C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,oBAAoB,EAAE,GAAG,EAAE,qCAAqC,CAAC,CAAC;YAC9F,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YAEhE,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,qCAAqC;gBAC7C,QAAQ,EAAE,gBAAgB;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAE5D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,gBAAgB,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YACnE,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAEpE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG;gBACb,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE;gBACnD,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;aACvD,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,iCAAiC,EAAE,MAAM,CAAC,CAAC;YACjG,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAE5D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,iCAAiC;gBACzC,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE;oBACN,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE;oBACnD,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;iBACvD;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE/D,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,eAAe;gBACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,KAAK,GAAG,IAAI,qBAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -45,7 +45,8 @@ describe('ParameterValidator', () => {
45
45
  expect(error).toBeInstanceOf(ToolError_1.ToolError);
46
46
  const toolError = error;
47
47
  expect(toolError.status).toBe(400);
48
- expect(toolError.message).toBe('One or more validation errors occurred.');
48
+ expect(toolError.message).toBe("[400] One or more validation errors occurred.: email (Required parameter 'email' is missing)");
49
+ expect(toolError.title).toBe('One or more validation errors occurred.');
49
50
  expect(toolError.detail).toBe("See 'errors' field for details.");
50
51
  expect(toolError.errors).toHaveLength(1);
51
52
  expect(toolError.errors).toEqual([{
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterValidator.test.js","sourceRoot":"","sources":["../../src/validation/ParameterValidator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParameterValidator.test.js","sourceRoot":"","sources":["../../src/validation/ParameterValidator.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely-opal/opal-tool-ocp-sdk",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.6",
4
4
  "description": "OCP SDK for Opal tool",
5
5
  "scripts": {
6
6
  "validate-deps": "node scripts/validate-deps.js",
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-call */
2
2
  import { getAppContext, logger } from '@zaiusinc/app-sdk';
3
3
  import { getTokenVerifier } from './TokenVerifier';
4
- import { authenticateRegularRequest, authenticateGlobalRequest } from './AuthUtils';
4
+ import { authenticateRegularRequest, authenticateGlobalRequest, authenticateInternalRequest } from './AuthUtils';
5
5
  import { ToolError } from '../types/ToolError';
6
6
 
7
7
  // Mock the dependencies
@@ -631,4 +631,118 @@ describe('AuthUtils', () => {
631
631
  await expect(authenticateGlobalRequest(request)).rejects.toThrow(ToolError);
632
632
  });
633
633
  });
634
+
635
+ describe('authenticateInternalRequest', () => {
636
+ it('should return true for valid OptiID token in Authorization header', async () => {
637
+ mockTokenVerifier.verify.mockResolvedValue(true);
638
+
639
+ const mockRequest = {
640
+ headers: {
641
+ get: jest.fn().mockImplementation((name: string) => {
642
+ if (name === 'Authorization') return 'valid-internal-token';
643
+ return null;
644
+ })
645
+ }
646
+ } as any;
647
+
648
+ await expect(authenticateInternalRequest(mockRequest)).resolves.toBeUndefined();
649
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-internal-token');
650
+ });
651
+
652
+ it('should return true for valid OptiID token in lowercase header', async () => {
653
+ mockTokenVerifier.verify.mockResolvedValue(true);
654
+
655
+ const mockRequest = {
656
+ headers: {
657
+ get: jest.fn().mockImplementation((name: string) => {
658
+ if (name === 'authorization') return 'valid-internal-token';
659
+ return null;
660
+ })
661
+ }
662
+ } as any;
663
+
664
+ await expect(authenticateInternalRequest(mockRequest)).resolves.toBeUndefined();
665
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-internal-token');
666
+ });
667
+
668
+ it('should throw ToolError when Authorization header is missing', async () => {
669
+ const mockRequest = {
670
+ headers: {
671
+ get: jest.fn().mockReturnValue(null) // No Authorization header
672
+ }
673
+ } as any;
674
+
675
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
676
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
677
+ });
678
+
679
+ it('should throw ToolError when headers object is missing', async () => {
680
+ const mockRequest = {} as any; // No headers object
681
+
682
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
683
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
684
+ });
685
+
686
+ it('should throw ToolError when token verification fails', async () => {
687
+ mockTokenVerifier.verify.mockResolvedValue(false);
688
+
689
+ const mockRequest = {
690
+ headers: {
691
+ get: jest.fn().mockImplementation((name: string) => {
692
+ if (name === 'Authorization') return 'invalid-token';
693
+ return null;
694
+ })
695
+ }
696
+ } as any;
697
+
698
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
699
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
700
+ });
701
+
702
+ it('should throw ToolError when token verifier throws an error', async () => {
703
+ mockTokenVerifier.verify.mockRejectedValue(new Error('Token service unavailable'));
704
+
705
+ const mockRequest = {
706
+ headers: {
707
+ get: jest.fn().mockImplementation((name: string) => {
708
+ if (name === 'Authorization') return 'some-token';
709
+ return null;
710
+ })
711
+ }
712
+ } as any;
713
+
714
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
715
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
716
+ });
717
+
718
+ it('should throw ToolError when token verification throws an error', async () => {
719
+ mockTokenVerifier.verify.mockRejectedValue(new Error('Service error'));
720
+
721
+ const mockRequest = {
722
+ headers: {
723
+ get: jest.fn().mockImplementation((name: string) => {
724
+ if (name === 'Authorization') return 'valid-token';
725
+ return null;
726
+ })
727
+ }
728
+ } as any;
729
+
730
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
731
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
732
+ });
733
+
734
+ it('should handle empty string token', async () => {
735
+ const mockRequest = {
736
+ headers: {
737
+ get: jest.fn().mockImplementation((name: string) => {
738
+ if (name === 'Authorization') return '';
739
+ return null;
740
+ })
741
+ }
742
+ } as any;
743
+
744
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow(ToolError);
745
+ await expect(authenticateInternalRequest(mockRequest)).rejects.toThrow('Unauthorized');
746
+ });
747
+ });
634
748
  });
@@ -1,4 +1,4 @@
1
- import { getAppContext, logger } from '@zaiusinc/app-sdk';
1
+ import { getAppContext, logger, Request } from '@zaiusinc/app-sdk';
2
2
  import { getTokenVerifier } from './TokenVerifier';
3
3
  import { OptiIdAuthData } from '../types/Models';
4
4
  import { ToolError } from '../types/ToolError';
@@ -130,6 +130,35 @@ async function authenticateRequest(request: any, validateOrg: boolean): Promise<
130
130
  await validateAccessToken(accessToken);
131
131
  }
132
132
 
133
+ /**
134
+ * Authenticate internal requests using OptiID token from headers
135
+ * @param request The request object
136
+ * @returns true if authentication succeeds
137
+ */
138
+ export async function authenticateInternalRequest(request: Request): Promise<void> {
139
+ try {
140
+ const headers = request.headers;
141
+ const optiIdToken = headers?.get('Authorization') || headers?.get('authorization');
142
+
143
+ if (!optiIdToken) {
144
+ logger.info('OptiID token is required in Authorization header for internal requests');
145
+ throw new ToolError('Unauthorized', 401, 'OptiID token is required');
146
+ }
147
+
148
+ // Validate the token using TokenVerifier directly
149
+ const tokenVerifier = await getTokenVerifier();
150
+ const isValidToken = await tokenVerifier.verify(optiIdToken);
151
+
152
+ if (!isValidToken) {
153
+ logger.info('Invalid OptiID token provided for internal request');
154
+ throw new ToolError('Unauthorized', 401, 'Invalid OptiID token');
155
+ }
156
+ } catch (error: any) {
157
+ logger.error('Internal request authentication failed:', error);
158
+ throw new ToolError('Unauthorized', 401, 'Internal request authentication failed');
159
+ }
160
+ }
161
+
133
162
  /**
134
163
  * Authenticate a request for regular functions (with organization validation)
135
164
  *
@@ -420,4 +420,224 @@ describe('ToolFunction', () => {
420
420
  expect(toolFunction.getRequest()).toBe(mockRequest);
421
421
  });
422
422
  });
423
+
424
+ describe('internal request authentication', () => {
425
+ beforeEach(() => {
426
+ // Reset mocks before each test
427
+ jest.clearAllMocks();
428
+ setupAuthMocks();
429
+ });
430
+
431
+ it('should use internal authentication for /overrides endpoint', async () => {
432
+ const overridesRequest = {
433
+ path: '/overrides',
434
+ method: 'DELETE',
435
+ bodyJSON: {},
436
+ headers: {
437
+ get: jest.fn().mockImplementation((name: string) => {
438
+ if (name === 'Authorization' || name === 'authorization') return 'internal-token';
439
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
440
+ return null;
441
+ })
442
+ }
443
+ };
444
+
445
+ mockProcessRequest.mockResolvedValue(mockResponse);
446
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
447
+ const result = await toolFunctionOverrides.perform();
448
+
449
+ expect(result).toBe(mockResponse);
450
+ expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
451
+ });
452
+
453
+ it('should throw ToolError when internal authentication fails for /overrides endpoint', async () => {
454
+ const overridesRequest = {
455
+ path: '/overrides',
456
+ method: 'DELETE',
457
+ bodyJSON: {},
458
+ headers: {
459
+ get: jest.fn().mockImplementation((name: string) => {
460
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
461
+ return null; // No Authorization header
462
+ })
463
+ }
464
+ };
465
+
466
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
467
+ const result = await toolFunctionOverrides.perform();
468
+
469
+ expect(result.status).toBe(401);
470
+ expect(result.bodyJSON).toEqual({
471
+ title: 'Unauthorized',
472
+ status: 401,
473
+ detail: 'Internal request authentication failed',
474
+ instance: '/overrides'
475
+ });
476
+ expect(mockProcessRequest).not.toHaveBeenCalled();
477
+ });
478
+
479
+ it('should use regular authentication for non-overrides endpoints', async () => {
480
+ const regularRequest = {
481
+ ...mockRequest,
482
+ path: '/regular-tool',
483
+ headers: {
484
+ get: jest.fn().mockImplementation((name: string) => {
485
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
486
+ return null;
487
+ })
488
+ }
489
+ };
490
+
491
+ mockProcessRequest.mockResolvedValue(mockResponse);
492
+ const toolFunctionRegular = new TestToolFunction(regularRequest);
493
+ const result = await toolFunctionRegular.perform();
494
+
495
+ expect(result).toBe(mockResponse);
496
+ expect(mockProcessRequest).toHaveBeenCalledWith(regularRequest, toolFunctionRegular);
497
+ });
498
+
499
+ it('should handle internal authentication with valid Authorization header', async () => {
500
+ const overridesRequest = {
501
+ path: '/overrides',
502
+ method: 'PATCH',
503
+ bodyJSON: {
504
+ functions: [
505
+ {
506
+ name: 'test_tool',
507
+ description: 'Updated description'
508
+ }
509
+ ]
510
+ },
511
+ headers: {
512
+ get: jest.fn().mockImplementation((name: string) => {
513
+ if (name === 'Authorization') return 'valid-internal-token';
514
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
515
+ return null;
516
+ })
517
+ }
518
+ };
519
+
520
+ mockProcessRequest.mockResolvedValue(mockResponse);
521
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
522
+ const result = await toolFunctionOverrides.perform();
523
+
524
+ expect(result).toBe(mockResponse);
525
+ expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
526
+ });
527
+
528
+ it('should handle internal authentication with lowercase authorization header', async () => {
529
+ const overridesRequest = {
530
+ path: '/overrides',
531
+ method: 'PATCH',
532
+ bodyJSON: {
533
+ functions: [
534
+ {
535
+ name: 'test_tool',
536
+ description: 'Updated description'
537
+ }
538
+ ]
539
+ },
540
+ headers: {
541
+ get: jest.fn().mockImplementation((name: string) => {
542
+ if (name === 'authorization') return 'valid-internal-token';
543
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
544
+ return null;
545
+ })
546
+ }
547
+ };
548
+
549
+ mockProcessRequest.mockResolvedValue(mockResponse);
550
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
551
+ const result = await toolFunctionOverrides.perform();
552
+
553
+ expect(result).toBe(mockResponse);
554
+ expect(mockProcessRequest).toHaveBeenCalledWith(overridesRequest, toolFunctionOverrides);
555
+ });
556
+
557
+ it('should fail internal authentication when token verification fails', async () => {
558
+ // Mock token verifier to return false for invalid token
559
+ mockTokenVerifier.verify.mockResolvedValue(false);
560
+
561
+ const overridesRequest = {
562
+ path: '/overrides',
563
+ method: 'DELETE',
564
+ bodyJSON: {},
565
+ headers: {
566
+ get: jest.fn().mockImplementation((name: string) => {
567
+ if (name === 'Authorization') return 'invalid-token';
568
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
569
+ return null;
570
+ })
571
+ }
572
+ };
573
+
574
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
575
+ const result = await toolFunctionOverrides.perform();
576
+
577
+ expect(result.status).toBe(401);
578
+ expect(result.bodyJSON).toEqual({
579
+ title: 'Unauthorized',
580
+ status: 401,
581
+ detail: 'Internal request authentication failed',
582
+ instance: '/overrides'
583
+ });
584
+ expect(mockProcessRequest).not.toHaveBeenCalled();
585
+ });
586
+
587
+ it('should fail internal authentication when token verifier throws error', async () => {
588
+ // Mock token verifier to throw an error
589
+ mockTokenVerifier.verify.mockRejectedValue(new Error('Token service unavailable'));
590
+
591
+ const overridesRequest = {
592
+ path: '/overrides',
593
+ method: 'DELETE',
594
+ bodyJSON: {},
595
+ headers: {
596
+ get: jest.fn().mockImplementation((name: string) => {
597
+ if (name === 'Authorization') return 'some-token';
598
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
599
+ return null;
600
+ })
601
+ }
602
+ };
603
+
604
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
605
+ const result = await toolFunctionOverrides.perform();
606
+
607
+ expect(result.status).toBe(401);
608
+ expect(result.bodyJSON).toEqual({
609
+ title: 'Unauthorized',
610
+ status: 401,
611
+ detail: 'Internal request authentication failed',
612
+ instance: '/overrides'
613
+ });
614
+ expect(mockProcessRequest).not.toHaveBeenCalled();
615
+ });
616
+
617
+ it('should fail internal authentication when headers object is missing', async () => {
618
+ const overridesRequest = {
619
+ path: '/overrides',
620
+ method: 'DELETE',
621
+ bodyJSON: {},
622
+ headers: {
623
+ get: jest.fn().mockImplementation((name: string) => {
624
+ if (name === 'x-opal-thread-id') return 'test-thread-id';
625
+ return null;
626
+ })
627
+ }
628
+ };
629
+
630
+ const toolFunctionOverrides = new TestToolFunction(overridesRequest);
631
+ const result = await toolFunctionOverrides.perform();
632
+
633
+ expect(result.status).toBe(401);
634
+ expect(result.bodyJSON).toEqual({
635
+ title: 'Unauthorized',
636
+ status: 401,
637
+ detail: 'Internal request authentication failed',
638
+ instance: '/overrides'
639
+ });
640
+ expect(mockProcessRequest).not.toHaveBeenCalled();
641
+ });
642
+ });
423
643
  });