@kapeta/local-cluster-service 0.6.1 → 0.7.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/.eslintrc.cjs +17 -0
- package/.github/workflows/main.yml +22 -22
- package/.prettierignore +4 -0
- package/.vscode/launch.json +2 -4
- package/CHANGELOG.md +7 -0
- package/definitions.d.ts +17 -35
- package/dist/cjs/index.d.ts +27 -0
- package/dist/cjs/index.js +126 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/assetManager.d.ts +31 -0
- package/dist/cjs/src/assetManager.js +153 -0
- package/dist/cjs/src/assets/routes.d.ts +3 -0
- package/dist/cjs/src/assets/routes.js +117 -0
- package/dist/cjs/src/clusterService.d.ts +40 -0
- package/dist/cjs/src/clusterService.js +114 -0
- package/dist/cjs/src/codeGeneratorManager.d.ts +8 -0
- package/dist/cjs/src/codeGeneratorManager.js +53 -0
- package/dist/cjs/src/config/routes.d.ts +3 -0
- package/dist/cjs/src/config/routes.js +126 -0
- package/dist/cjs/src/configManager.d.ts +36 -0
- package/dist/cjs/src/configManager.js +110 -0
- package/dist/cjs/src/containerManager.d.ts +89 -0
- package/dist/cjs/src/containerManager.js +365 -0
- package/dist/cjs/src/filesystem/routes.d.ts +3 -0
- package/dist/cjs/src/filesystem/routes.js +69 -0
- package/dist/cjs/src/filesystemManager.d.ts +15 -0
- package/dist/cjs/src/filesystemManager.js +87 -0
- package/dist/cjs/src/identities/routes.d.ts +3 -0
- package/dist/cjs/src/identities/routes.js +18 -0
- package/dist/cjs/src/instanceManager.d.ts +56 -0
- package/dist/cjs/src/instanceManager.js +424 -0
- package/dist/cjs/src/instances/routes.d.ts +3 -0
- package/dist/cjs/src/instances/routes.js +134 -0
- package/dist/cjs/src/middleware/cors.d.ts +2 -0
- package/dist/cjs/src/middleware/cors.js +10 -0
- package/dist/cjs/src/middleware/kapeta.d.ts +11 -0
- package/dist/cjs/src/middleware/kapeta.js +17 -0
- package/dist/cjs/src/middleware/stringBody.d.ts +5 -0
- package/dist/cjs/src/middleware/stringBody.js +14 -0
- package/dist/cjs/src/networkManager.d.ts +32 -0
- package/dist/cjs/src/networkManager.js +109 -0
- package/dist/cjs/src/operatorManager.d.ts +36 -0
- package/dist/cjs/src/operatorManager.js +165 -0
- package/dist/cjs/src/progressListener.d.ts +20 -0
- package/dist/cjs/src/progressListener.js +91 -0
- package/dist/cjs/src/providerManager.d.ts +9 -0
- package/dist/cjs/src/providerManager.js +51 -0
- package/dist/cjs/src/providers/routes.d.ts +3 -0
- package/dist/cjs/src/providers/routes.js +42 -0
- package/dist/cjs/src/proxy/routes.d.ts +3 -0
- package/dist/cjs/src/proxy/routes.js +111 -0
- package/dist/cjs/src/proxy/types/rest.d.ts +4 -0
- package/dist/cjs/src/proxy/types/rest.js +114 -0
- package/dist/cjs/src/proxy/types/web.d.ts +4 -0
- package/dist/cjs/src/proxy/types/web.js +53 -0
- package/dist/cjs/src/repositoryManager.d.ts +17 -0
- package/dist/cjs/src/repositoryManager.js +215 -0
- package/dist/cjs/src/serviceManager.d.ts +29 -0
- package/dist/cjs/src/serviceManager.js +99 -0
- package/dist/cjs/src/socketManager.d.ts +14 -0
- package/dist/cjs/src/socketManager.js +53 -0
- package/dist/cjs/src/storageService.d.ts +17 -0
- package/dist/cjs/src/storageService.js +74 -0
- package/dist/cjs/src/traffic/routes.d.ts +3 -0
- package/dist/cjs/src/traffic/routes.js +18 -0
- package/dist/cjs/src/types.d.ts +88 -0
- package/dist/cjs/src/types.js +2 -0
- package/dist/cjs/src/utils/BlockInstanceRunner.d.ts +29 -0
- package/dist/cjs/src/utils/BlockInstanceRunner.js +468 -0
- package/dist/cjs/src/utils/LogData.d.ts +19 -0
- package/dist/cjs/src/utils/LogData.js +43 -0
- package/dist/cjs/src/utils/pathTemplateParser.d.ts +26 -0
- package/dist/cjs/src/utils/pathTemplateParser.js +121 -0
- package/dist/cjs/src/utils/utils.d.ts +1 -0
- package/dist/cjs/src/utils/utils.js +18 -0
- package/dist/cjs/start.d.ts +1 -0
- package/dist/cjs/start.js +12 -0
- package/dist/esm/index.d.ts +27 -0
- package/dist/esm/index.js +121 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/src/assetManager.d.ts +31 -0
- package/{src → dist/esm/src}/assetManager.js +22 -60
- package/dist/esm/src/assets/routes.d.ts +3 -0
- package/{src → dist/esm/src}/assets/routes.js +21 -36
- package/dist/esm/src/clusterService.d.ts +40 -0
- package/{src → dist/esm/src}/clusterService.js +14 -37
- package/dist/esm/src/codeGeneratorManager.d.ts +8 -0
- package/{src → dist/esm/src}/codeGeneratorManager.js +15 -24
- package/dist/esm/src/config/routes.d.ts +3 -0
- package/{src → dist/esm/src}/config/routes.js +40 -89
- package/dist/esm/src/configManager.d.ts +36 -0
- package/{src → dist/esm/src}/configManager.js +11 -40
- package/dist/esm/src/containerManager.d.ts +89 -0
- package/{src → dist/esm/src}/containerManager.js +81 -182
- package/dist/esm/src/filesystem/routes.d.ts +3 -0
- package/dist/esm/src/filesystem/routes.js +64 -0
- package/dist/esm/src/filesystemManager.d.ts +15 -0
- package/{src → dist/esm/src}/filesystemManager.js +20 -28
- package/dist/esm/src/identities/routes.d.ts +3 -0
- package/dist/esm/src/identities/routes.js +13 -0
- package/dist/esm/src/instanceManager.d.ts +56 -0
- package/{src → dist/esm/src}/instanceManager.js +88 -179
- package/dist/esm/src/instances/routes.d.ts +3 -0
- package/{src → dist/esm/src}/instances/routes.js +31 -70
- package/dist/esm/src/middleware/cors.d.ts +2 -0
- package/{src → dist/esm/src}/middleware/cors.js +2 -3
- package/dist/esm/src/middleware/kapeta.d.ts +11 -0
- package/{src → dist/esm/src}/middleware/kapeta.js +3 -7
- package/dist/esm/src/middleware/stringBody.d.ts +5 -0
- package/{src → dist/esm/src}/middleware/stringBody.js +2 -3
- package/dist/esm/src/networkManager.d.ts +32 -0
- package/{src → dist/esm/src}/networkManager.js +16 -33
- package/dist/esm/src/operatorManager.d.ts +36 -0
- package/{src → dist/esm/src}/operatorManager.js +35 -91
- package/dist/esm/src/progressListener.d.ts +20 -0
- package/dist/esm/src/progressListener.js +88 -0
- package/dist/esm/src/providerManager.d.ts +9 -0
- package/dist/esm/src/providerManager.js +45 -0
- package/dist/esm/src/providers/routes.d.ts +3 -0
- package/{src → dist/esm/src}/providers/routes.js +10 -16
- package/dist/esm/src/proxy/routes.d.ts +3 -0
- package/dist/esm/src/proxy/routes.js +106 -0
- package/dist/esm/src/proxy/types/rest.d.ts +4 -0
- package/dist/esm/src/proxy/types/rest.js +107 -0
- package/dist/esm/src/proxy/types/web.d.ts +4 -0
- package/{src → dist/esm/src}/proxy/types/web.js +13 -35
- package/dist/esm/src/repositoryManager.d.ts +17 -0
- package/dist/esm/src/repositoryManager.js +209 -0
- package/dist/esm/src/serviceManager.d.ts +29 -0
- package/{src → dist/esm/src}/serviceManager.js +12 -42
- package/dist/esm/src/socketManager.d.ts +14 -0
- package/{src → dist/esm/src}/socketManager.js +19 -23
- package/dist/esm/src/storageService.d.ts +17 -0
- package/{src → dist/esm/src}/storageService.js +8 -27
- package/dist/esm/src/traffic/routes.d.ts +3 -0
- package/{src → dist/esm/src}/traffic/routes.js +4 -9
- package/dist/esm/src/types.d.ts +88 -0
- package/dist/esm/src/types.js +1 -0
- package/dist/esm/src/utils/BlockInstanceRunner.d.ts +29 -0
- package/{src → dist/esm/src}/utils/BlockInstanceRunner.js +137 -256
- package/dist/esm/src/utils/LogData.d.ts +19 -0
- package/{src → dist/esm/src}/utils/LogData.js +11 -22
- package/dist/esm/src/utils/pathTemplateParser.d.ts +26 -0
- package/{src → dist/esm/src}/utils/pathTemplateParser.js +21 -40
- package/dist/esm/src/utils/utils.d.ts +1 -0
- package/dist/esm/src/utils/utils.js +11 -0
- package/dist/esm/start.d.ts +1 -0
- package/dist/esm/start.js +7 -0
- package/index.ts +147 -0
- package/package.json +106 -74
- package/src/assetManager.ts +191 -0
- package/src/assets/routes.ts +132 -0
- package/src/clusterService.ts +134 -0
- package/src/codeGeneratorManager.ts +57 -0
- package/src/config/routes.ts +159 -0
- package/src/configManager.ts +148 -0
- package/src/containerManager.ts +466 -0
- package/src/filesystem/routes.ts +74 -0
- package/src/filesystemManager.ts +93 -0
- package/src/identities/routes.ts +20 -0
- package/src/instanceManager.ts +503 -0
- package/src/instances/routes.ts +164 -0
- package/src/middleware/cors.ts +9 -0
- package/src/middleware/kapeta.ts +27 -0
- package/src/middleware/stringBody.ts +16 -0
- package/src/networkManager.ts +137 -0
- package/src/operatorManager.ts +221 -0
- package/src/progressListener.ts +102 -0
- package/src/{providerManager.js → providerManager.ts} +15 -31
- package/src/providers/routes.ts +46 -0
- package/src/proxy/routes.ts +148 -0
- package/src/proxy/types/{rest.js → rest.ts} +30 -30
- package/src/proxy/types/web.ts +60 -0
- package/src/{repositoryManager.js → repositoryManager.ts} +45 -73
- package/src/serviceManager.ts +120 -0
- package/src/socketManager.ts +57 -0
- package/src/storageService.ts +88 -0
- package/src/traffic/routes.ts +18 -0
- package/src/types.ts +97 -0
- package/src/utils/BlockInstanceRunner.ts +555 -0
- package/src/utils/LogData.ts +47 -0
- package/src/utils/pathTemplateParser.ts +138 -0
- package/src/utils/utils.ts +12 -0
- package/start.ts +8 -0
- package/tsconfig.json +13 -0
- package/index.js +0 -127
- package/src/filesystem/routes.js +0 -74
- package/src/identities/routes.js +0 -19
- package/src/progressListener.js +0 -82
- package/src/proxy/routes.js +0 -126
- package/src/utils/utils.js +0 -13
- package/start.js +0 -7
@@ -0,0 +1,17 @@
|
|
1
|
+
/**
|
2
|
+
* Class that handles reading and writing from local configuration file.
|
3
|
+
*/
|
4
|
+
declare class StorageService {
|
5
|
+
private _data;
|
6
|
+
constructor();
|
7
|
+
getKapetaBasedir(): string;
|
8
|
+
_readConfig(): import("@kapeta/local-cluster-config").ClusterConfig;
|
9
|
+
_writeConfig(): void;
|
10
|
+
section<T = any>(section: string, defaultValue?: any): T;
|
11
|
+
put(section: string, property: string | any, value?: any): void;
|
12
|
+
get(section: string, property?: string): any;
|
13
|
+
contains(section: string, property: string): any;
|
14
|
+
ensure(section: string, property: string, value: any): any;
|
15
|
+
}
|
16
|
+
export declare const storageService: StorageService;
|
17
|
+
export {};
|
@@ -1,34 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
import _ from 'lodash';
|
2
|
+
import FS from 'fs';
|
3
|
+
import FSExtra from 'fs-extra';
|
4
|
+
import YAML from 'yaml';
|
5
|
+
import ClusterConfiguration from '@kapeta/local-cluster-config';
|
7
6
|
/**
|
8
7
|
* Class that handles reading and writing from local configuration file.
|
9
8
|
*/
|
10
9
|
class StorageService {
|
11
|
-
|
10
|
+
_data;
|
12
11
|
constructor() {
|
13
12
|
this._data = this._readConfig();
|
14
13
|
}
|
15
|
-
|
16
14
|
getKapetaBasedir() {
|
17
15
|
return ClusterConfiguration.getKapetaBasedir();
|
18
16
|
}
|
19
|
-
|
20
17
|
_readConfig() {
|
21
18
|
return ClusterConfiguration.getClusterConfig();
|
22
19
|
}
|
23
|
-
|
24
20
|
_writeConfig() {
|
25
21
|
const configFile = ClusterConfiguration.getClusterConfigFile();
|
26
|
-
|
27
|
-
mkdirp.sync(this.getKapetaBasedir());
|
28
|
-
|
22
|
+
FSExtra.mkdirsSync(this.getKapetaBasedir());
|
29
23
|
FS.writeFileSync(configFile, YAML.stringify(this._data));
|
30
24
|
}
|
31
|
-
|
32
25
|
section(section, defaultValue) {
|
33
26
|
if (!defaultValue) {
|
34
27
|
defaultValue = {};
|
@@ -37,51 +30,39 @@ class StorageService {
|
|
37
30
|
this._data[section] = defaultValue;
|
38
31
|
this._writeConfig();
|
39
32
|
}
|
40
|
-
|
41
33
|
return this._data[section];
|
42
34
|
}
|
43
|
-
|
44
35
|
put(section, property, value) {
|
45
36
|
if (!_.isString(property)) {
|
46
37
|
this._data[section] = property;
|
47
38
|
this._writeConfig();
|
48
39
|
return;
|
49
40
|
}
|
50
|
-
|
51
41
|
this.section(section)[property] = value;
|
52
42
|
this._writeConfig();
|
53
43
|
}
|
54
|
-
|
55
44
|
get(section, property) {
|
56
45
|
if (!property) {
|
57
46
|
return this.section(section);
|
58
47
|
}
|
59
|
-
|
60
48
|
return this.section(section)[property];
|
61
49
|
}
|
62
|
-
|
63
50
|
contains(section, property) {
|
64
51
|
if (!this._data[section]) {
|
65
52
|
return false;
|
66
53
|
}
|
67
|
-
|
68
54
|
return this._data[section].hasOwnProperty(property);
|
69
55
|
}
|
70
|
-
|
71
56
|
ensure(section, property, value) {
|
72
57
|
if (this.contains(section, property)) {
|
73
58
|
return this.get(section, property);
|
74
59
|
}
|
75
|
-
|
76
60
|
let out = value;
|
77
61
|
if (typeof value === 'function') {
|
78
62
|
out = value();
|
79
63
|
}
|
80
|
-
|
81
64
|
this.put(section, property, out);
|
82
|
-
|
83
65
|
return out;
|
84
66
|
}
|
85
67
|
}
|
86
|
-
|
87
|
-
module.exports = new StorageService();
|
68
|
+
export const storageService = new StorageService();
|
@@ -1,18 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
const
|
4
|
-
|
1
|
+
import Router from 'express-promise-router';
|
2
|
+
import { networkManager } from '../networkManager';
|
3
|
+
const router = Router();
|
5
4
|
router.get('/:systemId/target/:connectionId/', (req, res) => {
|
6
5
|
res.send(networkManager.getTrafficForConnection(req.params.systemId, req.params.connectionId));
|
7
6
|
});
|
8
|
-
|
9
7
|
router.get('/:systemId/source/:blockInstanceId/', (req, res) => {
|
10
8
|
res.send(networkManager.getTrafficForSource(req.params.systemId, req.params.blockInstanceId));
|
11
9
|
});
|
12
|
-
|
13
10
|
router.get('/:systemId/target/:blockInstanceId/', (req, res) => {
|
14
11
|
res.send(networkManager.getTrafficForTarget(req.params.systemId, req.params.blockInstanceId));
|
15
12
|
});
|
16
|
-
|
17
|
-
|
18
|
-
module.exports = router;
|
13
|
+
export default router;
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import EventEmitter from 'events';
|
3
|
+
import express from 'express';
|
4
|
+
import { Resource } from '@kapeta/schemas';
|
5
|
+
import { StringBodyRequest } from './middleware/stringBody';
|
6
|
+
import { KapetaRequest } from './middleware/kapeta';
|
7
|
+
export type StringMap = {
|
8
|
+
[key: string]: string;
|
9
|
+
};
|
10
|
+
export type AnyMap = {
|
11
|
+
[key: string]: any;
|
12
|
+
};
|
13
|
+
export type LogLevel = 'ERROR' | 'WARN' | 'INFO' | 'DEBUG' | 'TRACE' | 'FATAL';
|
14
|
+
export type LogSource = 'stdout' | 'stderr';
|
15
|
+
export type EnvironmentType = 'docker' | 'process';
|
16
|
+
export interface LogEntry {
|
17
|
+
source: LogSource;
|
18
|
+
level: LogLevel;
|
19
|
+
message: string;
|
20
|
+
time: number;
|
21
|
+
}
|
22
|
+
export interface BlockProcessParams {
|
23
|
+
id: string;
|
24
|
+
ref: string;
|
25
|
+
configuration?: AnyMap;
|
26
|
+
}
|
27
|
+
export type ProcessType = 'docker' | 'local';
|
28
|
+
export interface ProcessDetails {
|
29
|
+
pid: number | string;
|
30
|
+
type: ProcessType;
|
31
|
+
portType?: string;
|
32
|
+
output: EventEmitter;
|
33
|
+
logs: () => LogEntry[];
|
34
|
+
stop: () => Promise<void> | void;
|
35
|
+
}
|
36
|
+
export interface ProcessInfo extends ProcessDetails {
|
37
|
+
id: string;
|
38
|
+
ref: string;
|
39
|
+
name: string;
|
40
|
+
}
|
41
|
+
export type InstanceInfo = {
|
42
|
+
systemId: string;
|
43
|
+
instanceId: string;
|
44
|
+
address?: string;
|
45
|
+
health?: string | null;
|
46
|
+
status: string;
|
47
|
+
pid?: number | string | null;
|
48
|
+
type: ProcessType;
|
49
|
+
portType?: string;
|
50
|
+
};
|
51
|
+
interface ResourceRef {
|
52
|
+
blockId: string;
|
53
|
+
resourceName: string;
|
54
|
+
}
|
55
|
+
export type ProxyRequestHandler = (req: StringBodyRequest, res: express.Response, info: ProxyRequestInfo) => void;
|
56
|
+
export interface Connection {
|
57
|
+
mapping: any;
|
58
|
+
provider: ResourceRef;
|
59
|
+
consumer: ResourceRef;
|
60
|
+
}
|
61
|
+
export interface OperatorInfo {
|
62
|
+
host: string;
|
63
|
+
port: string;
|
64
|
+
type: string;
|
65
|
+
protocol: string;
|
66
|
+
options: AnyMap;
|
67
|
+
credentials: AnyMap;
|
68
|
+
}
|
69
|
+
export interface ProxyRequestInfo {
|
70
|
+
address: string;
|
71
|
+
connection: Connection;
|
72
|
+
providerResource: Resource;
|
73
|
+
consumerResource: Resource;
|
74
|
+
consumerPath: string;
|
75
|
+
}
|
76
|
+
export interface SimpleResponse {
|
77
|
+
code: number;
|
78
|
+
headers: StringMap;
|
79
|
+
body: any;
|
80
|
+
}
|
81
|
+
export interface SimpleRequest {
|
82
|
+
method: string;
|
83
|
+
url: string;
|
84
|
+
headers: StringMap;
|
85
|
+
body: any;
|
86
|
+
}
|
87
|
+
export type KapetaBodyRequest = KapetaRequest & StringBodyRequest;
|
88
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { DefinitionInfo } from '@kapeta/local-cluster-config';
|
2
|
+
import { KapetaURI } from '@kapeta/nodejs-utils';
|
3
|
+
import { AnyMap, BlockProcessParams, ProcessDetails, ProcessInfo, StringMap } from '../types';
|
4
|
+
export declare class BlockInstanceRunner {
|
5
|
+
private readonly _systemId;
|
6
|
+
constructor(planReference: string);
|
7
|
+
/**
|
8
|
+
* Start a block
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
start(blockRef: string, instanceId: string, configuration: AnyMap): Promise<ProcessInfo>;
|
12
|
+
private _execute;
|
13
|
+
/**
|
14
|
+
* Starts local process
|
15
|
+
*/
|
16
|
+
private _startLocalProcess;
|
17
|
+
private _handleContainer;
|
18
|
+
private _startDockerProcess;
|
19
|
+
/**
|
20
|
+
*
|
21
|
+
* @param blockInstance
|
22
|
+
* @param blockUri
|
23
|
+
* @param providerDefinition
|
24
|
+
* @param {{[key:string]:string}} env
|
25
|
+
* @return {Promise<ProcessDetails>}
|
26
|
+
* @private
|
27
|
+
*/
|
28
|
+
_startOperatorProcess(blockInstance: BlockProcessParams, blockUri: KapetaURI, providerDefinition: DefinitionInfo, env: StringMap): Promise<ProcessDetails>;
|
29
|
+
}
|