@versori/run 0.2.1 → 0.2.2-alpha.1
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/esm/src/dsl/http/default.d.ts +2 -2
- package/esm/src/dsl/http/default.d.ts.map +1 -1
- package/esm/src/dsl/http/default.js +6 -5
- package/esm/src/dsl/http/types.d.ts +2 -2
- package/esm/src/dsl/http/types.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/constants.d.ts +2 -0
- package/esm/src/dsl/http/versori/constants.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/constants.js +2 -0
- package/esm/src/dsl/http/versori/contextcredentials.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/credentials/client.d.ts +1 -1
- package/esm/src/dsl/http/versori/credentials/client.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/credentials/client.js +4 -4
- package/esm/src/dsl/http/versori/roundtripper.d.ts +8 -6
- package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/roundtripper.js +123 -73
- package/esm/src/dsl/tasks/HttpTask.d.ts +1 -1
- package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/esm/src/dsl/tasks/HttpTask.js +4 -2
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +6 -2
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.js +68 -14
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts +2 -0
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.js +24 -7
- package/esm/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/fn.js +12 -6
- package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/http.js +30 -6
- package/esm/src/interpreter/memory/compilers/parallel.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/schedule.js +29 -3
- package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.js +97 -68
- package/esm/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
- package/package.json +5 -1
- package/script/src/dsl/http/default.d.ts +2 -2
- package/script/src/dsl/http/default.d.ts.map +1 -1
- package/script/src/dsl/http/default.js +6 -5
- package/script/src/dsl/http/types.d.ts +2 -2
- package/script/src/dsl/http/types.d.ts.map +1 -1
- package/script/src/dsl/http/versori/constants.d.ts +2 -0
- package/script/src/dsl/http/versori/constants.d.ts.map +1 -1
- package/script/src/dsl/http/versori/constants.js +3 -1
- package/script/src/dsl/http/versori/contextcredentials.d.ts.map +1 -1
- package/script/src/dsl/http/versori/credentials/client.d.ts +1 -1
- package/script/src/dsl/http/versori/credentials/client.d.ts.map +1 -1
- package/script/src/dsl/http/versori/credentials/client.js +3 -3
- package/script/src/dsl/http/versori/roundtripper.d.ts +8 -6
- package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/script/src/dsl/http/versori/roundtripper.js +123 -73
- package/script/src/dsl/tasks/HttpTask.d.ts +1 -1
- package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/script/src/dsl/tasks/HttpTask.js +4 -2
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts +6 -2
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/memory/MemoryInterpreter.js +68 -14
- package/script/src/interpreter/memory/ObservableCompiler.d.ts +2 -0
- package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.js +24 -7
- package/script/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/fn.js +12 -6
- package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/http.js +30 -6
- package/script/src/interpreter/memory/compilers/parallel.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/schedule.js +29 -3
- package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/webhook.js +97 -68
- package/script/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/logging/ConsoleLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,+CAA+C,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/logging/ConsoleLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,+CAA+C,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoM/C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IACxC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;IAEhB,KAAK,EAAE,QAAQ,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEpB,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAOjE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAC3E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAsB9D,KAAK,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,aAAa;IAOvD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versori/run",
|
|
3
|
-
"version": "v0.2.1",
|
|
3
|
+
"version": "v0.2.2-alpha.1",
|
|
4
4
|
"description": "Versori Run",
|
|
5
5
|
"homepage": "https://github.com/versori/versori-run#readme",
|
|
6
6
|
"repository": {
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"@bufbuild/protobuf": "^2.2.3",
|
|
27
27
|
"@connectrpc/connect": "^2.0.1",
|
|
28
28
|
"@connectrpc/connect-node": "^2.0.1",
|
|
29
|
+
"@opentelemetry/api": "^1.9.0",
|
|
30
|
+
"@opentelemetry/exporter-trace-otlp-proto": "^0.200.0",
|
|
31
|
+
"@opentelemetry/resources": "^2.0.0",
|
|
32
|
+
"@opentelemetry/sdk-node": "^0.200.0",
|
|
29
33
|
"@types/express": "*",
|
|
30
34
|
"cors": "^2.8.5",
|
|
31
35
|
"express": "^4.18.3",
|
|
@@ -18,8 +18,8 @@ export declare class DefaultRoundTripperFactory implements RoundTripperFactory {
|
|
|
18
18
|
* @param fn - The fetch function to be used. Defaults to the global fetch function.
|
|
19
19
|
* @returns A promise that resolves to the fetch function.
|
|
20
20
|
*/
|
|
21
|
-
create(connName: string
|
|
22
|
-
createDynamic(templateName: string
|
|
21
|
+
create(connName: string): Promise<typeof fetch>;
|
|
22
|
+
createDynamic(templateName: string): Promise<DynamicFetcher>;
|
|
23
23
|
credentials(): Credentials;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=default.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE;;OAEG;;IAIH;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAI/C,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMlE,WAAW,IAAI,WAAW;CAU7B"}
|
|
@@ -10,7 +10,8 @@ class DefaultRoundTripperFactory {
|
|
|
10
10
|
/**
|
|
11
11
|
* Constructs a new instance of the DefaultRoundTripperFactory.
|
|
12
12
|
*/
|
|
13
|
-
constructor() {
|
|
13
|
+
constructor() {
|
|
14
|
+
}
|
|
14
15
|
/**
|
|
15
16
|
* Creates a round tripper function.
|
|
16
17
|
* This implementation simply returns the fetch function passed to it.
|
|
@@ -19,12 +20,12 @@ class DefaultRoundTripperFactory {
|
|
|
19
20
|
* @param fn - The fetch function to be used. Defaults to the global fetch function.
|
|
20
21
|
* @returns A promise that resolves to the fetch function.
|
|
21
22
|
*/
|
|
22
|
-
async create(connName
|
|
23
|
-
return
|
|
23
|
+
async create(connName) {
|
|
24
|
+
return globalThis.fetch;
|
|
24
25
|
}
|
|
25
|
-
async createDynamic(templateName
|
|
26
|
+
async createDynamic(templateName) {
|
|
26
27
|
return async (activation, input, init) => {
|
|
27
|
-
return fetch(input, init);
|
|
28
|
+
return globalThis.fetch(input, init);
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
credentials() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type DynamicFetcher = (activation: Activation, input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
2
2
|
export interface RoundTripperFactory {
|
|
3
|
-
create(connName: string
|
|
4
|
-
createDynamic(templateName: string
|
|
3
|
+
create(connName: string): Promise<typeof fetch | undefined>;
|
|
4
|
+
createDynamic(templateName: string): Promise<DynamicFetcher | undefined>;
|
|
5
5
|
}
|
|
6
6
|
export declare function wrapDynamicFetcher(fetcher: DynamicFetcher, activation: Activation): typeof fetch;
|
|
7
7
|
export interface ConnectionProvider {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEzH,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export declare const envVarPlatformApiBaseURL = "RUN_PLATFORM_API_INTERNAL_URL";
|
|
|
7
7
|
export declare const envVarCronApiBaseURL = "RUN_CRON_API_INTERNAL_URL";
|
|
8
8
|
export declare const envVarSelfRefURL = "RUN_SELF_REF_URL";
|
|
9
9
|
export declare const envVarCredsBaseURL = "RUN_CREDENTIALS_SERVICE_INTERNAL_URL";
|
|
10
|
+
export declare const envVarOtelTracesURL = "RUN_OTEL_TRACES_URL";
|
|
11
|
+
export declare const envVarVersion = "RUN_SERVICE_VERSION";
|
|
10
12
|
export declare const envVarConfigFile = "RUN_CONFIG_FILE";
|
|
11
13
|
export declare const envVarClientId = "RUN_CLIENT_ID";
|
|
12
14
|
export declare const envVarClientSecret = "RUN_CLIENT_SECRET";
|
|
@@ -1 +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,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;
|
|
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,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.envVarInternalToken = exports.envVarTokenEndpoint = exports.envVarClientSecret = exports.envVarClientId = exports.envVarConfigFile = exports.envVarCredsBaseURL = exports.envVarSelfRefURL = exports.envVarCronApiBaseURL = exports.envVarPlatformApiBaseURL = exports.envVarOrgSlug = exports.envVarProjectId = exports.envVarEnvironmentName = exports.envVarEnvId = exports.envVarOrgId = void 0;
|
|
3
|
+
exports.envVarInternalToken = exports.envVarTokenEndpoint = exports.envVarClientSecret = exports.envVarClientId = exports.envVarConfigFile = exports.envVarVersion = exports.envVarOtelTracesURL = exports.envVarCredsBaseURL = exports.envVarSelfRefURL = exports.envVarCronApiBaseURL = exports.envVarPlatformApiBaseURL = exports.envVarOrgSlug = exports.envVarProjectId = exports.envVarEnvironmentName = exports.envVarEnvId = exports.envVarOrgId = void 0;
|
|
4
4
|
// This file contains constants used in the Versori DSL HTTP client.
|
|
5
5
|
exports.envVarOrgId = 'RUN_ORGANISATION_ID';
|
|
6
6
|
exports.envVarEnvId = 'RUN_ENVIRONMENT_ID';
|
|
@@ -11,6 +11,8 @@ exports.envVarPlatformApiBaseURL = 'RUN_PLATFORM_API_INTERNAL_URL';
|
|
|
11
11
|
exports.envVarCronApiBaseURL = 'RUN_CRON_API_INTERNAL_URL';
|
|
12
12
|
exports.envVarSelfRefURL = 'RUN_SELF_REF_URL';
|
|
13
13
|
exports.envVarCredsBaseURL = 'RUN_CREDENTIALS_SERVICE_INTERNAL_URL';
|
|
14
|
+
exports.envVarOtelTracesURL = 'RUN_OTEL_TRACES_URL';
|
|
15
|
+
exports.envVarVersion = 'RUN_SERVICE_VERSION';
|
|
14
16
|
// The following environment variables are used for the config file
|
|
15
17
|
exports.envVarConfigFile = 'RUN_CONFIG_FILE';
|
|
16
18
|
// The following environment variables are used for internal authentication
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextcredentials.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/contextcredentials.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC;CACjB,
|
|
1
|
+
{"version":3,"file":"contextcredentials.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/contextcredentials.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACxE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GetTokenResponse } from './tokens/v1/token_service_pb.js';
|
|
2
2
|
import { GetCredentialResponse } from './v1alpha1/credential_service_pb.js';
|
|
3
3
|
export declare class VersoriCredentialClient {
|
|
4
|
-
private
|
|
4
|
+
private tokenClient;
|
|
5
5
|
private credentialsClient;
|
|
6
6
|
constructor(credsBaseUrl: string);
|
|
7
7
|
getToken(credId: string, forceRefresh?: boolean): Promise<GetTokenResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/src/dsl/http/versori/credentials/client.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,qBAAa,uBAAuB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/src/dsl/http/versori/credentials/client.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,qBAAa,uBAAuB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,YAAY,EAAE,MAAM;IAKhC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAGzD"}
|
|
@@ -4,7 +4,7 @@ exports.VersoriCredentialClient = void 0;
|
|
|
4
4
|
const credentials_js_1 = require("./credentials.js");
|
|
5
5
|
class VersoriCredentialClient {
|
|
6
6
|
constructor(credsBaseUrl) {
|
|
7
|
-
Object.defineProperty(this, "
|
|
7
|
+
Object.defineProperty(this, "tokenClient", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
configurable: true,
|
|
10
10
|
writable: true,
|
|
@@ -16,11 +16,11 @@ class VersoriCredentialClient {
|
|
|
16
16
|
writable: true,
|
|
17
17
|
value: void 0
|
|
18
18
|
});
|
|
19
|
-
this.
|
|
19
|
+
this.tokenClient = (0, credentials_js_1.createTokenClient)(credsBaseUrl);
|
|
20
20
|
this.credentialsClient = (0, credentials_js_1.createCredentialsClient)(credsBaseUrl);
|
|
21
21
|
}
|
|
22
22
|
getToken(credId, forceRefresh = false) {
|
|
23
|
-
return this.
|
|
23
|
+
return this.tokenClient.getToken({ credentialId: credId, forceRefresh });
|
|
24
24
|
}
|
|
25
25
|
getRaw(credId) {
|
|
26
26
|
return this.credentialsClient.get({ id: credId, showRedacted: true });
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Tracer } from '@opentelemetry/api';
|
|
1
2
|
import { Logger } from '../../../observability/logging/Logger.js';
|
|
2
3
|
import { DynamicFetcher, RoundTripperFactory } from '../types.js';
|
|
3
4
|
import { Credentials, Token } from './contextcredentials.js';
|
|
@@ -7,7 +8,6 @@ import { PlatformAPIClient } from './platformapi.js';
|
|
|
7
8
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
8
9
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
13
|
* const factory = new VersoriCredentialsFactory(connectAPIClient, tokenClient);
|
|
@@ -21,14 +21,16 @@ export declare class VersoriCredentialsFactory implements RoundTripperFactory {
|
|
|
21
21
|
private platformAPIClient;
|
|
22
22
|
private versoriCfg;
|
|
23
23
|
private log;
|
|
24
|
-
|
|
25
|
-
static fromEnv(logger?: Logger): VersoriCredentialsFactory;
|
|
26
|
-
create(connName: string, fn?: typeof fetch): Promise<typeof fetch | undefined>;
|
|
27
|
-
createDynamic(templateName: string, fn?: typeof fetch): Promise<DynamicFetcher | undefined>;
|
|
28
|
-
credentials(): Credentials;
|
|
24
|
+
private tracer;
|
|
29
25
|
private readonly defaultDynamic;
|
|
26
|
+
constructor(credsClient: VersoriCredentialClient, credsBaseURL: string, platformAPIClient: PlatformAPIClient, logger: Logger, tracer: Tracer);
|
|
27
|
+
static fromEnv(logger: Logger, tracer: Tracer): VersoriCredentialsFactory;
|
|
30
28
|
private changeRequestInit;
|
|
31
29
|
private changeBaseUrl;
|
|
30
|
+
create(connName: string): Promise<typeof fetch | undefined>;
|
|
31
|
+
createDynamic(templateName: string): Promise<DynamicFetcher | undefined>;
|
|
32
|
+
private traceFetch;
|
|
33
|
+
credentials(): Credentials;
|
|
32
34
|
getTokenByName(name: string, forceRefresh?: boolean): Promise<Token>;
|
|
33
35
|
getRawByName(name: string): Promise<Uint8Array>;
|
|
34
36
|
private getCredentialIDFromName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAGH,cAAc,EACd,mBAAmB,EAEtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAGH,cAAc,EACd,mBAAmB,EAEtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAelB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB;IA4BzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAwBrB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAqC3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAgDxE,OAAO,CAAC,UAAU;IAqClB,WAAW,IAAI,WAAW;IAOpB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAiBlE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAoBvC,uBAAuB;IAkBrC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;YAyDP,gBAAgB;YAqChB,kBAAkB;YAmClB,aAAa;YAwEb,QAAQ;CA4BzB"}
|
|
@@ -11,7 +11,6 @@ const platformapi_js_1 = require("./platformapi.js");
|
|
|
11
11
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
12
12
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
14
|
* @example
|
|
16
15
|
* ```typescript
|
|
17
16
|
* const factory = new VersoriCredentialsFactory(connectAPIClient, tokenClient);
|
|
@@ -20,7 +19,7 @@ const platformapi_js_1 = require("./platformapi.js");
|
|
|
20
19
|
* ```
|
|
21
20
|
*/
|
|
22
21
|
class VersoriCredentialsFactory {
|
|
23
|
-
constructor(credsClient, credsBaseURL, platformAPIClient, logger) {
|
|
22
|
+
constructor(credsClient, credsBaseURL, platformAPIClient, logger, tracer) {
|
|
24
23
|
Object.defineProperty(this, "tokenClient", {
|
|
25
24
|
enumerable: true,
|
|
26
25
|
configurable: true,
|
|
@@ -51,6 +50,12 @@ class VersoriCredentialsFactory {
|
|
|
51
50
|
writable: true,
|
|
52
51
|
value: void 0
|
|
53
52
|
});
|
|
53
|
+
Object.defineProperty(this, "tracer", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
value: void 0
|
|
58
|
+
});
|
|
54
59
|
Object.defineProperty(this, "defaultDynamic", {
|
|
55
60
|
enumerable: true,
|
|
56
61
|
configurable: true,
|
|
@@ -67,9 +72,12 @@ class VersoriCredentialsFactory {
|
|
|
67
72
|
this.platformAPIClient = platformAPIClient;
|
|
68
73
|
this.versoriCfg = (0, configloader_js_1.LoadConfigFromFile)();
|
|
69
74
|
this.log = logger;
|
|
75
|
+
this.tracer = tracer;
|
|
76
|
+
// lost 15 minutes because of this one
|
|
77
|
+
this.traceFetch = this.traceFetch.bind(this);
|
|
70
78
|
this.credentials = this.credentials.bind(this);
|
|
71
79
|
}
|
|
72
|
-
static fromEnv(logger) {
|
|
80
|
+
static fromEnv(logger, tracer) {
|
|
73
81
|
const credsBaseURL = Deno.env.get(constants_js_1.envVarCredsBaseURL);
|
|
74
82
|
const platformApiBaseURL = Deno.env.get(constants_js_1.envVarPlatformApiBaseURL);
|
|
75
83
|
const orgId = Deno.env.get(constants_js_1.envVarOrgId);
|
|
@@ -89,9 +97,45 @@ class VersoriCredentialsFactory {
|
|
|
89
97
|
const log = logger || new mod_js_1.ConsoleLogger('debug');
|
|
90
98
|
const pAPIClient = new platformapi_js_1.PlatformAPIClient(platformApiBaseURL, orgId, envId, log);
|
|
91
99
|
const tokenClient = new mod_js_2.VersoriCredentialClient(credsBaseURL);
|
|
92
|
-
return new VersoriCredentialsFactory(tokenClient, credsBaseURL, pAPIClient, log);
|
|
100
|
+
return new VersoriCredentialsFactory(tokenClient, credsBaseURL, pAPIClient, log, tracer);
|
|
93
101
|
}
|
|
94
|
-
|
|
102
|
+
// takes the info and modifies the url using changeBaseUrl if necessary
|
|
103
|
+
// if a full valid URL is passed as a string, it will be returned as is
|
|
104
|
+
// if a valid URL object is passed, it will be returned as is
|
|
105
|
+
changeRequestInit(info, conn) {
|
|
106
|
+
if (typeof info === 'string') {
|
|
107
|
+
if (isValidURL(info)) {
|
|
108
|
+
return info;
|
|
109
|
+
}
|
|
110
|
+
return this.changeBaseUrl(info, conn);
|
|
111
|
+
}
|
|
112
|
+
else if (info instanceof URL) {
|
|
113
|
+
return info;
|
|
114
|
+
}
|
|
115
|
+
else if (info instanceof Request) {
|
|
116
|
+
const url = this.changeBaseUrl(info.url, conn);
|
|
117
|
+
return new Request(url, info);
|
|
118
|
+
}
|
|
119
|
+
return info;
|
|
120
|
+
}
|
|
121
|
+
changeBaseUrl(pathname, conn) {
|
|
122
|
+
const connBaseURL = conn.baseUrl;
|
|
123
|
+
// if the connection has no baseUrl set, but the pathname is a valid URL, return it as is
|
|
124
|
+
if (!connBaseURL && isValidURL(pathname)) {
|
|
125
|
+
this.log.debug('Using given URL as is', { url: pathname });
|
|
126
|
+
return pathname;
|
|
127
|
+
}
|
|
128
|
+
const connBaseURLObj = new URL(connBaseURL);
|
|
129
|
+
let _pathname = pathname;
|
|
130
|
+
if (isValidURL(pathname)) {
|
|
131
|
+
const pathnameObj = new URL(pathname);
|
|
132
|
+
_pathname = pathnameObj.pathname;
|
|
133
|
+
}
|
|
134
|
+
const newURL = new URL(_pathname, connBaseURLObj.origin);
|
|
135
|
+
this.log.debug('Using baseURL from connection', { url: newURL.toString() });
|
|
136
|
+
return newURL.toString();
|
|
137
|
+
}
|
|
138
|
+
create(connName) {
|
|
95
139
|
const cnxId = this.getConnectionID(connName);
|
|
96
140
|
if (!cnxId) {
|
|
97
141
|
this.log.debug('Connection not found in config, could be a dynamic connection', {
|
|
@@ -99,32 +143,31 @@ class VersoriCredentialsFactory {
|
|
|
99
143
|
});
|
|
100
144
|
return Promise.resolve(undefined);
|
|
101
145
|
}
|
|
102
|
-
|
|
146
|
+
const _fn = async (input, init) => {
|
|
103
147
|
const conn = await this.platformAPIClient.getStaticConnection(cnxId);
|
|
104
148
|
if (!conn) {
|
|
105
149
|
this.log.error('Connection not found for user, using default fetch', {
|
|
106
150
|
connectionName: connName,
|
|
107
151
|
});
|
|
108
|
-
return
|
|
152
|
+
return this.traceFetch(input, init);
|
|
109
153
|
}
|
|
110
154
|
const _input = this.changeRequestInit(input, conn);
|
|
111
155
|
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
112
156
|
case 'api-key':
|
|
113
|
-
return (await this.apiKeyFetcher(conn,
|
|
157
|
+
return (await this.apiKeyFetcher(conn, this.traceFetch))(_input, init);
|
|
114
158
|
case 'basic-auth':
|
|
115
|
-
return (await this.basicAuthFetcher(conn,
|
|
159
|
+
return (await this.basicAuthFetcher(conn, this.traceFetch))(_input, init);
|
|
116
160
|
case 'jwt-bearer':
|
|
117
|
-
return (await this.bearerTokenFetcher(conn,
|
|
161
|
+
return (await this.bearerTokenFetcher(conn, this.traceFetch))(_input, init);
|
|
118
162
|
case 'oauth2':
|
|
119
|
-
return (await this.oauth2Fetcher(conn,
|
|
163
|
+
return (await this.oauth2Fetcher(conn, this.traceFetch))(_input, init);
|
|
120
164
|
default:
|
|
121
|
-
return
|
|
165
|
+
return this.traceFetch(_input, init);
|
|
122
166
|
}
|
|
123
|
-
}
|
|
167
|
+
};
|
|
168
|
+
return Promise.resolve(_fn);
|
|
124
169
|
}
|
|
125
|
-
|
|
126
|
-
// if a full valid URL is passed as a string, it will be returned as is
|
|
127
|
-
createDynamic(templateName, fn = globalThis.fetch) {
|
|
170
|
+
createDynamic(templateName) {
|
|
128
171
|
const template = this.getTemplateID(templateName);
|
|
129
172
|
if (!template) {
|
|
130
173
|
this.log.debug('Template not found in config, could be a static connection', {
|
|
@@ -132,7 +175,7 @@ class VersoriCredentialsFactory {
|
|
|
132
175
|
});
|
|
133
176
|
return Promise.resolve(undefined);
|
|
134
177
|
}
|
|
135
|
-
|
|
178
|
+
const _fn = async (activation, input, init) => {
|
|
136
179
|
const conn = await this.platformAPIClient.getActivationConnection(template, activation.id);
|
|
137
180
|
if (!conn) {
|
|
138
181
|
return this.defaultDynamic('Connection not found for user, using default fetch', {
|
|
@@ -144,16 +187,47 @@ class VersoriCredentialsFactory {
|
|
|
144
187
|
const _input = this.changeRequestInit(input, conn);
|
|
145
188
|
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
146
189
|
case 'api-key':
|
|
147
|
-
return (await this.apiKeyFetcher(conn,
|
|
190
|
+
return (await this.apiKeyFetcher(conn, this.traceFetch))(_input, init);
|
|
148
191
|
case 'basic-auth':
|
|
149
|
-
return (await this.basicAuthFetcher(conn,
|
|
192
|
+
return (await this.basicAuthFetcher(conn, this.traceFetch))(_input, init);
|
|
150
193
|
case 'jwt-bearer':
|
|
151
|
-
return (await this.bearerTokenFetcher(conn,
|
|
194
|
+
return (await this.bearerTokenFetcher(conn, this.traceFetch))(_input, init);
|
|
152
195
|
case 'oauth2':
|
|
153
|
-
return (await this.oauth2Fetcher(conn,
|
|
196
|
+
return (await this.oauth2Fetcher(conn, this.traceFetch))(_input, init);
|
|
154
197
|
default:
|
|
155
|
-
return
|
|
198
|
+
return this.traceFetch(_input, init);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
return Promise.resolve(_fn);
|
|
202
|
+
}
|
|
203
|
+
traceFetch(input, init) {
|
|
204
|
+
return this.tracer.startActiveSpan('fetch', async (span) => {
|
|
205
|
+
const response = await globalThis.fetch(input, init);
|
|
206
|
+
let url = new URL('http://localhost');
|
|
207
|
+
try {
|
|
208
|
+
url = new URL(input.toString());
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
this.log.error('Error parsing URL when tracing request', { error });
|
|
156
212
|
}
|
|
213
|
+
const method = input instanceof Request ? input.method : 'GET';
|
|
214
|
+
span.setAttributes({
|
|
215
|
+
// Error attributes
|
|
216
|
+
'error.type': response.status >= 400 ? 'HTTP_ERROR' : undefined,
|
|
217
|
+
// HTTP request attributes
|
|
218
|
+
'http.request.method': method,
|
|
219
|
+
'http.response.status_code': response.status,
|
|
220
|
+
// Server attributes
|
|
221
|
+
'server.address': url.hostname,
|
|
222
|
+
'server.port': url.port || (url.protocol === 'https:' ? '443' : '80'),
|
|
223
|
+
// URL attributes
|
|
224
|
+
'url.full': url.toString(),
|
|
225
|
+
'url.path': url.pathname,
|
|
226
|
+
'url.query': url.search,
|
|
227
|
+
'url.scheme': url.protocol.replace(':', ''),
|
|
228
|
+
});
|
|
229
|
+
span.end();
|
|
230
|
+
return response;
|
|
157
231
|
});
|
|
158
232
|
}
|
|
159
233
|
credentials() {
|
|
@@ -162,50 +236,18 @@ class VersoriCredentialsFactory {
|
|
|
162
236
|
getAccessToken: this.getTokenByName.bind(this),
|
|
163
237
|
};
|
|
164
238
|
}
|
|
165
|
-
// if a valid URL object is passed, it will be returned as is
|
|
166
|
-
changeRequestInit(info, conn) {
|
|
167
|
-
if (typeof info === 'string') {
|
|
168
|
-
if (isValidURL(info)) {
|
|
169
|
-
return info;
|
|
170
|
-
}
|
|
171
|
-
return this.changeBaseUrl(info, conn);
|
|
172
|
-
}
|
|
173
|
-
else if (info instanceof URL) {
|
|
174
|
-
return info;
|
|
175
|
-
}
|
|
176
|
-
else if (info instanceof Request) {
|
|
177
|
-
const url = this.changeBaseUrl(info.url, conn);
|
|
178
|
-
return new Request(url, info);
|
|
179
|
-
}
|
|
180
|
-
return info;
|
|
181
|
-
}
|
|
182
|
-
changeBaseUrl(pathname, conn) {
|
|
183
|
-
const connBaseURL = conn.baseUrl;
|
|
184
|
-
// if the connection has no baseUrl set, but the pathname is a valid URL, return it as is
|
|
185
|
-
if (!connBaseURL && isValidURL(pathname)) {
|
|
186
|
-
this.log.debug('Using given URL as is', { url: pathname });
|
|
187
|
-
return pathname;
|
|
188
|
-
}
|
|
189
|
-
const connBaseURLObj = new URL(connBaseURL);
|
|
190
|
-
let _pathname = pathname;
|
|
191
|
-
if (isValidURL(pathname)) {
|
|
192
|
-
const pathnameObj = new URL(pathname);
|
|
193
|
-
_pathname = pathnameObj.pathname;
|
|
194
|
-
}
|
|
195
|
-
const newURL = new URL(_pathname, connBaseURLObj.origin);
|
|
196
|
-
this.log.debug('Using baseURL from connection', { url: newURL.toString() });
|
|
197
|
-
return newURL.toString();
|
|
198
|
-
}
|
|
199
239
|
async getTokenByName(name, forceRefresh = false) {
|
|
200
240
|
const credId = await this.getCredentialIDFromName(name);
|
|
201
|
-
const token = await this.tokenClient.getToken(credId
|
|
241
|
+
const token = await this.tokenClient.getToken(credId);
|
|
202
242
|
if (!token?.token) {
|
|
203
243
|
throw new Error(`Token not found for connection ${name} with credential ID ${credId}`);
|
|
204
244
|
}
|
|
205
245
|
return {
|
|
206
246
|
accessToken: token.token.accessToken,
|
|
207
247
|
tokenType: token.token.tokenType,
|
|
208
|
-
expiry: token.token.expiry
|
|
248
|
+
expiry: token.token.expiry
|
|
249
|
+
? new Date(Number(token.token.expiry.seconds) * 1000)
|
|
250
|
+
: undefined,
|
|
209
251
|
};
|
|
210
252
|
}
|
|
211
253
|
async getRawByName(name) {
|
|
@@ -214,7 +256,11 @@ class VersoriCredentialsFactory {
|
|
|
214
256
|
if (!raw) {
|
|
215
257
|
throw new Error(`Raw data not found for connection ${name} with credential ID ${credId}`);
|
|
216
258
|
}
|
|
217
|
-
|
|
259
|
+
let buffer = raw?.credential?.data['raw'] ?? undefined;
|
|
260
|
+
if (!buffer) {
|
|
261
|
+
throw new Error(`Credential ${raw?.credential?.id} is missing raw data, please contact your administrator`);
|
|
262
|
+
}
|
|
263
|
+
return Promise.resolve(buffer);
|
|
218
264
|
}
|
|
219
265
|
async getCredentialIDFromName(name) {
|
|
220
266
|
const conId = this.getConnectionID(name);
|
|
@@ -246,7 +292,7 @@ class VersoriCredentialsFactory {
|
|
|
246
292
|
return template.templateId;
|
|
247
293
|
}
|
|
248
294
|
apiKeyFetcher(conn, fn) {
|
|
249
|
-
|
|
295
|
+
const _fn = async (input, init) => {
|
|
250
296
|
const tokenResponse = await this.getToken(conn.credentials[0].credential.id);
|
|
251
297
|
const token = tokenResponse.token?.accessToken;
|
|
252
298
|
const asc = conn.credentials[0].authSchemeConfig.apiKey;
|
|
@@ -267,7 +313,7 @@ class VersoriCredentialsFactory {
|
|
|
267
313
|
if (init.headers instanceof Headers) {
|
|
268
314
|
init.headers.set(asc.name, token);
|
|
269
315
|
}
|
|
270
|
-
else if (
|
|
316
|
+
else if (init.headers instanceof Array) {
|
|
271
317
|
init.headers.push([asc.name, token]);
|
|
272
318
|
}
|
|
273
319
|
else {
|
|
@@ -290,10 +336,11 @@ class VersoriCredentialsFactory {
|
|
|
290
336
|
break;
|
|
291
337
|
}
|
|
292
338
|
return fn(input, init);
|
|
293
|
-
}
|
|
339
|
+
};
|
|
340
|
+
return Promise.resolve(_fn);
|
|
294
341
|
}
|
|
295
|
-
basicAuthFetcher(conn, fn) {
|
|
296
|
-
|
|
342
|
+
async basicAuthFetcher(conn, fn) {
|
|
343
|
+
const _fn = async (input, init) => {
|
|
297
344
|
const tokenResponse = await this.getToken(conn.credentials[0].credential.id);
|
|
298
345
|
const token = tokenResponse.token?.accessToken;
|
|
299
346
|
if (!token) {
|
|
@@ -318,11 +365,12 @@ class VersoriCredentialsFactory {
|
|
|
318
365
|
};
|
|
319
366
|
}
|
|
320
367
|
return fn(input, init);
|
|
321
|
-
}
|
|
368
|
+
};
|
|
369
|
+
return Promise.resolve(_fn);
|
|
322
370
|
}
|
|
323
371
|
// TODO: need to make the prefix and header name configurable from authschemeconfig
|
|
324
|
-
bearerTokenFetcher(conn, fn) {
|
|
325
|
-
|
|
372
|
+
async bearerTokenFetcher(conn, fn) {
|
|
373
|
+
const _fn = async (input, init) => {
|
|
326
374
|
const tokenResponse = await this.getToken(conn.credentials[0].credential.id);
|
|
327
375
|
const token = tokenResponse.token?.accessToken;
|
|
328
376
|
if (!token) {
|
|
@@ -347,9 +395,10 @@ class VersoriCredentialsFactory {
|
|
|
347
395
|
};
|
|
348
396
|
}
|
|
349
397
|
return fn(input, init);
|
|
350
|
-
}
|
|
398
|
+
};
|
|
399
|
+
return Promise.resolve(_fn);
|
|
351
400
|
}
|
|
352
|
-
oauth2Fetcher(conn, fn) {
|
|
401
|
+
async oauth2Fetcher(conn, fn) {
|
|
353
402
|
const refreshFn = async (input, init, forceRefresh = false) => {
|
|
354
403
|
const tokenResponse = await this.getToken(conn.credentials[0].credential.id, forceRefresh);
|
|
355
404
|
const token = tokenResponse.token?.accessToken;
|
|
@@ -390,8 +439,8 @@ class VersoriCredentialsFactory {
|
|
|
390
439
|
}
|
|
391
440
|
return fn(input, init);
|
|
392
441
|
};
|
|
393
|
-
|
|
394
|
-
const resp = await refreshFn(input, init
|
|
442
|
+
const _fn = async (input, init) => {
|
|
443
|
+
const resp = await refreshFn(input, init);
|
|
395
444
|
if (resp.status === 401) {
|
|
396
445
|
this.log.debug('Received 401 Unauthorized response, attempting refresh', {
|
|
397
446
|
url: input,
|
|
@@ -401,7 +450,8 @@ class VersoriCredentialsFactory {
|
|
|
401
450
|
return refreshFn(input, init, true);
|
|
402
451
|
}
|
|
403
452
|
return Promise.resolve(resp);
|
|
404
|
-
}
|
|
453
|
+
};
|
|
454
|
+
return Promise.resolve(_fn);
|
|
405
455
|
}
|
|
406
456
|
async getToken(id, forceRefresh = false) {
|
|
407
457
|
try {
|
|
@@ -410,7 +460,7 @@ class VersoriCredentialsFactory {
|
|
|
410
460
|
catch (error) {
|
|
411
461
|
this.log.error('unable to get credential', { error });
|
|
412
462
|
if (error instanceof connect_1.ConnectError) {
|
|
413
|
-
if (error.rawMessage.includes(
|
|
463
|
+
if (error.rawMessage.includes('connection error received: not a result of an error') && error.code === connect_1.Code.Internal) {
|
|
414
464
|
this.log.info('Connection error received, attempting to reconnect');
|
|
415
465
|
this.tokenClient = new mod_js_2.VersoriCredentialClient(this.credsBaseURL);
|
|
416
466
|
return await this.tokenClient.getToken(id);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, ContextImpl } from '../../context/Context.js';
|
|
2
|
-
import {
|
|
2
|
+
import { KeyValue, KeyValueScope } from '../../kv/KeyValue.js';
|
|
3
3
|
import { Logger } from '../../observability/logging/Logger.js';
|
|
4
4
|
import { Activation, DynamicFetcher } from '../http/types.js';
|
|
5
5
|
import { Credentials } from '../http/versori/contextcredentials.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,10 +125,12 @@ class HttpContextImpl {
|
|
|
125
125
|
}
|
|
126
126
|
get fetch() {
|
|
127
127
|
// This is maybe hard to read.
|
|
128
|
-
return __classPrivateFieldGet(this, _HttpContextImpl_dynamicFetcher, "f") && __classPrivateFieldGet(this, _HttpContextImpl_inner, "f").activation
|
|
128
|
+
return __classPrivateFieldGet(this, _HttpContextImpl_dynamicFetcher, "f") && __classPrivateFieldGet(this, _HttpContextImpl_inner, "f").activation
|
|
129
|
+
? (0, types_js_1.wrapDynamicFetcher)(__classPrivateFieldGet(this, _HttpContextImpl_dynamicFetcher, "f"), __classPrivateFieldGet(this, _HttpContextImpl_inner, "f").activation)
|
|
130
|
+
: __classPrivateFieldGet(this, _HttpContextImpl_staticFetcher, "f") ?? globalThis.fetch;
|
|
129
131
|
}
|
|
130
132
|
async nextPage(nextParams) {
|
|
131
|
-
throw new Error(
|
|
133
|
+
throw new Error('Method not implemented.');
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
exports.HttpContextImpl = HttpContextImpl;
|