@versori/run 0.0.1-alpha.6 → 0.1.0-alpha.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/{script/deps/jsr.io/@std/fmt/1.0.5 → esm/deps/jsr.io/@std/fmt/1.0.6}/colors.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
- package/esm/src/context/Context.d.ts +6 -1
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +17 -3
- package/esm/src/context/ContextProvider.d.ts +3 -2
- package/esm/src/context/ContextProvider.d.ts.map +1 -1
- package/esm/src/context/ContextProvider.js +2 -2
- package/esm/src/dsl/http/default.d.ts.map +1 -1
- package/esm/src/dsl/http/default.js +3 -1
- package/esm/src/dsl/http/types.d.ts +122 -16
- package/esm/src/dsl/http/types.d.ts.map +1 -1
- package/esm/src/dsl/http/types.js +6 -2
- package/esm/src/dsl/http/versori/configloader.d.ts +2 -2
- package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/configloader.js +9 -3
- package/esm/src/dsl/http/versori/constants.d.ts +10 -0
- package/esm/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/esm/src/dsl/http/versori/constants.js +12 -0
- package/esm/src/dsl/http/versori/internalauth.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/internalauth.js +10 -9
- package/esm/src/dsl/http/versori/platformapi.d.ts +14 -0
- package/esm/src/dsl/http/versori/platformapi.d.ts.map +1 -0
- package/esm/src/dsl/http/versori/platformapi.js +91 -0
- package/esm/src/dsl/http/versori/roundtripper.d.ts +13 -6
- package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/roundtripper.js +171 -53
- package/esm/src/dsl/tasks/HttpTask.d.ts +18 -2
- package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/esm/src/dsl/tasks/HttpTask.js +82 -0
- package/esm/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
- package/esm/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
- package/esm/src/dsl/triggers/ScheduleTrigger.js +10 -3
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.js +12 -3
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/background.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/background.js +4 -2
- package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/http.js +6 -12
- package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/schedule.js +32 -6
- package/esm/src/interpreter/memory/compilers/serial.js +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.js +20 -4
- package/package.json +2 -1
- package/{esm/deps/jsr.io/@std/fmt/1.0.5 → script/deps/jsr.io/@std/fmt/1.0.6}/colors.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
- package/script/src/context/Context.d.ts +6 -1
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +17 -3
- package/script/src/context/ContextProvider.d.ts +3 -2
- package/script/src/context/ContextProvider.d.ts.map +1 -1
- package/script/src/context/ContextProvider.js +2 -2
- package/script/src/dsl/http/default.d.ts.map +1 -1
- package/script/src/dsl/http/default.js +3 -1
- package/script/src/dsl/http/types.d.ts +122 -16
- package/script/src/dsl/http/types.d.ts.map +1 -1
- package/script/src/dsl/http/types.js +7 -1
- package/script/src/dsl/http/versori/configloader.d.ts +2 -2
- package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/script/src/dsl/http/versori/configloader.js +10 -4
- package/script/src/dsl/http/versori/constants.d.ts +10 -0
- package/script/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/script/src/dsl/http/versori/constants.js +15 -0
- package/script/src/dsl/http/versori/internalauth.d.ts.map +1 -1
- package/script/src/dsl/http/versori/internalauth.js +10 -9
- package/script/src/dsl/http/versori/platformapi.d.ts +14 -0
- package/script/src/dsl/http/versori/platformapi.d.ts.map +1 -0
- package/script/src/dsl/http/versori/platformapi.js +118 -0
- package/script/src/dsl/http/versori/roundtripper.d.ts +13 -6
- package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/script/src/dsl/http/versori/roundtripper.js +170 -53
- package/script/src/dsl/tasks/HttpTask.d.ts +18 -2
- package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/script/src/dsl/tasks/HttpTask.js +84 -1
- package/script/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
- package/script/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
- package/script/src/dsl/triggers/ScheduleTrigger.js +10 -3
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/memory/MemoryInterpreter.js +12 -3
- package/script/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
- package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/background.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/background.js +3 -1
- package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/http.js +5 -11
- package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/schedule.js +32 -6
- package/script/src/interpreter/memory/compilers/serial.js +1 -1
- package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/webhook.js +20 -4
- package/esm/src/dsl/http/versori/connectapi.d.ts +0 -11
- package/esm/src/dsl/http/versori/connectapi.d.ts.map +0 -1
- package/esm/src/dsl/http/versori/connectapi.js +0 -57
- package/script/src/dsl/http/versori/connectapi.d.ts +0 -11
- package/script/src/dsl/http/versori/connectapi.d.ts.map +0 -1
- package/script/src/dsl/http/versori/connectapi.js +0 -61
- /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
|
@@ -23,18 +23,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.LoadConfigFromFile = LoadConfigFromFile;
|
|
27
27
|
const dntShim = __importStar(require("../../../../_dnt.shims.js"));
|
|
28
|
+
const constants_js_1 = require("./constants.js");
|
|
28
29
|
/**
|
|
29
30
|
* Loads the Versori SDK configuration from a JSON file.
|
|
30
31
|
*
|
|
31
|
-
* This function reads the
|
|
32
|
+
* This function reads the config file synchronously and parses its content
|
|
32
33
|
* into a `VersoriSDKConfig` object. This assumes the config file is in the root where
|
|
33
34
|
* the application is run.
|
|
34
35
|
*
|
|
35
36
|
* @returns {VersoriSDKConfig} The parsed configuration object.
|
|
36
37
|
*/
|
|
37
|
-
function
|
|
38
|
-
|
|
38
|
+
function LoadConfigFromFile() {
|
|
39
|
+
// Get the config file name from the environment variable
|
|
40
|
+
const configFileName = dntShim.Deno.env.get(constants_js_1.envVarConfigFile);
|
|
41
|
+
if (!configFileName) {
|
|
42
|
+
throw new Error(`Environment variable ${constants_js_1.envVarConfigFile} is not set`);
|
|
43
|
+
}
|
|
44
|
+
const cfg = JSON.parse(dntShim.Deno.readTextFileSync(configFileName));
|
|
39
45
|
return cfg;
|
|
40
46
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const envVarOrgId = "RUN_ORGANISATION_ID";
|
|
2
|
+
export declare const envVarEnvId = "RUN_ENVIRONMENT_ID";
|
|
3
|
+
export declare const envVarPlatformApiBaseURL = "RUN_PLATFORM_API_INTERNAL_URL";
|
|
4
|
+
export declare const envVarCredsBaseURL = "RUN_CREDENTIALS_SERVICE_INTERNAL_URL";
|
|
5
|
+
export declare const envVarConfigFile = "RUN_CONFIG_FILE";
|
|
6
|
+
export declare const envVarClientId = "RUN_CLIENT_ID";
|
|
7
|
+
export declare const envVarClientSecret = "RUN_CLIENT_SECRET";
|
|
8
|
+
export declare const envVarTokenEndpoint = "RUN_TOKEN_ENDPOINT";
|
|
9
|
+
export declare const envVarInternalToken = "RUN_INTERNAL_TOKEN";
|
|
10
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AAGzE,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAGlD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.envVarInternalToken = exports.envVarTokenEndpoint = exports.envVarClientSecret = exports.envVarClientId = exports.envVarConfigFile = exports.envVarCredsBaseURL = exports.envVarPlatformApiBaseURL = exports.envVarEnvId = exports.envVarOrgId = void 0;
|
|
4
|
+
// This file contains constants used in the Versori DSL HTTP client.
|
|
5
|
+
exports.envVarOrgId = 'RUN_ORGANISATION_ID';
|
|
6
|
+
exports.envVarEnvId = 'RUN_ENVIRONMENT_ID';
|
|
7
|
+
exports.envVarPlatformApiBaseURL = 'RUN_PLATFORM_API_INTERNAL_URL';
|
|
8
|
+
exports.envVarCredsBaseURL = 'RUN_CREDENTIALS_SERVICE_INTERNAL_URL';
|
|
9
|
+
// The following environment variables are used for the config file
|
|
10
|
+
exports.envVarConfigFile = 'RUN_CONFIG_FILE';
|
|
11
|
+
// The following environment variables are used for internal authentication
|
|
12
|
+
exports.envVarClientId = 'RUN_CLIENT_ID';
|
|
13
|
+
exports.envVarClientSecret = 'RUN_CLIENT_SECRET';
|
|
14
|
+
exports.envVarTokenEndpoint = 'RUN_TOKEN_ENDPOINT';
|
|
15
|
+
exports.envVarInternalToken = 'RUN_INTERNAL_TOKEN';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalauth.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/internalauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internalauth.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/internalauth.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;;IA2BpB,QAAQ;CAsBjB"}
|
|
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.InternalAuth = void 0;
|
|
27
27
|
const dntShim = __importStar(require("../../../../_dnt.shims.js"));
|
|
28
|
+
const constants_js_1 = require("./constants.js");
|
|
28
29
|
class InternalAuth {
|
|
29
30
|
constructor() {
|
|
30
31
|
Object.defineProperty(this, "clientId", {
|
|
@@ -57,25 +58,25 @@ class InternalAuth {
|
|
|
57
58
|
writable: true,
|
|
58
59
|
value: void 0
|
|
59
60
|
});
|
|
60
|
-
this.clientId = dntShim.Deno.env.get(
|
|
61
|
-
this.clientSecret = dntShim.Deno.env.get(
|
|
62
|
-
this.tokenEndpoint = dntShim.Deno.env.get(
|
|
61
|
+
this.clientId = dntShim.Deno.env.get(constants_js_1.envVarClientId) || '';
|
|
62
|
+
this.clientSecret = dntShim.Deno.env.get(constants_js_1.envVarClientSecret) || '';
|
|
63
|
+
this.tokenEndpoint = dntShim.Deno.env.get(constants_js_1.envVarTokenEndpoint) || '';
|
|
63
64
|
this.accessToken = '';
|
|
64
65
|
this.expiresAt = 0;
|
|
65
|
-
if (dntShim.Deno.env.get(
|
|
66
|
-
this.accessToken = dntShim.Deno.env.get(
|
|
66
|
+
if (dntShim.Deno.env.get(constants_js_1.envVarInternalToken)) {
|
|
67
|
+
this.accessToken = dntShim.Deno.env.get(constants_js_1.envVarInternalToken) || '';
|
|
67
68
|
this.expiresAt = Date.now() + 365 * 24 * 60 * 60 * 1000; // expires in 1 year
|
|
68
|
-
console.log(
|
|
69
|
+
console.log(`Using static token provided by ${constants_js_1.envVarInternalToken}`);
|
|
69
70
|
return;
|
|
70
71
|
}
|
|
71
72
|
if (!this.clientId || !this.clientSecret || !this.tokenEndpoint) {
|
|
72
73
|
const missingVars = [];
|
|
73
74
|
if (!this.clientId)
|
|
74
|
-
missingVars.push(
|
|
75
|
+
missingVars.push(constants_js_1.envVarClientId);
|
|
75
76
|
if (!this.clientSecret)
|
|
76
|
-
missingVars.push(
|
|
77
|
+
missingVars.push(constants_js_1.envVarClientSecret);
|
|
77
78
|
if (!this.tokenEndpoint)
|
|
78
|
-
missingVars.push(
|
|
79
|
+
missingVars.push(constants_js_1.envVarTokenEndpoint);
|
|
79
80
|
throw new Error(`Missing environment variables: ${missingVars.join(', ')}`);
|
|
80
81
|
}
|
|
81
82
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Activation, Connection, ConnectionProvider } from '../types.js';
|
|
2
|
+
export declare class PlatformAPIClient implements ConnectionProvider {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private orgId;
|
|
5
|
+
private envId;
|
|
6
|
+
private internalAuth;
|
|
7
|
+
private cache;
|
|
8
|
+
constructor(baseUrl: string, orgId: string, envId: string, cache?: Record<string, Connection>);
|
|
9
|
+
static fromEnv(): PlatformAPIClient;
|
|
10
|
+
getStaticConnection(cnxId: string): Promise<Connection | undefined>;
|
|
11
|
+
getEndUserConnection(templateId: string, userId: string): Promise<Connection | undefined>;
|
|
12
|
+
listActivations(): Promise<Activation[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=platformapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformapi.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/platformapi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIzE,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,KAAK,CAA6B;gBAGtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAM;IAS1C,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAY7B,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA2BnE,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmBzF,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAkBjD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.PlatformAPIClient = void 0;
|
|
27
|
+
const dntShim = __importStar(require("../../../../_dnt.shims.js"));
|
|
28
|
+
const constants_js_1 = require("./constants.js");
|
|
29
|
+
const internalauth_js_1 = require("./internalauth.js");
|
|
30
|
+
class PlatformAPIClient {
|
|
31
|
+
constructor(baseUrl, orgId, envId, cache = {}) {
|
|
32
|
+
Object.defineProperty(this, "baseUrl", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
writable: true,
|
|
36
|
+
value: void 0
|
|
37
|
+
});
|
|
38
|
+
Object.defineProperty(this, "orgId", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
writable: true,
|
|
42
|
+
value: void 0
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(this, "envId", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true,
|
|
48
|
+
value: void 0
|
|
49
|
+
});
|
|
50
|
+
Object.defineProperty(this, "internalAuth", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
configurable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
value: void 0
|
|
55
|
+
});
|
|
56
|
+
Object.defineProperty(this, "cache", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
configurable: true,
|
|
59
|
+
writable: true,
|
|
60
|
+
value: void 0
|
|
61
|
+
});
|
|
62
|
+
this.baseUrl = baseUrl;
|
|
63
|
+
this.orgId = orgId;
|
|
64
|
+
this.cache = cache;
|
|
65
|
+
this.envId = envId;
|
|
66
|
+
this.internalAuth = new internalauth_js_1.InternalAuth();
|
|
67
|
+
}
|
|
68
|
+
static fromEnv() {
|
|
69
|
+
const baseUrl = dntShim.Deno.env.get(constants_js_1.envVarPlatformApiBaseURL);
|
|
70
|
+
const orgId = dntShim.Deno.env.get(constants_js_1.envVarOrgId);
|
|
71
|
+
const envId = dntShim.Deno.env.get(constants_js_1.envVarEnvId);
|
|
72
|
+
if (!baseUrl || !orgId || !envId) {
|
|
73
|
+
throw new Error('Missing required environment variables');
|
|
74
|
+
}
|
|
75
|
+
return new PlatformAPIClient(baseUrl, orgId, envId);
|
|
76
|
+
}
|
|
77
|
+
async getStaticConnection(cnxId) {
|
|
78
|
+
if (this.cache[cnxId]) {
|
|
79
|
+
return this.cache[cnxId];
|
|
80
|
+
}
|
|
81
|
+
const resp = await fetch(`${this.baseUrl}/o/${this.orgId}/connections/${cnxId}`, {
|
|
82
|
+
headers: {
|
|
83
|
+
'x-versori-internal-token': await this.internalAuth.getToken(),
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
if (!resp.ok) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
const result = (await resp.json());
|
|
90
|
+
this.cache[cnxId] = result;
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
async getEndUserConnection(templateId, userId) {
|
|
94
|
+
const resp = await fetch(`${this.baseUrl}/o/${this.orgId}/environment-systems/${templateId}/users/${userId}`, {
|
|
95
|
+
headers: {
|
|
96
|
+
'x-versori-internal-token': await this.internalAuth.getToken(),
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
if (!resp.ok) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const result = (await resp.json());
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
async listActivations() {
|
|
106
|
+
const resp = await fetch(`${this.baseUrl}/o/${this.orgId}/environments/${this.envId}/activations`, {
|
|
107
|
+
headers: {
|
|
108
|
+
'x-versori-internal-token': await this.internalAuth.getToken(),
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
if (!resp.ok) {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
const result = (await resp.json());
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.PlatformAPIClient = PlatformAPIClient;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DynamicFetcher, RoundTripperFactory } from "../types.js";
|
|
1
|
+
import { DynamicFetcher, RoundTripperFactory } from '../types.js';
|
|
3
2
|
import { VersoriCredentialClient } from './credentials/mod.js';
|
|
3
|
+
import { PlatformAPIClient } from './platformapi.js';
|
|
4
|
+
import { Logger } from '../../../observability/logging/Logger.js';
|
|
4
5
|
export type RunningEnvironment = 'local' | 'versori' | 'staging';
|
|
5
|
-
export declare function CreateFromEnv(): VersoriRoundTripperFactory;
|
|
6
6
|
/**
|
|
7
7
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
8
8
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
@@ -16,13 +16,20 @@ export declare function CreateFromEnv(): VersoriRoundTripperFactory;
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
export declare class VersoriRoundTripperFactory implements RoundTripperFactory {
|
|
19
|
-
private cAPIClient;
|
|
20
19
|
private tokenClient;
|
|
20
|
+
private platformAPIClient;
|
|
21
21
|
private versoriCfg;
|
|
22
|
-
|
|
22
|
+
private log;
|
|
23
|
+
private readonly defaultStatic;
|
|
24
|
+
private readonly defaultDynamic;
|
|
25
|
+
constructor(credsClient: VersoriCredentialClient, platformAPIClient: PlatformAPIClient, logger: Logger);
|
|
26
|
+
static fromEnv(logger?: Logger): VersoriRoundTripperFactory;
|
|
27
|
+
private changeRequestInit;
|
|
28
|
+
private changeBaseUrl;
|
|
23
29
|
create(connName: string, fn?: typeof fetch): Promise<typeof fetch>;
|
|
24
|
-
createDynamic(templateName: string, fn
|
|
30
|
+
createDynamic(templateName: string, fn?: typeof fetch): Promise<DynamicFetcher>;
|
|
25
31
|
private getConnectionID;
|
|
32
|
+
private getTemplateID;
|
|
26
33
|
private apiKeyFetcher;
|
|
27
34
|
private basicAuthFetcher;
|
|
28
35
|
private bearerTokenFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AASlE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE,OAAO,CAAC,WAAW,CAA0B;IAE7C,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAM7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM;IAQlB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,0BAA0B;IA0B3D,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,OAAO,KAAwB,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAyBpF,aAAa,CACf,YAAY,EAAE,MAAM,EACpB,EAAE,GAAE,OAAO,KAAwB,GACpC,OAAO,CAAC,cAAc,CAAC;IA0D1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;YAYP,aAAa;YAoDb,gBAAgB;YA0BhB,kBAAkB;YAiClB,aAAa;CAkD9B"}
|
|
@@ -24,32 +24,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.VersoriRoundTripperFactory = void 0;
|
|
27
|
-
exports.CreateFromEnv = CreateFromEnv;
|
|
28
27
|
const dntShim = __importStar(require("../../../../_dnt.shims.js"));
|
|
29
|
-
const connectapi_js_1 = require("./connectapi.js");
|
|
30
28
|
const configloader_js_1 = require("./configloader.js");
|
|
31
29
|
const mod_js_1 = require("./credentials/mod.js");
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const serviceConnId = dntShim.Deno.env.get('RUN_CONNECTOR_ID');
|
|
37
|
-
if (!orgId || !serviceConnId || !connAPIBaseURL || !credsBaseURL) {
|
|
38
|
-
const missingVars = [];
|
|
39
|
-
if (!orgId)
|
|
40
|
-
missingVars.push('RUN_ORGANISATION_ID');
|
|
41
|
-
if (!serviceConnId)
|
|
42
|
-
missingVars.push('RUN_CONNECTOR_ID');
|
|
43
|
-
if (!connAPIBaseURL)
|
|
44
|
-
missingVars.push('RUN_CONNECT_API_INTERNAL_URL');
|
|
45
|
-
if (!credsBaseURL)
|
|
46
|
-
missingVars.push('RUN_CREDENTIALS_SERVICE_INTERNAL_URL');
|
|
47
|
-
throw new Error(`Missing environment variables: ${missingVars.join(', ')}`);
|
|
48
|
-
}
|
|
49
|
-
const cAPIClient = new connectapi_js_1.ConnectAPIClient(connAPIBaseURL, orgId, serviceConnId, {});
|
|
50
|
-
const tokenClient = new mod_js_1.VersoriCredentialClient(credsBaseURL);
|
|
51
|
-
return new VersoriRoundTripperFactory(cAPIClient, tokenClient);
|
|
52
|
-
}
|
|
30
|
+
const lru_cache_1 = require("lru-cache");
|
|
31
|
+
const platformapi_js_1 = require("./platformapi.js");
|
|
32
|
+
const mod_js_2 = require("../../../observability/mod.js");
|
|
33
|
+
const constants_js_1 = require("./constants.js");
|
|
53
34
|
/**
|
|
54
35
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
55
36
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
@@ -63,14 +44,14 @@ function CreateFromEnv() {
|
|
|
63
44
|
* ```
|
|
64
45
|
*/
|
|
65
46
|
class VersoriRoundTripperFactory {
|
|
66
|
-
constructor(
|
|
67
|
-
Object.defineProperty(this, "
|
|
47
|
+
constructor(credsClient, platformAPIClient, logger) {
|
|
48
|
+
Object.defineProperty(this, "tokenClient", {
|
|
68
49
|
enumerable: true,
|
|
69
50
|
configurable: true,
|
|
70
51
|
writable: true,
|
|
71
52
|
value: void 0
|
|
72
53
|
});
|
|
73
|
-
Object.defineProperty(this, "
|
|
54
|
+
Object.defineProperty(this, "platformAPIClient", {
|
|
74
55
|
enumerable: true,
|
|
75
56
|
configurable: true,
|
|
76
57
|
writable: true,
|
|
@@ -82,17 +63,99 @@ class VersoriRoundTripperFactory {
|
|
|
82
63
|
writable: true,
|
|
83
64
|
value: void 0
|
|
84
65
|
});
|
|
85
|
-
this
|
|
66
|
+
Object.defineProperty(this, "log", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: true,
|
|
69
|
+
writable: true,
|
|
70
|
+
value: void 0
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(this, "defaultStatic", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
configurable: true,
|
|
75
|
+
writable: true,
|
|
76
|
+
value: (msg, values) => {
|
|
77
|
+
return (input, init) => {
|
|
78
|
+
this.log.error(msg, values);
|
|
79
|
+
return globalThis.fetch(input, init);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(this, "defaultDynamic", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true,
|
|
87
|
+
value: (msg, values) => {
|
|
88
|
+
return (userId, input, init) => {
|
|
89
|
+
values['userId'] = userId;
|
|
90
|
+
this.log.error(msg, values);
|
|
91
|
+
return globalThis.fetch(input, init);
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
});
|
|
86
95
|
this.tokenClient = credsClient;
|
|
87
|
-
this.
|
|
96
|
+
this.platformAPIClient = platformAPIClient;
|
|
97
|
+
this.versoriCfg = (0, configloader_js_1.LoadConfigFromFile)();
|
|
98
|
+
this.log = logger;
|
|
99
|
+
}
|
|
100
|
+
static fromEnv(logger) {
|
|
101
|
+
const credsBaseURL = dntShim.Deno.env.get(constants_js_1.envVarCredsBaseURL);
|
|
102
|
+
const platformApiBaseURL = dntShim.Deno.env.get(constants_js_1.envVarPlatformApiBaseURL);
|
|
103
|
+
const orgId = dntShim.Deno.env.get(constants_js_1.envVarOrgId);
|
|
104
|
+
const envId = dntShim.Deno.env.get(constants_js_1.envVarEnvId);
|
|
105
|
+
if (!orgId || !envId || !platformApiBaseURL || !credsBaseURL) {
|
|
106
|
+
const missingVars = [];
|
|
107
|
+
if (!orgId)
|
|
108
|
+
missingVars.push(constants_js_1.envVarOrgId);
|
|
109
|
+
if (!envId)
|
|
110
|
+
missingVars.push(constants_js_1.envVarEnvId);
|
|
111
|
+
if (!platformApiBaseURL)
|
|
112
|
+
missingVars.push(constants_js_1.envVarPlatformApiBaseURL);
|
|
113
|
+
if (!credsBaseURL)
|
|
114
|
+
missingVars.push(constants_js_1.envVarCredsBaseURL);
|
|
115
|
+
throw new Error(`Missing environment variables: ${missingVars.join(', ')}`);
|
|
116
|
+
}
|
|
117
|
+
const pAPIClient = new platformapi_js_1.PlatformAPIClient(platformApiBaseURL, orgId, envId, {});
|
|
118
|
+
const tokenClient = new mod_js_1.VersoriCredentialClient(credsBaseURL);
|
|
119
|
+
const log = logger || new mod_js_2.ConsoleLogger('debug');
|
|
120
|
+
return new VersoriRoundTripperFactory(tokenClient, pAPIClient, log);
|
|
121
|
+
}
|
|
122
|
+
// takes the info and modifies the url using changeBaseUrl if necessary
|
|
123
|
+
changeRequestInit(info, conn) {
|
|
124
|
+
if (typeof info === 'string') {
|
|
125
|
+
return this.changeBaseUrl(info, conn);
|
|
126
|
+
}
|
|
127
|
+
else if (info instanceof URL) {
|
|
128
|
+
return this.changeBaseUrl(info.toString(), conn);
|
|
129
|
+
}
|
|
130
|
+
else if (info instanceof Request) {
|
|
131
|
+
const url = this.changeBaseUrl(info.url, conn);
|
|
132
|
+
return new Request(url, info);
|
|
133
|
+
}
|
|
134
|
+
return info;
|
|
88
135
|
}
|
|
89
|
-
|
|
136
|
+
changeBaseUrl(url, conn) {
|
|
137
|
+
const baseUrl = conn.baseUrl;
|
|
138
|
+
if (!baseUrl) {
|
|
139
|
+
return url;
|
|
140
|
+
}
|
|
141
|
+
const urlObj = new URL(url);
|
|
142
|
+
const baseUrlObj = new URL(baseUrl);
|
|
143
|
+
urlObj.hostname = baseUrlObj.hostname;
|
|
144
|
+
this.log.debug('Changing base URL', {
|
|
145
|
+
originalUrl: url,
|
|
146
|
+
newUrl: urlObj.toString(),
|
|
147
|
+
});
|
|
148
|
+
return url.toString();
|
|
149
|
+
}
|
|
150
|
+
async create(connName, fn = globalThis.fetch) {
|
|
90
151
|
const cnxId = this.getConnectionID(connName);
|
|
91
|
-
const conn = await this.
|
|
152
|
+
const conn = await this.platformAPIClient.getStaticConnection(cnxId);
|
|
92
153
|
if (!conn) {
|
|
93
|
-
|
|
154
|
+
return this.defaultStatic('Connection not found for static, using default fetch', {
|
|
155
|
+
connName: connName,
|
|
156
|
+
});
|
|
94
157
|
}
|
|
95
|
-
switch (conn.credentials
|
|
158
|
+
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
96
159
|
case 'api-key':
|
|
97
160
|
return this.apiKeyFetcher(conn, fn);
|
|
98
161
|
case 'basic-auth':
|
|
@@ -105,54 +168,108 @@ class VersoriRoundTripperFactory {
|
|
|
105
168
|
return fn;
|
|
106
169
|
}
|
|
107
170
|
}
|
|
108
|
-
async createDynamic(templateName, fn) {
|
|
109
|
-
|
|
171
|
+
async createDynamic(templateName, fn = globalThis.fetch) {
|
|
172
|
+
const lruCacheOptions = {
|
|
173
|
+
max: 100,
|
|
174
|
+
};
|
|
175
|
+
const cache = new lru_cache_1.LRUCache(lruCacheOptions);
|
|
176
|
+
const template = this.getTemplateID(templateName);
|
|
177
|
+
if (!template) {
|
|
178
|
+
return this.defaultDynamic('Template not found for dynamic, using default fetch', {
|
|
179
|
+
templateName: templateName,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
const _fn = async (userId, input, init) => {
|
|
183
|
+
let conn = undefined;
|
|
184
|
+
if (cache.has(userId)) {
|
|
185
|
+
conn = cache.get(userId);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
conn = await this.platformAPIClient.getEndUserConnection(template, userId);
|
|
189
|
+
if (conn) {
|
|
190
|
+
cache.set(userId, conn);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (!conn) {
|
|
194
|
+
return this.defaultDynamic('Connection not found for user, using default fetch', {
|
|
195
|
+
templateName: templateName,
|
|
196
|
+
userId: userId,
|
|
197
|
+
})(userId, input, init);
|
|
198
|
+
}
|
|
199
|
+
const _input = this.changeRequestInit(input, conn);
|
|
200
|
+
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
201
|
+
case 'api-key':
|
|
202
|
+
return (await this.apiKeyFetcher(conn, fn))(_input, init);
|
|
203
|
+
case 'basic-auth':
|
|
204
|
+
return (await this.basicAuthFetcher(conn, fn))(_input, init);
|
|
205
|
+
case 'jwt-bearer':
|
|
206
|
+
return (await this.bearerTokenFetcher(conn, fn))(_input, init);
|
|
207
|
+
case 'oauth2':
|
|
208
|
+
return (await this.oauth2Fetcher(conn, fn))(_input, init);
|
|
209
|
+
default:
|
|
210
|
+
return fn(_input, init);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
return _fn;
|
|
110
214
|
}
|
|
111
215
|
getConnectionID(connName) {
|
|
112
216
|
// Note that this is till very up in the air whether we are going to store the connection ID in the config
|
|
113
|
-
const conn = this.versoriCfg.
|
|
114
|
-
if (!conn) {
|
|
115
|
-
|
|
217
|
+
const conn = this.versoriCfg.mappings.find((c) => (c.dynamic === undefined || c.dynamic === false) && c.name === connName);
|
|
218
|
+
if (!conn || !conn.connId) {
|
|
219
|
+
return '';
|
|
116
220
|
}
|
|
117
|
-
return conn.
|
|
221
|
+
return conn.connId;
|
|
222
|
+
}
|
|
223
|
+
getTemplateID(templateName) {
|
|
224
|
+
// see above, also I'm assuming for now that the template id is simply the same as the connection id
|
|
225
|
+
// but there is another flag that denotes it as dynamic??
|
|
226
|
+
const template = this.versoriCfg.mappings.find((c) => c.dynamic && c.name === templateName);
|
|
227
|
+
if (!template || !template.templateId) {
|
|
228
|
+
return '';
|
|
229
|
+
}
|
|
230
|
+
return template.templateId;
|
|
118
231
|
}
|
|
119
232
|
async apiKeyFetcher(conn, fn) {
|
|
120
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
233
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
121
234
|
const token = tokenResponse.token?.accessToken;
|
|
235
|
+
const asc = conn.credentials[0].authSchemeConfig.apiKey;
|
|
122
236
|
if (!token) {
|
|
123
237
|
throw new Error('Token not found');
|
|
124
238
|
}
|
|
239
|
+
if (!asc) {
|
|
240
|
+
throw new Error('API Key configuration not found');
|
|
241
|
+
}
|
|
125
242
|
const _fn = (input, init) => {
|
|
126
243
|
if (!init) {
|
|
127
244
|
init = {};
|
|
128
245
|
}
|
|
129
|
-
switch (
|
|
246
|
+
switch (asc.in) {
|
|
130
247
|
case 'header':
|
|
131
248
|
if (!init.headers) {
|
|
132
249
|
init.headers = new Headers();
|
|
133
250
|
}
|
|
134
251
|
if (init.headers instanceof Headers) {
|
|
135
|
-
init.headers.set(
|
|
252
|
+
init.headers.set(asc.name, token);
|
|
136
253
|
}
|
|
137
254
|
else if (init.headers instanceof Array) {
|
|
138
|
-
init.headers.push([
|
|
255
|
+
init.headers.push([asc.name, token]);
|
|
139
256
|
}
|
|
140
257
|
else {
|
|
141
258
|
init.headers = {
|
|
142
259
|
...init.headers,
|
|
143
|
-
[
|
|
260
|
+
[asc.name]: token,
|
|
144
261
|
};
|
|
145
262
|
}
|
|
146
263
|
break;
|
|
147
264
|
case 'query':
|
|
148
265
|
if (typeof input === 'string') {
|
|
149
|
-
input += `?${
|
|
266
|
+
input += `?${asc.name}=${token}`;
|
|
150
267
|
}
|
|
151
268
|
else if (input instanceof Request) {
|
|
152
|
-
input = new Request(input.url + `?${
|
|
269
|
+
input = new Request(input.url + `?${asc.name}=${token}`, init);
|
|
153
270
|
}
|
|
154
271
|
else if (input instanceof URL) {
|
|
155
|
-
input.searchParams.append(
|
|
272
|
+
input.searchParams.append(asc.name, token);
|
|
156
273
|
}
|
|
157
274
|
break;
|
|
158
275
|
}
|
|
@@ -161,7 +278,7 @@ class VersoriRoundTripperFactory {
|
|
|
161
278
|
return _fn;
|
|
162
279
|
}
|
|
163
280
|
async basicAuthFetcher(conn, fn) {
|
|
164
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
281
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
165
282
|
const token = tokenResponse.token?.accessToken;
|
|
166
283
|
if (!token) {
|
|
167
284
|
throw new Error('Token not found');
|
|
@@ -173,14 +290,14 @@ class VersoriRoundTripperFactory {
|
|
|
173
290
|
if (!init.headers) {
|
|
174
291
|
init.headers = new Headers();
|
|
175
292
|
}
|
|
176
|
-
init.headers.set('Authorization', token);
|
|
293
|
+
init.headers.set('Authorization', `Basic ${token}`);
|
|
177
294
|
return fn(input, init);
|
|
178
295
|
};
|
|
179
296
|
return _fn;
|
|
180
297
|
}
|
|
181
|
-
// TODO: need to make the prefix and header name
|
|
298
|
+
// TODO: need to make the prefix and header name configurable from authschemeconfig
|
|
182
299
|
async bearerTokenFetcher(conn, fn) {
|
|
183
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
300
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
184
301
|
const token = tokenResponse.token?.accessToken;
|
|
185
302
|
if (!token) {
|
|
186
303
|
throw new Error('Token not found');
|
|
@@ -201,7 +318,7 @@ class VersoriRoundTripperFactory {
|
|
|
201
318
|
else {
|
|
202
319
|
init.headers = {
|
|
203
320
|
...init.headers,
|
|
204
|
-
['Authorization']: `Bearer ${token}
|
|
321
|
+
['Authorization']: `Bearer ${token}`,
|
|
205
322
|
};
|
|
206
323
|
}
|
|
207
324
|
return fn(input, init);
|
|
@@ -209,7 +326,7 @@ class VersoriRoundTripperFactory {
|
|
|
209
326
|
return _fn;
|
|
210
327
|
}
|
|
211
328
|
async oauth2Fetcher(conn, fn) {
|
|
212
|
-
const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials
|
|
329
|
+
const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials[0].credential.id);
|
|
213
330
|
const token = tokenResponse.token?.accessToken;
|
|
214
331
|
const tokenType = tokenResponse.token?.tokenType;
|
|
215
332
|
if (!token) {
|
|
@@ -244,7 +361,7 @@ class VersoriRoundTripperFactory {
|
|
|
244
361
|
else {
|
|
245
362
|
init.headers = {
|
|
246
363
|
...init.headers,
|
|
247
|
-
['Authorization']: `${_tokenType()} ${token}
|
|
364
|
+
['Authorization']: `${_tokenType()} ${token}`,
|
|
248
365
|
};
|
|
249
366
|
}
|
|
250
367
|
return fn(input, init);
|