@optimizely-opal/opal-tool-ocp-sdk 0.0.0-beta.7 → 0.0.0-beta.8
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 +9 -43
- package/dist/auth/TokenVerifier.d.ts +31 -0
- package/dist/auth/TokenVerifier.d.ts.map +1 -0
- package/dist/auth/TokenVerifier.js +127 -0
- package/dist/auth/TokenVerifier.js.map +1 -0
- package/dist/auth/TokenVerifier.test.d.ts +2 -0
- package/dist/auth/TokenVerifier.test.d.ts.map +1 -0
- package/dist/auth/TokenVerifier.test.js +114 -0
- package/dist/auth/TokenVerifier.test.js.map +1 -0
- package/dist/function/ToolFunction.d.ts +4 -7
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +35 -10
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +177 -196
- package/dist/function/ToolFunction.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/Service.d.ts +7 -7
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +22 -16
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +8 -3
- package/dist/service/Service.test.js.map +1 -1
- package/dist/types/Models.d.ts +5 -5
- package/dist/types/Models.d.ts.map +1 -1
- package/dist/types/Models.js +9 -9
- package/dist/types/Models.js.map +1 -1
- package/package.json +5 -3
- package/src/auth/TokenVerifier.test.ts +152 -0
- package/src/auth/TokenVerifier.ts +145 -0
- package/src/function/ToolFunction.test.ts +194 -214
- package/src/function/ToolFunction.ts +41 -11
- package/src/index.ts +1 -0
- package/src/service/Service.test.ts +8 -3
- package/src/service/Service.ts +22 -17
- package/src/types/Models.ts +4 -4
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
},
|
|
@@ -27,33 +28,29 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
27
28
|
bodyAsU8Array: new Uint8Array()
|
|
28
29
|
})),
|
|
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
|
+
},
|
|
30
38
|
}));
|
|
31
39
|
// Create a concrete implementation for testing
|
|
32
40
|
class TestToolFunction extends ToolFunction_1.ToolFunction {
|
|
33
|
-
mockValidateBearerToken;
|
|
34
41
|
mockReady;
|
|
35
42
|
constructor(request) {
|
|
36
|
-
super(request || {});
|
|
37
|
-
// Set the request directly without defaulting to empty object
|
|
43
|
+
super(request || {});
|
|
38
44
|
this.request = request;
|
|
39
|
-
this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
|
|
40
45
|
this.mockReady = jest.fn().mockResolvedValue(true);
|
|
41
46
|
}
|
|
42
|
-
// Override the concrete method with mock implementation for testing
|
|
43
|
-
validateBearerToken(bearerToken) {
|
|
44
|
-
return this.mockValidateBearerToken(bearerToken);
|
|
45
|
-
}
|
|
46
47
|
// Override the ready method with mock implementation for testing
|
|
47
48
|
ready() {
|
|
48
49
|
return this.mockReady();
|
|
49
50
|
}
|
|
50
|
-
// Expose request and validation mock for testing
|
|
51
51
|
getRequest() {
|
|
52
52
|
return this.request;
|
|
53
53
|
}
|
|
54
|
-
getMockValidateBearerToken() {
|
|
55
|
-
return this.mockValidateBearerToken;
|
|
56
|
-
}
|
|
57
54
|
getMockReady() {
|
|
58
55
|
return this.mockReady;
|
|
59
56
|
}
|
|
@@ -63,30 +60,86 @@ describe('ToolFunction', () => {
|
|
|
63
60
|
let mockResponse;
|
|
64
61
|
let toolFunction;
|
|
65
62
|
let mockProcessRequest;
|
|
66
|
-
let
|
|
63
|
+
let mockGetTokenVerifier;
|
|
64
|
+
let mockGetAppContext;
|
|
65
|
+
let mockTokenVerifier;
|
|
67
66
|
beforeEach(() => {
|
|
68
67
|
jest.clearAllMocks();
|
|
69
|
-
// Create mock
|
|
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
|
|
70
83
|
mockRequest = {
|
|
71
84
|
headers: new Map(),
|
|
72
85
|
method: 'POST',
|
|
73
|
-
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
|
+
}
|
|
74
108
|
};
|
|
75
109
|
mockResponse = {};
|
|
76
|
-
// Setup the mocks
|
|
77
|
-
mockProcessRequest = jest.mocked(Service_1.toolsService.processRequest);
|
|
78
|
-
mockExtractBearerToken = jest.mocked(Service_1.toolsService.extractBearerToken);
|
|
79
|
-
// Create test instance
|
|
80
110
|
toolFunction = new TestToolFunction(mockRequest);
|
|
81
111
|
});
|
|
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
|
+
}
|
|
134
|
+
});
|
|
135
|
+
};
|
|
82
136
|
describe('/ready endpoint', () => {
|
|
137
|
+
beforeEach(() => {
|
|
138
|
+
setupAuthMocks();
|
|
139
|
+
});
|
|
83
140
|
it('should return ready: true when ready method returns true', async () => {
|
|
84
141
|
// Arrange
|
|
85
|
-
const readyRequest =
|
|
86
|
-
headers: new Map(),
|
|
87
|
-
method: 'GET',
|
|
88
|
-
path: '/ready'
|
|
89
|
-
};
|
|
142
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
90
143
|
toolFunction = new TestToolFunction(readyRequest);
|
|
91
144
|
toolFunction.getMockReady().mockResolvedValue(true);
|
|
92
145
|
// Act
|
|
@@ -98,11 +151,7 @@ describe('ToolFunction', () => {
|
|
|
98
151
|
});
|
|
99
152
|
it('should return ready: false when ready method returns false', async () => {
|
|
100
153
|
// Arrange
|
|
101
|
-
const readyRequest =
|
|
102
|
-
headers: new Map(),
|
|
103
|
-
method: 'GET',
|
|
104
|
-
path: '/ready'
|
|
105
|
-
};
|
|
154
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
106
155
|
toolFunction = new TestToolFunction(readyRequest);
|
|
107
156
|
toolFunction.getMockReady().mockResolvedValue(false);
|
|
108
157
|
// Act
|
|
@@ -114,11 +163,7 @@ describe('ToolFunction', () => {
|
|
|
114
163
|
});
|
|
115
164
|
it('should handle ready method throwing an error', async () => {
|
|
116
165
|
// Arrange
|
|
117
|
-
const readyRequest =
|
|
118
|
-
headers: new Map(),
|
|
119
|
-
method: 'GET',
|
|
120
|
-
path: '/ready'
|
|
121
|
-
};
|
|
166
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
122
167
|
toolFunction = new TestToolFunction(readyRequest);
|
|
123
168
|
toolFunction.getMockReady().mockRejectedValue(new Error('Ready check failed'));
|
|
124
169
|
// Act & Assert
|
|
@@ -126,46 +171,6 @@ describe('ToolFunction', () => {
|
|
|
126
171
|
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
127
172
|
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
128
173
|
});
|
|
129
|
-
it('should handle /ready endpoint after bearer token validation passes', async () => {
|
|
130
|
-
// Arrange
|
|
131
|
-
const readyRequest = {
|
|
132
|
-
headers: new Map([['authorization', 'Bearer valid-token']]),
|
|
133
|
-
method: 'GET',
|
|
134
|
-
path: '/ready'
|
|
135
|
-
};
|
|
136
|
-
toolFunction = new TestToolFunction(readyRequest);
|
|
137
|
-
toolFunction.getMockReady().mockResolvedValue(true);
|
|
138
|
-
mockExtractBearerToken.mockReturnValue('valid-token');
|
|
139
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(true); // Make sure auth passes so we reach /ready
|
|
140
|
-
// Act
|
|
141
|
-
const result = await toolFunction.perform();
|
|
142
|
-
// Assert
|
|
143
|
-
expect(toolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
144
|
-
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
145
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(readyRequest.headers); // Auth is checked first
|
|
146
|
-
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith('valid-token'); // Auth validation happens
|
|
147
|
-
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
148
|
-
});
|
|
149
|
-
it('should return 403 when bearer token validation fails even for /ready endpoint', async () => {
|
|
150
|
-
// Arrange
|
|
151
|
-
const readyRequest = {
|
|
152
|
-
headers: new Map([['authorization', 'Bearer invalid-token']]),
|
|
153
|
-
method: 'GET',
|
|
154
|
-
path: '/ready'
|
|
155
|
-
};
|
|
156
|
-
toolFunction = new TestToolFunction(readyRequest);
|
|
157
|
-
toolFunction.getMockReady().mockResolvedValue(true);
|
|
158
|
-
mockExtractBearerToken.mockReturnValue('invalid-token');
|
|
159
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(false); // Auth fails
|
|
160
|
-
// Act
|
|
161
|
-
const result = await toolFunction.perform();
|
|
162
|
-
// Assert
|
|
163
|
-
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
164
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(readyRequest.headers);
|
|
165
|
-
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith('invalid-token');
|
|
166
|
-
expect(toolFunction.getMockReady()).not.toHaveBeenCalled(); // Should not reach ready check
|
|
167
|
-
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
168
|
-
});
|
|
169
174
|
it('should use default ready implementation when not overridden', async () => {
|
|
170
175
|
// Create a class that doesn't override ready method
|
|
171
176
|
class DefaultReadyToolFunction extends ToolFunction_1.ToolFunction {
|
|
@@ -178,11 +183,7 @@ describe('ToolFunction', () => {
|
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
185
|
// Arrange
|
|
181
|
-
const readyRequest =
|
|
182
|
-
headers: new Map(),
|
|
183
|
-
method: 'GET',
|
|
184
|
-
path: '/ready'
|
|
185
|
-
};
|
|
186
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
186
187
|
const defaultToolFunction = new DefaultReadyToolFunction(readyRequest);
|
|
187
188
|
// Act
|
|
188
189
|
const result = await defaultToolFunction.perform();
|
|
@@ -191,132 +192,112 @@ describe('ToolFunction', () => {
|
|
|
191
192
|
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
192
193
|
});
|
|
193
194
|
});
|
|
194
|
-
describe('
|
|
195
|
-
it('should
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
199
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(true);
|
|
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);
|
|
200
199
|
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
201
|
-
// Act
|
|
202
200
|
const result = await toolFunction.perform();
|
|
203
|
-
// Assert
|
|
204
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
205
|
-
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
206
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
207
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);
|
|
208
206
|
});
|
|
209
|
-
it('should return 403
|
|
210
|
-
//
|
|
211
|
-
|
|
212
|
-
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
213
|
-
toolFunction.getMockValidateBearerToken().mockReturnValue(false);
|
|
214
|
-
// Act
|
|
207
|
+
it('should return 403 response with invalid token', async () => {
|
|
208
|
+
// Setup mock token verifier to return false
|
|
209
|
+
mockTokenVerifier.verify.mockResolvedValue(false);
|
|
215
210
|
const result = await toolFunction.perform();
|
|
216
|
-
// Assert
|
|
217
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
218
|
-
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
219
|
-
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
220
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();
|
|
221
215
|
});
|
|
222
|
-
it('should
|
|
223
|
-
//
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
toolFunction.getMockValidateBearerToken().mockImplementation(() => {
|
|
242
|
-
throw new Error('Token validation error');
|
|
243
|
-
});
|
|
244
|
-
// Act & Assert
|
|
245
|
-
await expect(toolFunction.perform()).rejects.toThrow('Token validation error');
|
|
246
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
247
|
-
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
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();
|
|
248
235
|
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
249
236
|
});
|
|
250
|
-
it('should
|
|
251
|
-
//
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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();
|
|
261
257
|
});
|
|
262
|
-
it('should
|
|
263
|
-
//
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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();
|
|
273
278
|
});
|
|
274
|
-
it('should
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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();
|
|
285
293
|
});
|
|
286
|
-
it('should
|
|
287
|
-
//
|
|
288
|
-
|
|
289
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
290
|
-
// Act
|
|
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'));
|
|
291
297
|
const result = await toolFunction.perform();
|
|
292
|
-
|
|
293
|
-
expect(
|
|
294
|
-
expect(
|
|
295
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
296
|
-
expect(result).toBe(mockResponse);
|
|
297
|
-
});
|
|
298
|
-
it('should use default validateBearerToken implementation when not overridden', async () => {
|
|
299
|
-
// Create a class that doesn't override validateBearerToken
|
|
300
|
-
class DefaultToolFunction extends ToolFunction_1.ToolFunction {
|
|
301
|
-
constructor(request) {
|
|
302
|
-
super(request || {});
|
|
303
|
-
this.request = request;
|
|
304
|
-
}
|
|
305
|
-
getRequest() {
|
|
306
|
-
return this.request;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
// Arrange
|
|
310
|
-
const defaultToolFunction = new DefaultToolFunction(mockRequest);
|
|
311
|
-
const bearerToken = 'any-token';
|
|
312
|
-
mockExtractBearerToken.mockReturnValue(bearerToken);
|
|
313
|
-
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
314
|
-
// Act
|
|
315
|
-
const result = await defaultToolFunction.perform();
|
|
316
|
-
// Assert - Default implementation should return true and allow request to proceed
|
|
317
|
-
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
318
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, defaultToolFunction);
|
|
319
|
-
expect(result).toBe(mockResponse);
|
|
298
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
299
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
300
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
320
301
|
});
|
|
321
302
|
});
|
|
322
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
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
|
@@ -27,7 +27,7 @@ export declare class Tool<TAuthData> {
|
|
|
27
27
|
parameters: Parameter[];
|
|
28
28
|
endpoint: string;
|
|
29
29
|
handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>;
|
|
30
|
-
authRequirements
|
|
30
|
+
authRequirements: AuthRequirement[];
|
|
31
31
|
/**
|
|
32
32
|
* HTTP method for the endpoint (default: POST)
|
|
33
33
|
*/
|
|
@@ -39,9 +39,9 @@ export declare class Tool<TAuthData> {
|
|
|
39
39
|
* @param parameters Function parameters
|
|
40
40
|
* @param endpoint API endpoint
|
|
41
41
|
* @param handler Function implementing the tool
|
|
42
|
-
* @param authRequirements Authentication requirements (
|
|
42
|
+
* @param authRequirements Authentication requirements (mandatory - OptiID enforced)
|
|
43
43
|
*/
|
|
44
|
-
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[]
|
|
44
|
+
constructor(name: string, description: string, parameters: Parameter[], endpoint: string, handler: (functionContext: ToolFunction, params: unknown, authData?: TAuthData) => Promise<unknown>, authRequirements?: AuthRequirement[]);
|
|
45
45
|
/**
|
|
46
46
|
* Convert to JSON for the discovery endpoint
|
|
47
47
|
*/
|
|
@@ -51,11 +51,11 @@ export declare class ToolsService {
|
|
|
51
51
|
private functions;
|
|
52
52
|
private interactions;
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @param
|
|
56
|
-
* @returns
|
|
54
|
+
* Enforce OptiID authentication for tools by ensuring OptiID auth requirement is present
|
|
55
|
+
* @param authRequirements Original authentication requirements
|
|
56
|
+
* @returns Enforced authentication requirements with OptiID
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
private enforceOptiIdAuth;
|
|
59
59
|
/**
|
|
60
60
|
* Register a tool function with generic auth data
|
|
61
61
|
* @param name Tool name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD;;GAEG;AACH,qBAAa,iBAAiB;IAEnB,OAAO,EAAE,MAAM;IACf,IAAI,CAAC,EAAE,MAAM;gBADb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAEvB;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,SAAS;IAEvB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;gBAF3G,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;CAErH;AAED;;GAEG;AACH,qBAAa,IAAI,CAAC,SAAS;IAgBhB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,SAAS,EAAE;IACvB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC;IACnG,gBAAgB,EAAE,eAAe,EAAE;IApB5C;;OAEG;IACI,UAAU,EAAE,MAAM,CAAU;IAEnC;;;;;;;;OAQG;gBAEM,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,gBAAgB,GAAE,eAAe,EAA0B;IAGpE;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYzC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA4C;IAEhE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;;OAQG;IACI,YAAY,CAAC,SAAS,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACnG,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,IAAI;IAOP;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAC3G,QAAQ,EAAE,MAAM,GACf,IAAI;IAKM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;CAiDlF;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|