@optimizely-opal/opal-tool-ocp-sdk 0.0.0-devmg.13 → 1.0.0-OCP-1441.2
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 +108 -15
- package/dist/auth/AuthUtils.d.ts +26 -0
- package/dist/auth/AuthUtils.d.ts.map +1 -0
- package/dist/auth/AuthUtils.js +109 -0
- package/dist/auth/AuthUtils.js.map +1 -0
- package/dist/auth/AuthUtils.test.d.ts +2 -0
- package/dist/auth/AuthUtils.test.d.ts.map +1 -0
- package/dist/auth/AuthUtils.test.js +601 -0
- package/dist/auth/AuthUtils.test.js.map +1 -0
- package/dist/auth/TokenVerifier.d.ts.map +1 -1
- package/dist/auth/TokenVerifier.js +0 -1
- package/dist/auth/TokenVerifier.js.map +1 -1
- package/dist/auth/TokenVerifier.test.js +9 -0
- package/dist/auth/TokenVerifier.test.js.map +1 -1
- package/dist/function/GlobalToolFunction.d.ts +27 -0
- package/dist/function/GlobalToolFunction.d.ts.map +1 -0
- package/dist/function/GlobalToolFunction.js +53 -0
- package/dist/function/GlobalToolFunction.js.map +1 -0
- package/dist/function/GlobalToolFunction.test.d.ts +2 -0
- package/dist/function/GlobalToolFunction.test.d.ts.map +1 -0
- package/dist/function/GlobalToolFunction.test.js +425 -0
- package/dist/function/GlobalToolFunction.test.js.map +1 -0
- package/dist/function/ToolFunction.d.ts +1 -2
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +2 -35
- package/dist/function/ToolFunction.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 +8 -7
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +16 -0
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +89 -4
- package/dist/service/Service.test.js.map +1 -1
- package/dist/validation/ParameterValidator.d.ts +42 -0
- package/dist/validation/ParameterValidator.d.ts.map +1 -0
- package/dist/validation/ParameterValidator.js +122 -0
- package/dist/validation/ParameterValidator.js.map +1 -0
- package/dist/validation/ParameterValidator.test.d.ts +2 -0
- package/dist/validation/ParameterValidator.test.d.ts.map +1 -0
- package/dist/validation/ParameterValidator.test.js +282 -0
- package/dist/validation/ParameterValidator.test.js.map +1 -0
- package/package.json +3 -4
- package/src/auth/AuthUtils.test.ts +729 -0
- package/src/auth/AuthUtils.ts +117 -0
- package/src/auth/TokenVerifier.test.ts +11 -0
- package/src/auth/TokenVerifier.ts +0 -1
- package/src/function/GlobalToolFunction.test.ts +505 -0
- package/src/function/GlobalToolFunction.ts +56 -0
- package/src/function/ToolFunction.ts +3 -41
- package/src/index.ts +1 -0
- package/src/service/Service.test.ts +129 -12
- package/src/service/Service.ts +50 -9
- package/src/validation/ParameterValidator.test.ts +341 -0
- package/src/validation/ParameterValidator.ts +153 -0
- package/dist/function/ToolFunction.test.d.ts +0 -2
- package/dist/function/ToolFunction.test.d.ts.map +0 -1
- package/dist/function/ToolFunction.test.js +0 -314
- package/dist/function/ToolFunction.test.js.map +0 -1
- package/src/function/ToolFunction.test.ts +0 -374
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenVerifier.js","sourceRoot":"","sources":["../../src/auth/TokenVerifier.ts"],"names":[],"mappings":";;;AAAA,+BAAqD;AACrD,+CAA2C;AAE3C;;GAEG;AACH,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;GAEG;AACH,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEjC;;GAEG;AACH,MAAM,aAAa,GAAG,kDAAkD,CAAC;AAEzE;;GAEG;AACH,MAAM,aAAa,GAAG,6CAA6C,CAAC;AAQpE,MAAa,aAAa;IAChB,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAC;IAC7C,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,IAAI,CAAyC;IAC7C,WAAW,GAAY,KAAK,CAAC;IAErC;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,KAAyB;QAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,iFAAiF;YACjF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;YAC5D,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;YAC1E,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAA,yBAAkB,EAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACpD,WAAW,EAAE,uBAAuB;gBACpC,gBAAgB,EAAE,uBAAuB;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,gBAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"TokenVerifier.js","sourceRoot":"","sources":["../../src/auth/TokenVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Mock the app-sdk module
|
|
4
|
+
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
5
|
+
logger: {
|
|
6
|
+
info: jest.fn(),
|
|
7
|
+
error: jest.fn(),
|
|
8
|
+
warn: jest.fn(),
|
|
9
|
+
debug: jest.fn(),
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
3
12
|
const TokenVerifier_1 = require("./TokenVerifier");
|
|
4
13
|
// Test constants
|
|
5
14
|
const TEST_ISSUER = 'https://prep.login.optimizely.com/oauth2/default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenVerifier.test.js","sourceRoot":"","sources":["../../src/auth/TokenVerifier.test.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TokenVerifier.test.js","sourceRoot":"","sources":["../../src/auth/TokenVerifier.test.ts"],"names":[],"mappings":";;AACA,0BAA0B;AAC1B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KACjB;CACF,CAAC,CAAC,CAAC;AAEJ,mDAAgD;AAEhD,iBAAiB;AACjB,MAAM,WAAW,GAAG,kDAAkD,CAAC;AACvE,MAAM,aAAa,GAAG,kDAAkD,CAAC;AAEzE,sBAAsB;AACtB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAEzB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB;QAClB,MAAM,CAAC,KAAmB,CAAC,SAAS,EAAE,CAAC;QAExC,yCAAyC;QACxC,6BAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,uDAAuD;YACtD,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC;gBAC5C,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAChC,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,aAAa;iBACxB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;YACnE,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,6BAAa,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC;gBAC5C,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBAChC,8BAA8B;iBAC/B,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,6BAAa,CAAC,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,wDAAwD,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC;gBAC5C,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,6BAAa,CAAC,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,mDAAmD,CACpD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,aAA4B,CAAC;QAEjC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,iCAAiC;YAChC,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC;gBAC5C,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAChC,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,aAAa;iBACxB,CAAC;aACH,CAAC,CAAC;YAEH,aAAa,GAAG,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpD,+BAA+B,CAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3D,+BAA+B,CAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvD,+BAA+B,CAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,iCAAiC;YAChC,MAAM,CAAC,KAAmB,CAAC,iBAAiB,CAAC;gBAC5C,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAChC,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,aAAa;iBACxB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;gBAC7D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAChC,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,aAAa;iBACxB,CAAC;aACoB,CAAC,CAAC;YAE1B,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;YAE7C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,oFAAoF,CACrF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;gBAC7D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAChC,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,aAAa;iBACxB,CAAC;aACoB,CAAC,CAAC;YAE1B,MAAM,6BAAa,CAAC,sBAAsB,EAAE,CAAC;YAE7C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,yFAAyF,CAC1F,CAAC;YAEF,gCAAgC;YAChC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { GlobalFunction, Response } from '@zaiusinc/app-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for global tool-based function execution
|
|
4
|
+
* Provides a standard interface for processing requests through registered tools
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class GlobalToolFunction extends GlobalFunction {
|
|
7
|
+
/**
|
|
8
|
+
* Override this method to implement any required credentials and/or other configuration
|
|
9
|
+
* exist and are valid. Reasonable caching should be utilized to prevent excessive requests to external resources.
|
|
10
|
+
* @async
|
|
11
|
+
* @returns true if the opal function is ready to use
|
|
12
|
+
*/
|
|
13
|
+
protected ready(): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Process the incoming request using the tools service
|
|
16
|
+
*
|
|
17
|
+
* @returns Response as the HTTP response
|
|
18
|
+
*/
|
|
19
|
+
perform(): Promise<Response>;
|
|
20
|
+
/**
|
|
21
|
+
* Authenticate the incoming request by validating only the OptiID token
|
|
22
|
+
*
|
|
23
|
+
* @returns true if authentication succeeds
|
|
24
|
+
*/
|
|
25
|
+
private authorizeRequest;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=GlobalToolFunction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAmB,MAAM,mBAAmB,CAAC;AAI9E;;;GAGG;AACH,8BAAsB,kBAAmB,SAAQ,cAAc;IAE7D;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAsBzC;;;;OAIG;YACW,gBAAgB;CAG/B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalToolFunction = void 0;
|
|
4
|
+
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
5
|
+
const AuthUtils_1 = require("../auth/AuthUtils");
|
|
6
|
+
const Service_1 = require("../service/Service");
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base class for global tool-based function execution
|
|
9
|
+
* Provides a standard interface for processing requests through registered tools
|
|
10
|
+
*/
|
|
11
|
+
class GlobalToolFunction extends app_sdk_1.GlobalFunction {
|
|
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
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Process the incoming request using the tools service
|
|
23
|
+
*
|
|
24
|
+
* @returns Response as the HTTP response
|
|
25
|
+
*/
|
|
26
|
+
async perform() {
|
|
27
|
+
// Extract customer_id from auth data for global context attribution
|
|
28
|
+
const authInfo = (0, AuthUtils_1.extractAuthData)(this.request);
|
|
29
|
+
const customerId = authInfo?.authData?.credentials?.customer_id;
|
|
30
|
+
(0, app_sdk_1.amendLogContext)({
|
|
31
|
+
opalThreadId: this.request.headers.get('x-opal-thread-id') || '',
|
|
32
|
+
customerId: customerId || ''
|
|
33
|
+
});
|
|
34
|
+
if (!(await this.authorizeRequest())) {
|
|
35
|
+
return new app_sdk_1.Response(403, { error: 'Forbidden' });
|
|
36
|
+
}
|
|
37
|
+
if (this.request.path === '/ready') {
|
|
38
|
+
const isReady = await this.ready();
|
|
39
|
+
return new app_sdk_1.Response(200, { ready: isReady });
|
|
40
|
+
}
|
|
41
|
+
return Service_1.toolsService.processRequest(this.request, this);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Authenticate the incoming request by validating only the OptiID token
|
|
45
|
+
*
|
|
46
|
+
* @returns true if authentication succeeds
|
|
47
|
+
*/
|
|
48
|
+
async authorizeRequest() {
|
|
49
|
+
return await (0, AuthUtils_1.authenticateGlobalRequest)(this.request);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.GlobalToolFunction = GlobalToolFunction;
|
|
53
|
+
//# sourceMappingURL=GlobalToolFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.ts"],"names":[],"mappings":";;;AAAA,+CAA8E;AAC9E,iDAA+E;AAC/E,gDAAkD;AAElD;;;GAGG;AACH,MAAsB,kBAAmB,SAAQ,wBAAc;IAE7D;;;;;OAKG;IACO,KAAK;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;QAEhE,IAAA,yBAAe,EAAC;YACd,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;YAChE,UAAU,EAAE,UAAU,IAAI,EAAE;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAC5B,OAAO,MAAM,IAAA,qCAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AA/CD,gDA+CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.test.d.ts","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const GlobalToolFunction_1 = require("./GlobalToolFunction");
|
|
4
|
+
const Service_1 = require("../service/Service");
|
|
5
|
+
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
6
|
+
const TokenVerifier_1 = require("../auth/TokenVerifier");
|
|
7
|
+
// Mock the dependencies
|
|
8
|
+
jest.mock('../service/Service', () => ({
|
|
9
|
+
toolsService: {
|
|
10
|
+
processRequest: jest.fn(),
|
|
11
|
+
},
|
|
12
|
+
}));
|
|
13
|
+
jest.mock('../auth/TokenVerifier', () => ({
|
|
14
|
+
getTokenVerifier: jest.fn(),
|
|
15
|
+
}));
|
|
16
|
+
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
17
|
+
GlobalFunction: class {
|
|
18
|
+
request;
|
|
19
|
+
constructor(_name) {
|
|
20
|
+
this.request = {};
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
Request: jest.fn().mockImplementation(() => ({})),
|
|
24
|
+
Response: jest.fn().mockImplementation((status, data) => ({
|
|
25
|
+
status,
|
|
26
|
+
data,
|
|
27
|
+
bodyJSON: data,
|
|
28
|
+
bodyAsU8Array: new Uint8Array()
|
|
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
|
+
},
|
|
38
|
+
}));
|
|
39
|
+
// Create a concrete implementation for testing
|
|
40
|
+
class TestGlobalToolFunction extends GlobalToolFunction_1.GlobalToolFunction {
|
|
41
|
+
mockReady;
|
|
42
|
+
constructor(request) {
|
|
43
|
+
super(request || {});
|
|
44
|
+
this.request = request;
|
|
45
|
+
this.mockReady = jest.fn().mockResolvedValue(true);
|
|
46
|
+
}
|
|
47
|
+
// Override the ready method with mock implementation for testing
|
|
48
|
+
ready() {
|
|
49
|
+
return this.mockReady();
|
|
50
|
+
}
|
|
51
|
+
getRequest() {
|
|
52
|
+
return this.request;
|
|
53
|
+
}
|
|
54
|
+
getMockReady() {
|
|
55
|
+
return this.mockReady;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
describe('GlobalToolFunction', () => {
|
|
59
|
+
let mockRequest;
|
|
60
|
+
let mockResponse;
|
|
61
|
+
let globalToolFunction;
|
|
62
|
+
let mockProcessRequest;
|
|
63
|
+
let mockGetTokenVerifier;
|
|
64
|
+
let mockGetAppContext;
|
|
65
|
+
let mockTokenVerifier;
|
|
66
|
+
beforeEach(() => {
|
|
67
|
+
jest.clearAllMocks();
|
|
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
|
|
83
|
+
// Note: Global functions don't validate customer_id, so it can be different or missing
|
|
84
|
+
mockRequest = {
|
|
85
|
+
headers: new Map(),
|
|
86
|
+
method: 'POST',
|
|
87
|
+
path: '/test',
|
|
88
|
+
bodyJSON: {
|
|
89
|
+
parameters: {
|
|
90
|
+
task_id: 'task-123',
|
|
91
|
+
content_id: 'content-456'
|
|
92
|
+
},
|
|
93
|
+
auth: {
|
|
94
|
+
provider: 'OptiID',
|
|
95
|
+
credentials: {
|
|
96
|
+
token_type: 'Bearer',
|
|
97
|
+
access_token: 'valid-access-token',
|
|
98
|
+
org_sso_id: 'org-sso-123',
|
|
99
|
+
user_id: 'user-456',
|
|
100
|
+
instance_id: 'instance-789',
|
|
101
|
+
customer_id: 'any-org-123', // Can be different from app org for global functions
|
|
102
|
+
product_sku: 'OPAL'
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
environment: {
|
|
106
|
+
execution_mode: 'headless'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
mockResponse = {};
|
|
111
|
+
globalToolFunction = new TestGlobalToolFunction(mockRequest);
|
|
112
|
+
});
|
|
113
|
+
// Helper function to create a ready request with valid auth
|
|
114
|
+
const createReadyRequestWithAuth = () => ({
|
|
115
|
+
headers: new Map(),
|
|
116
|
+
method: 'GET',
|
|
117
|
+
path: '/ready',
|
|
118
|
+
bodyJSON: {
|
|
119
|
+
auth: {
|
|
120
|
+
provider: 'OptiID',
|
|
121
|
+
credentials: {
|
|
122
|
+
access_token: 'valid-token',
|
|
123
|
+
customer_id: 'any-org-123' // Can be any org for global functions
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// Helper function to create a discovery request
|
|
129
|
+
const createDiscoveryRequest = () => ({
|
|
130
|
+
headers: new Map(),
|
|
131
|
+
method: 'GET',
|
|
132
|
+
path: '/discovery'
|
|
133
|
+
});
|
|
134
|
+
// Helper function to setup authorization mocks to pass
|
|
135
|
+
const setupAuthMocks = () => {
|
|
136
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
137
|
+
};
|
|
138
|
+
describe('/discovery endpoint', () => {
|
|
139
|
+
it('should allow discovery endpoint without authentication', async () => {
|
|
140
|
+
// Arrange
|
|
141
|
+
const discoveryRequest = createDiscoveryRequest();
|
|
142
|
+
globalToolFunction = new TestGlobalToolFunction(discoveryRequest);
|
|
143
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
144
|
+
// Act
|
|
145
|
+
const result = await globalToolFunction.perform();
|
|
146
|
+
// Assert
|
|
147
|
+
expect(result).toBe(mockResponse);
|
|
148
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled(); // Should not verify token for discovery
|
|
149
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(discoveryRequest, globalToolFunction);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe('/ready endpoint', () => {
|
|
153
|
+
beforeEach(() => {
|
|
154
|
+
setupAuthMocks();
|
|
155
|
+
});
|
|
156
|
+
it('should return ready: true when ready method returns true', async () => {
|
|
157
|
+
// Arrange
|
|
158
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
159
|
+
globalToolFunction = new TestGlobalToolFunction(readyRequest);
|
|
160
|
+
globalToolFunction.getMockReady().mockResolvedValue(true);
|
|
161
|
+
// Act
|
|
162
|
+
const result = await globalToolFunction.perform();
|
|
163
|
+
// Assert
|
|
164
|
+
expect(globalToolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
165
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
166
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
167
|
+
});
|
|
168
|
+
it('should return ready: false when ready method returns false', async () => {
|
|
169
|
+
// Arrange
|
|
170
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
171
|
+
globalToolFunction = new TestGlobalToolFunction(readyRequest);
|
|
172
|
+
globalToolFunction.getMockReady().mockResolvedValue(false);
|
|
173
|
+
// Act
|
|
174
|
+
const result = await globalToolFunction.perform();
|
|
175
|
+
// Assert
|
|
176
|
+
expect(globalToolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
177
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: false }));
|
|
178
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
179
|
+
});
|
|
180
|
+
it('should handle ready method throwing an error', async () => {
|
|
181
|
+
// Arrange
|
|
182
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
183
|
+
globalToolFunction = new TestGlobalToolFunction(readyRequest);
|
|
184
|
+
globalToolFunction.getMockReady().mockRejectedValue(new Error('Ready check failed'));
|
|
185
|
+
// Act & Assert
|
|
186
|
+
await expect(globalToolFunction.perform()).rejects.toThrow('Ready check failed');
|
|
187
|
+
expect(globalToolFunction.getMockReady()).toHaveBeenCalledTimes(1);
|
|
188
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
189
|
+
});
|
|
190
|
+
it('should use default ready implementation when not overridden', async () => {
|
|
191
|
+
// Create a class that doesn't override ready method
|
|
192
|
+
class DefaultReadyGlobalToolFunction extends GlobalToolFunction_1.GlobalToolFunction {
|
|
193
|
+
constructor(request) {
|
|
194
|
+
super(request || {});
|
|
195
|
+
this.request = request;
|
|
196
|
+
}
|
|
197
|
+
getRequest() {
|
|
198
|
+
return this.request;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Arrange
|
|
202
|
+
const readyRequest = createReadyRequestWithAuth();
|
|
203
|
+
const defaultGlobalToolFunction = new DefaultReadyGlobalToolFunction(readyRequest);
|
|
204
|
+
// Act
|
|
205
|
+
const result = await defaultGlobalToolFunction.perform();
|
|
206
|
+
// Assert - Default implementation should return true
|
|
207
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
208
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
209
|
+
});
|
|
210
|
+
it('should allow ready endpoint without authentication', async () => {
|
|
211
|
+
// Arrange
|
|
212
|
+
const readyRequestWithoutAuth = {
|
|
213
|
+
headers: new Map(),
|
|
214
|
+
method: 'GET',
|
|
215
|
+
path: '/ready'
|
|
216
|
+
};
|
|
217
|
+
globalToolFunction = new TestGlobalToolFunction(readyRequestWithoutAuth);
|
|
218
|
+
globalToolFunction.getMockReady().mockResolvedValue(true);
|
|
219
|
+
// Act
|
|
220
|
+
const result = await globalToolFunction.perform();
|
|
221
|
+
// Assert
|
|
222
|
+
expect(result).toEqual(new app_sdk_1.Response(200, { ready: true }));
|
|
223
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled(); // Should not verify token for ready
|
|
224
|
+
expect(mockProcessRequest).not.toHaveBeenCalled(); // Should not call service
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe('perform', () => {
|
|
228
|
+
it('should execute successfully with valid token (no organization validation)', async () => {
|
|
229
|
+
// Setup mock token verifier to return true for valid token
|
|
230
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
231
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
232
|
+
const result = await globalToolFunction.perform();
|
|
233
|
+
expect(result).toBe(mockResponse);
|
|
234
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
235
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
236
|
+
// Note: getAppContext should NOT be called for global functions
|
|
237
|
+
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
238
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, globalToolFunction);
|
|
239
|
+
});
|
|
240
|
+
it('should execute successfully even with different organization ID', async () => {
|
|
241
|
+
// Update mock request with different customer_id (should still work for global functions)
|
|
242
|
+
const requestWithDifferentOrgId = {
|
|
243
|
+
...mockRequest,
|
|
244
|
+
bodyJSON: {
|
|
245
|
+
...mockRequest.bodyJSON,
|
|
246
|
+
auth: {
|
|
247
|
+
...mockRequest.bodyJSON.auth,
|
|
248
|
+
credentials: {
|
|
249
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
250
|
+
customer_id: 'completely-different-org-456'
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
const globalToolFunctionWithDifferentOrgId = new TestGlobalToolFunction(requestWithDifferentOrgId);
|
|
256
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
257
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
258
|
+
const result = await globalToolFunctionWithDifferentOrgId.perform();
|
|
259
|
+
expect(result).toBe(mockResponse);
|
|
260
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
261
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
262
|
+
// Note: Should NOT validate organization ID for global functions
|
|
263
|
+
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
264
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithDifferentOrgId, globalToolFunctionWithDifferentOrgId);
|
|
265
|
+
});
|
|
266
|
+
it('should execute successfully even without customer_id', async () => {
|
|
267
|
+
// Create request without customer_id (should still work for global functions)
|
|
268
|
+
const requestWithoutCustomerId = {
|
|
269
|
+
...mockRequest,
|
|
270
|
+
bodyJSON: {
|
|
271
|
+
...mockRequest.bodyJSON,
|
|
272
|
+
auth: {
|
|
273
|
+
...mockRequest.bodyJSON.auth,
|
|
274
|
+
credentials: {
|
|
275
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
276
|
+
customer_id: undefined
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
const globalToolFunctionWithoutCustomerId = new TestGlobalToolFunction(requestWithoutCustomerId);
|
|
282
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
283
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
284
|
+
const result = await globalToolFunctionWithoutCustomerId.perform();
|
|
285
|
+
expect(result).toBe(mockResponse);
|
|
286
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
287
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
288
|
+
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
289
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithoutCustomerId, globalToolFunctionWithoutCustomerId);
|
|
290
|
+
});
|
|
291
|
+
it('should return 403 response with invalid token', async () => {
|
|
292
|
+
// Setup mock token verifier to return false
|
|
293
|
+
mockTokenVerifier.verify.mockResolvedValue(false);
|
|
294
|
+
const result = await globalToolFunction.perform();
|
|
295
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
296
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
297
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
298
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
299
|
+
});
|
|
300
|
+
it('should return 403 response when access token is missing', async () => {
|
|
301
|
+
// Create request without access token
|
|
302
|
+
const requestWithoutToken = {
|
|
303
|
+
...mockRequest,
|
|
304
|
+
bodyJSON: {
|
|
305
|
+
...mockRequest.bodyJSON,
|
|
306
|
+
auth: {
|
|
307
|
+
...mockRequest.bodyJSON.auth,
|
|
308
|
+
credentials: {
|
|
309
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
310
|
+
access_token: undefined
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
const globalToolFunctionWithoutToken = new TestGlobalToolFunction(requestWithoutToken);
|
|
316
|
+
const result = await globalToolFunctionWithoutToken.perform();
|
|
317
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
318
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
319
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
320
|
+
});
|
|
321
|
+
it('should return 403 response when provider is not OptiID', async () => {
|
|
322
|
+
// Create request with different provider
|
|
323
|
+
const requestWithDifferentProvider = {
|
|
324
|
+
...mockRequest,
|
|
325
|
+
bodyJSON: {
|
|
326
|
+
...mockRequest.bodyJSON,
|
|
327
|
+
auth: {
|
|
328
|
+
...mockRequest.bodyJSON.auth,
|
|
329
|
+
provider: 'SomeOtherProvider'
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
const globalToolFunctionWithDifferentProvider = new TestGlobalToolFunction(requestWithDifferentProvider);
|
|
334
|
+
const result = await globalToolFunctionWithDifferentProvider.perform();
|
|
335
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
336
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
337
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
338
|
+
});
|
|
339
|
+
it('should return 403 response when auth structure is missing', async () => {
|
|
340
|
+
// Create request without auth structure
|
|
341
|
+
const requestWithoutAuth = {
|
|
342
|
+
...mockRequest,
|
|
343
|
+
bodyJSON: {
|
|
344
|
+
parameters: mockRequest.bodyJSON.parameters,
|
|
345
|
+
environment: mockRequest.bodyJSON.environment
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
const globalToolFunctionWithoutAuth = new TestGlobalToolFunction(requestWithoutAuth);
|
|
349
|
+
const result = await globalToolFunctionWithoutAuth.perform();
|
|
350
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
351
|
+
expect(mockGetTokenVerifier).not.toHaveBeenCalled();
|
|
352
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
353
|
+
});
|
|
354
|
+
it('should return 403 response when token verifier initialization fails', async () => {
|
|
355
|
+
// Setup mock to fail during token verifier initialization
|
|
356
|
+
mockGetTokenVerifier.mockRejectedValue(new Error('Failed to initialize token verifier'));
|
|
357
|
+
const result = await globalToolFunction.perform();
|
|
358
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
359
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
360
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
361
|
+
});
|
|
362
|
+
it('should return 403 response when token validation throws an error', async () => {
|
|
363
|
+
// Setup mock token verifier to throw an error
|
|
364
|
+
mockTokenVerifier.verify.mockRejectedValue(new Error('Token validation failed'));
|
|
365
|
+
const result = await globalToolFunction.perform();
|
|
366
|
+
expect(result).toEqual(new app_sdk_1.Response(403, { error: 'Forbidden' }));
|
|
367
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
368
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
369
|
+
expect(mockProcessRequest).not.toHaveBeenCalled();
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
describe('inheritance', () => {
|
|
373
|
+
it('should be an instance of GlobalFunction', () => {
|
|
374
|
+
// Assert
|
|
375
|
+
expect(globalToolFunction).toBeInstanceOf(GlobalToolFunction_1.GlobalToolFunction);
|
|
376
|
+
});
|
|
377
|
+
it('should have access to the request property', () => {
|
|
378
|
+
// Assert
|
|
379
|
+
expect(globalToolFunction.getRequest()).toBe(mockRequest);
|
|
380
|
+
});
|
|
381
|
+
});
|
|
382
|
+
describe('authentication differences from ToolFunction', () => {
|
|
383
|
+
it('should NOT validate organization ID (unlike ToolFunction)', async () => {
|
|
384
|
+
// This test demonstrates the key difference between GlobalToolFunction and ToolFunction
|
|
385
|
+
// GlobalToolFunction should work with any customer_id, while ToolFunction requires matching org ID
|
|
386
|
+
const requestWithRandomOrgId = {
|
|
387
|
+
...mockRequest,
|
|
388
|
+
bodyJSON: {
|
|
389
|
+
...mockRequest.bodyJSON,
|
|
390
|
+
auth: {
|
|
391
|
+
...mockRequest.bodyJSON.auth,
|
|
392
|
+
credentials: {
|
|
393
|
+
...mockRequest.bodyJSON.auth.credentials,
|
|
394
|
+
customer_id: 'random-org-999' // This would fail in ToolFunction but should work here
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
const globalToolFunctionWithRandomOrgId = new TestGlobalToolFunction(requestWithRandomOrgId);
|
|
400
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
401
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
402
|
+
const result = await globalToolFunctionWithRandomOrgId.perform();
|
|
403
|
+
// Should succeed even with different org ID
|
|
404
|
+
expect(result).toBe(mockResponse);
|
|
405
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
406
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
407
|
+
// Crucially: getAppContext should NOT be called (no org validation)
|
|
408
|
+
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
409
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(requestWithRandomOrgId, globalToolFunctionWithRandomOrgId);
|
|
410
|
+
});
|
|
411
|
+
it('should only require valid OptiID token (no organization constraints)', async () => {
|
|
412
|
+
// Test that only token validation is performed, no org validation
|
|
413
|
+
mockTokenVerifier.verify.mockResolvedValue(true);
|
|
414
|
+
mockProcessRequest.mockResolvedValue(mockResponse);
|
|
415
|
+
const result = await globalToolFunction.perform();
|
|
416
|
+
expect(result).toBe(mockResponse);
|
|
417
|
+
expect(mockGetTokenVerifier).toHaveBeenCalled();
|
|
418
|
+
expect(mockTokenVerifier.verify).toHaveBeenCalledWith('valid-access-token');
|
|
419
|
+
// Key assertion: getAppContext should never be called for global functions
|
|
420
|
+
expect(mockGetAppContext).not.toHaveBeenCalled();
|
|
421
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, globalToolFunction);
|
|
422
|
+
});
|
|
423
|
+
});
|
|
424
|
+
});
|
|
425
|
+
//# sourceMappingURL=GlobalToolFunction.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalToolFunction.test.js","sourceRoot":"","sources":["../../src/function/GlobalToolFunction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,8 @@ export declare abstract class ToolFunction extends Function {
|
|
|
20
20
|
/**
|
|
21
21
|
* Authenticate the incoming request by validating the OptiID token and organization ID
|
|
22
22
|
*
|
|
23
|
-
* @
|
|
23
|
+
* @returns true if authentication succeeds
|
|
24
24
|
*/
|
|
25
25
|
private authorizeRequest;
|
|
26
|
-
private validateAccessToken;
|
|
27
26
|
}
|
|
28
27
|
//# sourceMappingURL=ToolFunction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAmB,MAAM,mBAAmB,CAAC;AAGxE;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,QAAQ;IAEjD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAczC;;;;OAIG;YACW,gBAAgB;CAG/B"}
|