@hahnpro/hpc-api 3.4.3 → 3.6.0
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/dist/api.d.ts +2 -0
- package/dist/api.js +2 -0
- package/dist/flow-deployment.service.d.ts +2 -2
- package/dist/http.service.d.ts +1 -1
- package/dist/http.service.js +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/mock/api.mock.d.ts +5 -0
- package/dist/mock/api.mock.js +4 -1
- package/dist/mock/data.mock.service.d.ts +3 -1
- package/dist/mock/data.mock.service.js +3 -2
- package/dist/mock/index.d.ts +1 -0
- package/dist/mock/index.js +1 -0
- package/dist/mock/vault.mock.service.d.ts +7 -0
- package/dist/mock/vault.mock.service.js +18 -0
- package/dist/vault.interface.d.ts +10 -0
- package/dist/vault.interface.js +2 -0
- package/dist/vault.service.d.ts +7 -0
- package/dist/vault.service.js +14 -0
- package/package.json +4 -3
package/dist/api.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { FlowFunctionService } from './flow-function.service';
|
|
|
15
15
|
import { FlowModuleService } from './flow-module.service';
|
|
16
16
|
import { FlowDeploymentService } from './flow-deployment.service';
|
|
17
17
|
import { LabelService } from './label.service';
|
|
18
|
+
import { VaultService } from './vault.service';
|
|
18
19
|
export declare class API {
|
|
19
20
|
httpClient: HttpClient;
|
|
20
21
|
assets: AssetService;
|
|
@@ -32,6 +33,7 @@ export declare class API {
|
|
|
32
33
|
tasks: TaskService;
|
|
33
34
|
timeSeries: TimeSeriesService;
|
|
34
35
|
users: UserService;
|
|
36
|
+
vault: VaultService;
|
|
35
37
|
/**
|
|
36
38
|
* @deprecated use "assets" instead
|
|
37
39
|
*/
|
package/dist/api.js
CHANGED
|
@@ -18,6 +18,7 @@ const flow_function_service_1 = require("./flow-function.service");
|
|
|
18
18
|
const flow_module_service_1 = require("./flow-module.service");
|
|
19
19
|
const flow_deployment_service_1 = require("./flow-deployment.service");
|
|
20
20
|
const label_service_1 = require("./label.service");
|
|
21
|
+
const vault_service_1 = require("./vault.service");
|
|
21
22
|
class API {
|
|
22
23
|
constructor() {
|
|
23
24
|
const normalizePath = (value = '', defaultValue = '') => value.replace(/(?:^\/+)|(?:\/+$)/g, '') || defaultValue;
|
|
@@ -51,6 +52,7 @@ class API {
|
|
|
51
52
|
this.tasks = new task_service_1.TaskService(this.httpClient);
|
|
52
53
|
this.timeSeries = new timeseries_service_1.TimeSeriesService(this.httpClient);
|
|
53
54
|
this.users = new user_service_1.UserService(this.httpClient);
|
|
55
|
+
this.vault = new vault_service_1.VaultService(this.httpClient);
|
|
54
56
|
this.assetManager = this.assets;
|
|
55
57
|
this.contentManager = this.contents;
|
|
56
58
|
this.endpointManager = this.endpoints;
|
|
@@ -27,7 +27,7 @@ export declare class FlowDeploymentService extends BaseService {
|
|
|
27
27
|
readWritePermissions?: string[];
|
|
28
28
|
tags?: string[];
|
|
29
29
|
}): Promise<FlowDeployment>;
|
|
30
|
-
subscribeToStatus(id: string, listener: (event: MessageEvent<any>) => void, errorListener?: (event: MessageEvent) => void): Promise<
|
|
31
|
-
subscribeToLogs(id: string, listener: (event: MessageEvent<any>) => void, errorListener?: (event: MessageEvent) => void): Promise<
|
|
30
|
+
subscribeToStatus(id: string, listener: (event: MessageEvent<any>) => void, errorListener?: (event: MessageEvent) => void): Promise<any>;
|
|
31
|
+
subscribeToLogs(id: string, listener: (event: MessageEvent<any>) => void, errorListener?: (event: MessageEvent) => void): Promise<any>;
|
|
32
32
|
}
|
|
33
33
|
export {};
|
package/dist/http.service.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export declare class HttpClient {
|
|
|
27
27
|
post: <T>(url: string, data: any, config?: AxiosRequestConfig) => Promise<T>;
|
|
28
28
|
put: <T>(url: string, data: any, config?: AxiosRequestConfig) => Promise<T>;
|
|
29
29
|
private request;
|
|
30
|
-
addEventSource(url: string, listener: (event: MessageEvent) => void, errorListener?: (event: MessageEvent) => void): Promise<
|
|
30
|
+
addEventSource(url: string, listener: (event: MessageEvent) => void, errorListener?: (event: MessageEvent) => void): Promise<any>;
|
|
31
31
|
destroyEventSource(id: string): void;
|
|
32
32
|
destroyAllEventSources(): void;
|
|
33
33
|
getAccessToken: () => Promise<string>;
|
package/dist/http.service.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.HttpClient = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
6
|
const eventsource_1 = tslib_1.__importDefault(require("eventsource"));
|
|
7
|
-
const
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
8
8
|
const jose_1 = require("jose");
|
|
9
9
|
const Queue_1 = require("./Queue");
|
|
10
10
|
const token_set_1 = require("./token-set");
|
|
@@ -45,7 +45,7 @@ class HttpClient {
|
|
|
45
45
|
this.requestQueue = new Queue_1.Queue({ concurrency: 1, timeout: 70000, throwOnTimeout: true });
|
|
46
46
|
}
|
|
47
47
|
async addEventSource(url, listener, errorListener) {
|
|
48
|
-
const id = (0,
|
|
48
|
+
const id = (0, uuid_1.v4)();
|
|
49
49
|
const errListener = errorListener
|
|
50
50
|
? errorListener
|
|
51
51
|
: (event) => {
|
|
@@ -99,7 +99,7 @@ class HttpClient {
|
|
|
99
99
|
const assertionPayload = {
|
|
100
100
|
iat: timestamp,
|
|
101
101
|
exp: timestamp + 60,
|
|
102
|
-
jti: (0,
|
|
102
|
+
jti: (0, uuid_1.v4)(),
|
|
103
103
|
iss: this.clientId,
|
|
104
104
|
sub: this.clientId,
|
|
105
105
|
aud: audience,
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -20,4 +20,5 @@ tslib_1.__exportStar(require("./flow-function.interface"), exports);
|
|
|
20
20
|
tslib_1.__exportStar(require("./flow.interface"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./resource.interface"), exports);
|
|
22
22
|
tslib_1.__exportStar(require("./schema.interface"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./vault.interface"), exports);
|
|
23
24
|
exports.SiDrive = tslib_1.__importStar(require("./sidriveiq.interface"));
|
package/dist/mock/api.mock.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ import { FlowModule } from '../flow-module.interface';
|
|
|
26
26
|
import { Artifact } from '../storage.interface';
|
|
27
27
|
import { LabelMockService } from './label.mock.service';
|
|
28
28
|
import { Label } from '../label.interface';
|
|
29
|
+
import { VaultSecret } from '../vault.interface';
|
|
30
|
+
import { VaultMockService } from './vault.mock.service';
|
|
29
31
|
export declare class MockAPI implements API {
|
|
30
32
|
httpClient: any;
|
|
31
33
|
assets: AssetMockService;
|
|
@@ -43,6 +45,7 @@ export declare class MockAPI implements API {
|
|
|
43
45
|
tasks: TaskMockService;
|
|
44
46
|
timeSeries: TimeseriesMockService;
|
|
45
47
|
users: UserMockService;
|
|
48
|
+
vault: VaultMockService;
|
|
46
49
|
assetManager: AssetMockService;
|
|
47
50
|
contentManager: ContentMockService;
|
|
48
51
|
endpointManager: EndpointMockService;
|
|
@@ -70,6 +73,7 @@ export declare class MockAPI implements API {
|
|
|
70
73
|
modules?: FlowModuleInit[];
|
|
71
74
|
diagrams?: FlowDiagramInit[];
|
|
72
75
|
labels?: LabelInit[];
|
|
76
|
+
vault?: VaultSecretInit[];
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
79
|
export declare type Identity<T> = {
|
|
@@ -104,6 +108,7 @@ export declare type ArtifactInit = AtLeast<Artifact & {
|
|
|
104
108
|
}, 'filename' | 'path'>;
|
|
105
109
|
export declare type FlowDiagramInit = AtLeast<FlowDiagram, 'id' | 'flow'>;
|
|
106
110
|
export declare type LabelInit = AtLeast<Label, 'id' | 'name'>;
|
|
111
|
+
export declare type VaultSecretInit = AtLeast<VaultSecret, 'name' | 'secret'>;
|
|
107
112
|
export interface UserInit {
|
|
108
113
|
roles: string[];
|
|
109
114
|
}
|
package/dist/mock/api.mock.js
CHANGED
|
@@ -17,12 +17,13 @@ const flow_functions_mock_service_1 = require("./flow-functions.mock.service");
|
|
|
17
17
|
const flow_modules_mock_service_1 = require("./flow-modules.mock.service");
|
|
18
18
|
const crypto_1 = require("crypto");
|
|
19
19
|
const label_mock_service_1 = require("./label.mock.service");
|
|
20
|
+
const vault_mock_service_1 = require("./vault.mock.service");
|
|
20
21
|
class MockAPI {
|
|
21
22
|
constructor(initData) {
|
|
22
23
|
this.httpClient = null;
|
|
23
24
|
this.proxy = null;
|
|
24
25
|
this.siDrive = null;
|
|
25
|
-
const { assets = [], assetRevisions = [], contents = [], endpoints = [], secrets = [], timeSeries = [], tasks = [], events = [], users, flows = [], flowRevisions = [], deployments = [], functions = [], functionRevisions = [], modules = [], diagrams = [], labels = [], } = initData;
|
|
26
|
+
const { assets = [], assetRevisions = [], contents = [], endpoints = [], secrets = [], timeSeries = [], tasks = [], events = [], users, flows = [], flowRevisions = [], deployments = [], functions = [], functionRevisions = [], modules = [], diagrams = [], labels = [], vault = [], } = initData;
|
|
26
27
|
const assetTypes = assets
|
|
27
28
|
.map((v) => v.type)
|
|
28
29
|
.map((v) => {
|
|
@@ -111,6 +112,7 @@ class MockAPI {
|
|
|
111
112
|
return (Object.assign(Object.assign({}, v), { artifacts: (_a = modules[index].artifacts.map((art) => (Object.assign(Object.assign({}, art), { version: '0.0.0', id: (0, crypto_1.randomUUID)(), mimetype: '', size: 0, createdAt: '' + Date.now() })))) !== null && _a !== void 0 ? _a : [], author: 'nobody', functions: [], readPermissions: [], readWritePermissions: [] }));
|
|
112
113
|
});
|
|
113
114
|
const labels1 = labels.map((label) => (Object.assign(Object.assign({}, label), { color: '', description: '', readPermissions: [], readWritePermissions: [] })));
|
|
115
|
+
const vaultSecrets1 = vault.map((v) => (Object.assign(Object.assign({}, v), { readPermissions: [], readWritePermissions: [] })));
|
|
114
116
|
this.assets = new asset_mock_service_1.AssetMockService(this, assets1, assetRevisions1);
|
|
115
117
|
this.contents = new content_mock_service_1.ContentMockService(contents1, contentData);
|
|
116
118
|
this.endpoints = new endpoint_mock_service_1.EndpointMockService(endpoint1);
|
|
@@ -124,6 +126,7 @@ class MockAPI {
|
|
|
124
126
|
this.flowFunctions = new flow_functions_mock_service_1.FlowFunctionsMockService(functions1, functionRevisions1);
|
|
125
127
|
this.flowModules = new flow_modules_mock_service_1.FlowModulesMockService(modules1);
|
|
126
128
|
this.labels = new label_mock_service_1.LabelMockService(labels1);
|
|
129
|
+
this.vault = new vault_mock_service_1.VaultMockService(vaultSecrets1);
|
|
127
130
|
this.assetManager = this.assets;
|
|
128
131
|
this.contentManager = this.contents;
|
|
129
132
|
this.endpointManager = this.endpoints;
|
|
@@ -9,6 +9,8 @@ export declare class DataMockService<T> extends DataService<T> implements APIBas
|
|
|
9
9
|
deleteOne(id: string): Promise<any>;
|
|
10
10
|
getMany(params?: RequestParameter): Promise<Paginated<T[]>>;
|
|
11
11
|
getManyFiltered(filter: Filter, params?: RequestParameter): Promise<Paginated<T[]>>;
|
|
12
|
-
getOne(id: string, options?: any
|
|
12
|
+
getOne(id: string, options?: Record<string, any> & {
|
|
13
|
+
idKey?: string;
|
|
14
|
+
}): Promise<T>;
|
|
13
15
|
updateOne(id: string, dto: any): Promise<T>;
|
|
14
16
|
}
|
|
@@ -40,8 +40,9 @@ class DataMockService extends data_service_1.DataService {
|
|
|
40
40
|
};
|
|
41
41
|
return Promise.resolve(page);
|
|
42
42
|
}
|
|
43
|
-
getOne(id, options) {
|
|
44
|
-
const
|
|
43
|
+
getOne(id, options = {}) {
|
|
44
|
+
const idKey = options.idKey || 'id';
|
|
45
|
+
const t = this.data.find((v) => v[idKey] === id);
|
|
45
46
|
return Promise.resolve(t);
|
|
46
47
|
}
|
|
47
48
|
async updateOne(id, dto) {
|
package/dist/mock/index.d.ts
CHANGED
package/dist/mock/index.js
CHANGED
|
@@ -10,3 +10,4 @@ tslib_1.__exportStar(require("./secret.mock.service"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./timeseries.mock.service"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./task.mock.service"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./events.mock.service"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./vault.mock.service"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataMockService } from './data.mock.service';
|
|
2
|
+
import { VaultSecret } from '../vault.interface';
|
|
3
|
+
import { VaultService } from '../vault.service';
|
|
4
|
+
export declare class VaultMockService extends DataMockService<VaultSecret> implements VaultService {
|
|
5
|
+
constructor(secrets: VaultSecret[]);
|
|
6
|
+
getSecret(name: string, version?: number): Promise<string>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultMockService = void 0;
|
|
4
|
+
const data_mock_service_1 = require("./data.mock.service");
|
|
5
|
+
class VaultMockService extends data_mock_service_1.DataMockService {
|
|
6
|
+
constructor(secrets) {
|
|
7
|
+
super();
|
|
8
|
+
this.data = secrets;
|
|
9
|
+
}
|
|
10
|
+
getSecret(name, version) {
|
|
11
|
+
const vaultSecret = this.data.find((v) => v.name === name);
|
|
12
|
+
if (version && vaultSecret.version !== version) {
|
|
13
|
+
return Promise.resolve('');
|
|
14
|
+
}
|
|
15
|
+
return Promise.resolve(vaultSecret.secret);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.VaultMockService = VaultMockService;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataService } from './data.service';
|
|
2
|
+
import { VaultSecret } from './vault.interface';
|
|
3
|
+
import { HttpClient } from './http.service';
|
|
4
|
+
export declare class VaultService extends DataService<VaultSecret> {
|
|
5
|
+
constructor(httpClient: HttpClient);
|
|
6
|
+
getSecret(name: string, version?: number): Promise<string>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultService = void 0;
|
|
4
|
+
const data_service_1 = require("./data.service");
|
|
5
|
+
class VaultService extends data_service_1.DataService {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
super(httpClient, '/vault/secrets');
|
|
8
|
+
}
|
|
9
|
+
getSecret(name, version) {
|
|
10
|
+
const params = version ? { version } : {};
|
|
11
|
+
return this.httpClient.get(`${this.basePath}/${name}/secret`, { params });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.VaultService = VaultService;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hahnpro/hpc-api",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Module for easy access to the HahnPRO API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
"axios": "~0.27.2",
|
|
28
28
|
"eventsource": "^2.0.2",
|
|
29
29
|
"form-data": "^4.0.0",
|
|
30
|
-
"jose": "^4.
|
|
30
|
+
"jose": "^4.9.1",
|
|
31
31
|
"jwt-decode": "^3.1.2",
|
|
32
32
|
"p-queue": "^6.6.2",
|
|
33
|
-
"ts-mixer": "^6.0.1"
|
|
33
|
+
"ts-mixer": "^6.0.1",
|
|
34
|
+
"uuid": "^8.3.2"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/eventsource": "^1.1.9",
|