@optimizely-opal/opal-tool-ocp-sdk 0.0.0-dev.5 → 0.0.0-devmg.11

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 (40) hide show
  1. package/README.md +106 -45
  2. package/dist/auth/TokenVerifier.d.ts +31 -0
  3. package/dist/auth/TokenVerifier.d.ts.map +1 -0
  4. package/dist/auth/TokenVerifier.js +127 -0
  5. package/dist/auth/TokenVerifier.js.map +1 -0
  6. package/dist/auth/TokenVerifier.test.d.ts +2 -0
  7. package/dist/auth/TokenVerifier.test.d.ts.map +1 -0
  8. package/dist/auth/TokenVerifier.test.js +114 -0
  9. package/dist/auth/TokenVerifier.test.js.map +1 -0
  10. package/dist/decorator/Decorator.test.js.map +1 -1
  11. package/dist/function/ToolFunction.d.ts +11 -7
  12. package/dist/function/ToolFunction.d.ts.map +1 -1
  13. package/dist/function/ToolFunction.js +53 -10
  14. package/dist/function/ToolFunction.js.map +1 -1
  15. package/dist/function/ToolFunction.test.js +225 -122
  16. package/dist/function/ToolFunction.test.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/service/Service.d.ts +14 -13
  22. package/dist/service/Service.d.ts.map +1 -1
  23. package/dist/service/Service.js +22 -16
  24. package/dist/service/Service.js.map +1 -1
  25. package/dist/service/Service.test.js +53 -36
  26. package/dist/service/Service.test.js.map +1 -1
  27. package/dist/types/Models.d.ts +5 -5
  28. package/dist/types/Models.d.ts.map +1 -1
  29. package/dist/types/Models.js +9 -9
  30. package/dist/types/Models.js.map +1 -1
  31. package/package.json +10 -3
  32. package/src/auth/TokenVerifier.test.ts +152 -0
  33. package/src/auth/TokenVerifier.ts +145 -0
  34. package/src/decorator/Decorator.test.ts +4 -4
  35. package/src/function/ToolFunction.test.ts +251 -128
  36. package/src/function/ToolFunction.ts +60 -11
  37. package/src/index.ts +1 -0
  38. package/src/service/Service.test.ts +55 -37
  39. package/src/service/Service.ts +29 -22
  40. package/src/types/Models.ts +4 -4
@@ -3,35 +3,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToolFunction = void 0;
4
4
  const app_sdk_1 = require("@zaiusinc/app-sdk");
5
5
  const Service_1 = require("../service/Service");
6
+ const TokenVerifier_1 = require("../auth/TokenVerifier");
6
7
  /**
7
8
  * Abstract base class for tool-based function execution
8
9
  * Provides a standard interface for processing requests through registered tools
9
10
  */
10
11
  class ToolFunction extends app_sdk_1.Function {
12
+ /**
13
+ * Override this method to implement any required credentials and/or other configuration
14
+ * exist and are valid. Reasonable caching should be utilized to prevent excessive requests to external resources.
15
+ * @async
16
+ * @returns true if the opal function is ready to use
17
+ */
18
+ ready() {
19
+ return Promise.resolve(true);
20
+ }
11
21
  /**
12
22
  * Process the incoming request using the tools service
13
23
  *
14
24
  * @returns Response as the HTTP response
15
25
  */
16
26
  async perform() {
17
- const bearerToken = Service_1.toolsService.extractBearerToken(this.request.headers);
18
- if (bearerToken && !this.validateBearerToken(bearerToken)) {
27
+ (0, app_sdk_1.amendLogContext)({ opalThreadId: this.request.headers.get('x-opal-thread-id') || '' });
28
+ if (!(await this.authorizeRequest())) {
19
29
  return new app_sdk_1.Response(403, { error: 'Forbidden' });
20
30
  }
31
+ if (this.request.path === '/ready') {
32
+ const isReady = await this.ready();
33
+ return new app_sdk_1.Response(200, { ready: isReady });
34
+ }
21
35
  // Pass 'this' as context so decorated methods can use the existing instance
22
36
  return Service_1.toolsService.processRequest(this.request, this);
23
37
  }
24
38
  /**
25
- * Validates the bearer token for authorization.
26
- *
27
- * This method provides a default implementation that accepts all tokens.
28
- * Subclasses can override this method to implement custom bearer token validation logic.
39
+ * Authenticate the incoming request by validating the OptiID token and organization ID
29
40
  *
30
- * @param _bearerToken - The bearer token extracted from the Authorization header
31
- * @returns true if the token is valid and the request should proceed, false to return 403 Forbidden
41
+ * @throws true if authentication succeeds
32
42
  */
33
- validateBearerToken(_bearerToken) {
34
- return true;
43
+ async authorizeRequest() {
44
+ app_sdk_1.logger.info('Authorizing request:', this.request.bodyJSON);
45
+ if (this.request.path === '/discovery' || this.request.path === '/ready') {
46
+ return true;
47
+ }
48
+ const authData = this.request.bodyJSON?.auth;
49
+ const accessToken = authData?.credentials?.access_token;
50
+ if (!accessToken || authData?.provider?.toLowerCase() !== 'optiid') {
51
+ app_sdk_1.logger.error('OptiID token is required but not provided');
52
+ return false;
53
+ }
54
+ const customerId = authData.credentials?.customer_id;
55
+ if (!customerId) {
56
+ app_sdk_1.logger.error('Organisation ID is required but not provided');
57
+ return false;
58
+ }
59
+ const appOrganisationId = (0, app_sdk_1.getAppContext)().account?.organizationId;
60
+ if (customerId !== appOrganisationId) {
61
+ app_sdk_1.logger.error(`Invalid organisation ID: expected ${appOrganisationId}, received ${customerId}`);
62
+ return false;
63
+ }
64
+ return await this.validateAccessToken(accessToken);
65
+ }
66
+ async validateAccessToken(accessToken) {
67
+ try {
68
+ if (!accessToken) {
69
+ return false;
70
+ }
71
+ const tokenVerifier = await (0, TokenVerifier_1.getTokenVerifier)();
72
+ return await tokenVerifier.verify(accessToken);
73
+ }
74
+ catch (error) {
75
+ app_sdk_1.logger.error('OptiID token validation failed:', error);
76
+ return false;
77
+ }
35
78
  }
36
79
  }
37
80
  exports.ToolFunction = ToolFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolFunction.js","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":";;;AAAA,+CAAuD;AACvD,gDAAkD;AAElD;;;GAGG;AACH,MAAsB,YAAa,SAAQ,kBAAQ;IAEjD;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,WAAW,GAAG,sBAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,4EAA4E;QAC5E,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;OAQG;IACO,mBAAmB,CAAC,YAAoB;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7BD,oCA6BC"}
1
+ {"version":3,"file":"ToolFunction.js","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ToolFunction_1 = require("./ToolFunction");
4
4
  const Service_1 = require("../service/Service");
5
5
  const app_sdk_1 = require("@zaiusinc/app-sdk");
6
- // Mock the toolsService
6
+ const TokenVerifier_1 = require("../auth/TokenVerifier");
7
+ // Mock the dependencies
7
8
  jest.mock('../service/Service', () => ({
8
9
  toolsService: {
9
10
  processRequest: jest.fn(),
10
- extractBearerToken: jest.fn(),
11
11
  },
12
12
  }));
13
- // Mock the Request and Response classes and Function base class
13
+ jest.mock('../auth/TokenVerifier', () => ({
14
+ getTokenVerifier: jest.fn(),
15
+ }));
14
16
  jest.mock('@zaiusinc/app-sdk', () => ({
15
17
  Function: class {
16
18
  request;
17
19
  constructor(_name) {
18
- // Mock constructor that accepts optional name parameter
19
20
  this.request = {};
20
21
  }
21
22
  },
@@ -26,26 +27,32 @@ jest.mock('@zaiusinc/app-sdk', () => ({
26
27
  bodyJSON: data,
27
28
  bodyAsU8Array: new Uint8Array()
28
29
  })),
30
+ amendLogContext: jest.fn(),
31
+ getAppContext: jest.fn(),
32
+ logger: {
33
+ info: jest.fn(),
34
+ error: jest.fn(),
35
+ warn: jest.fn(),
36
+ debug: jest.fn(),
37
+ },
29
38
  }));
30
39
  // Create a concrete implementation for testing
31
40
  class TestToolFunction extends ToolFunction_1.ToolFunction {
32
- mockValidateBearerToken;
41
+ mockReady;
33
42
  constructor(request) {
34
- super(request || {}); // Pass the request parameter properly
35
- // Set the request directly without defaulting to empty object
43
+ super(request || {});
36
44
  this.request = request;
37
- this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
45
+ this.mockReady = jest.fn().mockResolvedValue(true);
38
46
  }
39
- // Override the concrete method with mock implementation for testing
40
- validateBearerToken(bearerToken) {
41
- return this.mockValidateBearerToken(bearerToken);
47
+ // Override the ready method with mock implementation for testing
48
+ ready() {
49
+ return this.mockReady();
42
50
  }
43
- // Expose request and validation mock for testing
44
51
  getRequest() {
45
52
  return this.request;
46
53
  }
47
- getMockValidateBearerToken() {
48
- return this.mockValidateBearerToken;
54
+ getMockReady() {
55
+ return this.mockReady;
49
56
  }
50
57
  }
51
58
  describe('ToolFunction', () => {
@@ -53,129 +60,120 @@ describe('ToolFunction', () => {
53
60
  let mockResponse;
54
61
  let toolFunction;
55
62
  let mockProcessRequest;
56
- let mockExtractBearerToken;
63
+ let mockGetTokenVerifier;
64
+ let mockGetAppContext;
65
+ let mockTokenVerifier;
57
66
  beforeEach(() => {
58
67
  jest.clearAllMocks();
59
- // Create mock instances
68
+ // Create mock token verifier
69
+ mockTokenVerifier = {
70
+ verify: jest.fn(),
71
+ };
72
+ // Setup the mocks
73
+ mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
74
+ mockGetTokenVerifier = jest.mocked(TokenVerifier_1.getTokenVerifier);
75
+ mockGetAppContext = jest.mocked(app_sdk_1.getAppContext);
76
+ mockGetTokenVerifier.mockResolvedValue(mockTokenVerifier);
77
+ mockGetAppContext.mockReturnValue({
78
+ account: {
79
+ organizationId: 'app-org-123'
80
+ }
81
+ });
82
+ // Create mock request with bodyJSON structure
60
83
  mockRequest = {
61
84
  headers: new Map(),
62
85
  method: 'POST',
63
- path: '/test'
86
+ path: '/test',
87
+ bodyJSON: {
88
+ parameters: {
89
+ task_id: 'task-123',
90
+ content_id: 'content-456'
91
+ },
92
+ auth: {
93
+ provider: 'OptiID',
94
+ credentials: {
95
+ token_type: 'Bearer',
96
+ access_token: 'valid-access-token',
97
+ org_sso_id: 'org-sso-123',
98
+ user_id: 'user-456',
99
+ instance_id: 'instance-789',
100
+ customer_id: 'app-org-123',
101
+ product_sku: 'OPAL'
102
+ }
103
+ },
104
+ environment: {
105
+ execution_mode: 'headless'
106
+ }
107
+ }
64
108
  };
65
109
  mockResponse = {};
66
- // Setup the mocks
67
- mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
68
- mockExtractBearerToken = jest.mocked(Service_1.toolsService.extractBearerToken);
69
- // Create test instance
70
110
  toolFunction = new TestToolFunction(mockRequest);
71
111
  });
72
- describe('bearer token validation', () => {
73
- it('should extract bearer token from headers and validate it', async () => {
74
- // Arrange
75
- const bearerToken = 'valid-token-123';
76
- mockExtractBearerToken.mockReturnValue(bearerToken);
77
- toolFunction.getMockValidateBearerToken().mockReturnValue(true);
78
- mockProcessRequest.mockResolvedValue(mockResponse);
79
- // Act
80
- const result = await toolFunction.perform();
81
- // Assert
82
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
83
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
84
- expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
85
- expect(result).toBe(mockResponse);
86
- });
87
- it('should return 403 Forbidden when bearer token validation fails', async () => {
88
- // Arrange
89
- const bearerToken = 'invalid-token-456';
90
- mockExtractBearerToken.mockReturnValue(bearerToken);
91
- toolFunction.getMockValidateBearerToken().mockReturnValue(false);
92
- // Act
93
- const result = await toolFunction.perform();
94
- // Assert
95
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
96
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
97
- expect(mockProcessRequest).not.toHaveBeenCalled();
98
- expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
99
- });
100
- it('should handle complex bearer token validation scenarios', async () => {
101
- // Arrange - simulate a token that should be valid based on some complex logic
102
- const complexToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9l' +
103
- 'IiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
104
- mockExtractBearerToken.mockReturnValue(complexToken);
105
- toolFunction.getMockValidateBearerToken().mockReturnValue(true);
106
- mockProcessRequest.mockResolvedValue(mockResponse);
107
- // Act
108
- const result = await toolFunction.perform();
109
- // Assert
110
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
111
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(complexToken);
112
- expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
113
- expect(result).toBe(mockResponse);
112
+ // Helper function to create a ready request with valid auth
113
+ const createReadyRequestWithAuth = () => ({
114
+ headers: new Map(),
115
+ method: 'GET',
116
+ path: '/ready',
117
+ bodyJSON: {
118
+ auth: {
119
+ provider: 'OptiID',
120
+ credentials: {
121
+ access_token: 'valid-token',
122
+ customer_id: 'app-org-123'
123
+ }
124
+ }
125
+ }
126
+ });
127
+ // Helper function to setup authorization mocks to pass
128
+ const setupAuthMocks = () => {
129
+ mockTokenVerifier.verify.mockResolvedValue(true);
130
+ mockGetAppContext.mockReturnValue({
131
+ account: {
132
+ organizationId: 'app-org-123'
133
+ }
114
134
  });
115
- it('should handle bearer token validation throwing an error', async () => {
116
- // Arrange
117
- const bearerToken = 'malformed-token';
118
- mockExtractBearerToken.mockReturnValue(bearerToken);
119
- toolFunction.getMockValidateBearerToken().mockImplementation(() => {
120
- throw new Error('Token validation error');
121
- });
122
- // Act & Assert
123
- await expect(toolFunction.perform()).rejects.toThrow('Token validation error');
124
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
125
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
126
- expect(mockProcessRequest).not.toHaveBeenCalled();
135
+ };
136
+ describe('/ready endpoint', () => {
137
+ beforeEach(() => {
138
+ setupAuthMocks();
127
139
  });
128
- it('should call validateBearerToken only once per request', async () => {
140
+ it('should return ready: true when ready method returns true', async () => {
129
141
  // Arrange
130
- const bearerToken = 'test-token';
131
- mockExtractBearerToken.mockReturnValue(bearerToken);
132
- toolFunction.getMockValidateBearerToken().mockReturnValue(true);
133
- mockProcessRequest.mockResolvedValue(mockResponse);
142
+ const readyRequest = createReadyRequestWithAuth();
143
+ toolFunction = new TestToolFunction(readyRequest);
144
+ toolFunction.getMockReady().mockResolvedValue(true);
134
145
  // Act
135
- await toolFunction.perform();
136
- // Assert
137
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledTimes(1);
138
- expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
139
- });
140
- it('should extract bearer token only once per request', async () => {
141
- // Arrange
142
- const bearerToken = 'test-token';
143
- mockExtractBearerToken.mockReturnValue(bearerToken);
144
- toolFunction.getMockValidateBearerToken().mockReturnValue(true);
145
- mockProcessRequest.mockResolvedValue(mockResponse);
146
- // Act
147
- await toolFunction.perform();
146
+ const result = await toolFunction.perform();
148
147
  // Assert
149
- expect(mockExtractBearerToken).toHaveBeenCalledTimes(1);
150
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
148
+ expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
149
+ expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
150
+ expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
151
151
  });
152
- it('should skip validation when bearer token is undefined', async () => {
152
+ it('should return ready: false when ready method returns false', async () => {
153
153
  // Arrange
154
- mockExtractBearerToken.mockReturnValue(undefined);
155
- mockProcessRequest.mockResolvedValue(mockResponse);
154
+ const readyRequest = createReadyRequestWithAuth();
155
+ toolFunction = new TestToolFunction(readyRequest);
156
+ toolFunction.getMockReady().mockResolvedValue(false);
156
157
  // Act
157
158
  const result = await toolFunction.perform();
158
159
  // Assert
159
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
160
- expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
161
- expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
162
- expect(result).toBe(mockResponse);
160
+ expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
161
+ expect(result).toEqual(new app_sdk_1.Response(200, { ready: false }));
162
+ expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
163
163
  });
164
- it('should skip validation when bearer token is empty string', async () => {
164
+ it('should handle ready method throwing an error', async () => {
165
165
  // Arrange
166
- mockExtractBearerToken.mockReturnValue('');
167
- mockProcessRequest.mockResolvedValue(mockResponse);
168
- // Act
169
- const result = await toolFunction.perform();
170
- // Assert
171
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
172
- expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
173
- expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
174
- expect(result).toBe(mockResponse);
166
+ const readyRequest = createReadyRequestWithAuth();
167
+ toolFunction = new TestToolFunction(readyRequest);
168
+ toolFunction.getMockReady().mockRejectedValue(new Error('Ready check failed'));
169
+ // Act & Assert
170
+ await expect(toolFunction.perform()).rejects.toThrow('Ready check failed');
171
+ expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
172
+ expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
175
173
  });
176
- it('should use default validateBearerToken implementation when not overridden', async () => {
177
- // Create a class that doesn't override validateBearerToken
178
- class DefaultToolFunction extends ToolFunction_1.ToolFunction {
174
+ it('should use default ready implementation when not overridden', async () => {
175
+ // Create a class that doesn't override ready method
176
+ class DefaultReadyToolFunction extends ToolFunction_1.ToolFunction {
179
177
  constructor(request) {
180
178
  super(request || {});
181
179
  this.request = request;
@@ -185,16 +183,121 @@ describe('ToolFunction', () => {
185
183
  }
186
184
  }
187
185
  // Arrange
188
- const defaultToolFunction = new DefaultToolFunction(mockRequest);
189
- const bearerToken = 'any-token';
190
- mockExtractBearerToken.mockReturnValue(bearerToken);
191
- mockProcessRequest.mockResolvedValue(mockResponse);
186
+ const readyRequest = createReadyRequestWithAuth();
187
+ const defaultToolFunction = new DefaultReadyToolFunction(readyRequest);
192
188
  // Act
193
189
  const result = await defaultToolFunction.perform();
194
- // Assert - Default implementation should return true and allow request to proceed
195
- expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
196
- expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, defaultToolFunction);
190
+ // Assert - Default implementation should return true
191
+ expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
192
+ expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
193
+ });
194
+ });
195
+ describe('perform', () => {
196
+ it('should execute successfully with valid token and matching organization', async () => {
197
+ // Setup mock token verifier to return true for valid token
198
+ mockTokenVerifier.verify.mockResolvedValue(true);
199
+ mockProcessRequest.mockResolvedValue(mockResponse);
200
+ const result = await toolFunction.perform();
197
201
  expect(result).toBe(mockResponse);
202
+ expect(mockGetTokenVerifier).toHaveBeenCalled();
203
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
204
+ expect(mockGetAppContext).toHaveBeenCalled();
205
+ expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
206
+ });
207
+ it('should return 403 response with invalid token', async () => {
208
+ // Setup mock token verifier to return false
209
+ mockTokenVerifier.verify.mockResolvedValue(false);
210
+ const result = await toolFunction.perform();
211
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
212
+ expect(mockGetTokenVerifier).toHaveBeenCalled();
213
+ expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
214
+ expect(mockProcessRequest).not.toHaveBeenCalled();
215
+ });
216
+ it('should return 403 response when organization ID does not match', async () => {
217
+ // Update mock request with different customer_id
218
+ const requestWithDifferentOrgId = {
219
+ ...mockRequest,
220
+ bodyJSON: {
221
+ ...mockRequest.bodyJSON,
222
+ auth: {
223
+ ...mockRequest.bodyJSON.auth,
224
+ credentials: {
225
+ ...mockRequest.bodyJSON.auth.credentials,
226
+ customer_id: 'different-org-123'
227
+ }
228
+ }
229
+ }
230
+ };
231
+ const toolFunctionWithDifferentOrgId = new TestToolFunction(requestWithDifferentOrgId);
232
+ const result = await toolFunctionWithDifferentOrgId.perform();
233
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
234
+ expect(mockGetAppContext).toHaveBeenCalled();
235
+ expect(mockProcessRequest).not.toHaveBeenCalled();
236
+ });
237
+ it('should return 403 response when access token is missing', async () => {
238
+ // Create request without access token
239
+ const requestWithoutToken = {
240
+ ...mockRequest,
241
+ bodyJSON: {
242
+ ...mockRequest.bodyJSON,
243
+ auth: {
244
+ ...mockRequest.bodyJSON.auth,
245
+ credentials: {
246
+ ...mockRequest.bodyJSON.auth.credentials,
247
+ access_token: undefined
248
+ }
249
+ }
250
+ }
251
+ };
252
+ const toolFunctionWithoutToken = new TestToolFunction(requestWithoutToken);
253
+ const result = await toolFunctionWithoutToken.perform();
254
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
255
+ expect(mockGetTokenVerifier).not.toHaveBeenCalled();
256
+ expect(mockProcessRequest).not.toHaveBeenCalled();
257
+ });
258
+ it('should return 403 response when organisation id is missing', async () => {
259
+ // Create request without customer_id
260
+ const requestWithoutCustomerId = {
261
+ ...mockRequest,
262
+ bodyJSON: {
263
+ ...mockRequest.bodyJSON,
264
+ auth: {
265
+ ...mockRequest.bodyJSON.auth,
266
+ credentials: {
267
+ ...mockRequest.bodyJSON.auth.credentials,
268
+ customer_id: undefined
269
+ }
270
+ }
271
+ }
272
+ };
273
+ const toolFunctionWithoutCustomerId = new TestToolFunction(requestWithoutCustomerId);
274
+ const result = await toolFunctionWithoutCustomerId.perform();
275
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
276
+ expect(mockGetTokenVerifier).not.toHaveBeenCalled();
277
+ expect(mockProcessRequest).not.toHaveBeenCalled();
278
+ });
279
+ it('should return 403 response when auth structure is missing', async () => {
280
+ // Create request without auth structure
281
+ const requestWithoutAuth = {
282
+ ...mockRequest,
283
+ bodyJSON: {
284
+ parameters: mockRequest.bodyJSON.parameters,
285
+ environment: mockRequest.bodyJSON.environment
286
+ }
287
+ };
288
+ const toolFunctionWithoutAuth = new TestToolFunction(requestWithoutAuth);
289
+ const result = await toolFunctionWithoutAuth.perform();
290
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
291
+ expect(mockGetTokenVerifier).not.toHaveBeenCalled();
292
+ expect(mockProcessRequest).not.toHaveBeenCalled();
293
+ });
294
+ it('should return 403 response when token verifier initialization fails', async () => {
295
+ // Setup mock to fail during token verifier initialization
296
+ mockGetTokenVerifier.mockRejectedValue(new Error('Failed to initialize token verifier'));
297
+ const result = await toolFunction.perform();
298
+ expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
299
+ expect(mockGetTokenVerifier).toHaveBeenCalled();
300
+ expect(mockProcessRequest).not.toHaveBeenCalled();
198
301
  });
199
302
  });
200
303
  describe('inheritance', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './function/ToolFunction';
2
2
  export * from './types/Models';
3
3
  export * from './decorator/Decorator';
4
+ export * from './auth/TokenVerifier';
4
5
  export { Tool, Interaction, InteractionResult } from './service/Service';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ exports.InteractionResult = exports.Interaction = exports.Tool = void 0;
18
18
  __exportStar(require("./function/ToolFunction"), exports);
19
19
  __exportStar(require("./types/Models"), exports);
20
20
  __exportStar(require("./decorator/Decorator"), exports);
21
+ __exportStar(require("./auth/TokenVerifier"), exports);
21
22
  var Service_1 = require("./service/Service");
22
23
  Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return Service_1.Tool; } });
23
24
  Object.defineProperty(exports, "Interaction", { enumerable: true, get: function () { return Service_1.Interaction; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,6CAAyE;AAAhE,+FAAA,IAAI,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,wDAAsC;AACtC,uDAAqC;AACrC,6CAAyE;AAAhE,+FAAA,IAAI,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}