@kapeta/local-cluster-service 0.6.0 → 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 +14 -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/dist/esm/src/config/routes.js +121 -0
- 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 +94 -175
- 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/config/routes.js +0 -160
- 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
package/src/proxy/routes.js
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
const Router = require('express-promise-router').default;
|
2
|
-
const _ = require('lodash');
|
3
|
-
|
4
|
-
const router = new Router();
|
5
|
-
const serviceManager = require('../serviceManager');
|
6
|
-
const clusterService = require('../clusterService');
|
7
|
-
const assetManager = require('../assetManager');
|
8
|
-
|
9
|
-
/**
|
10
|
-
* @var {{[key:string]:ProxyRequestHandler}}
|
11
|
-
*/
|
12
|
-
const TYPE_HANDLERS = {
|
13
|
-
rest: require('./types/rest'),
|
14
|
-
web: require('./types/web')
|
15
|
-
};
|
16
|
-
|
17
|
-
function getResource(resources, resourceName) {
|
18
|
-
return _.find(resources, (resource) => {
|
19
|
-
return (resource.metadata.name.toLowerCase() === resourceName.toLowerCase());
|
20
|
-
});
|
21
|
-
}
|
22
|
-
|
23
|
-
router.use('/:systemId/:consumerInstanceId/:consumerResourceName', require('../middleware/stringBody'));
|
24
|
-
|
25
|
-
router.all('/:systemId/:consumerInstanceId/:consumerResourceName/:type/*', async (req, res) => {
|
26
|
-
|
27
|
-
try {
|
28
|
-
|
29
|
-
const typeHandler = TYPE_HANDLERS[req.params.type.toLowerCase()];
|
30
|
-
if (!typeHandler) {
|
31
|
-
res.status(401).send({error: 'Unknown connection type: ' + req.params.type});
|
32
|
-
return;
|
33
|
-
}
|
34
|
-
|
35
|
-
const plan = await assetManager.getPlan(req.params.systemId);
|
36
|
-
|
37
|
-
// We can find the connection by the consumer information alone since
|
38
|
-
// only 1 provider can be connected to a consumer resource at a time
|
39
|
-
const connection = _.find(plan.spec.connections, (connection) => {
|
40
|
-
return connection.consumer.blockId.toLowerCase() === req.params.consumerInstanceId.toLowerCase() &&
|
41
|
-
connection.consumer.resourceName.toLowerCase() === req.params.consumerResourceName.toLowerCase();
|
42
|
-
});
|
43
|
-
|
44
|
-
if (!connection) {
|
45
|
-
res.status(401).send({error:`No connection found for consumer "${req.params.consumerInstanceId}::${req.params.consumerResourceName}"`});
|
46
|
-
return;
|
47
|
-
}
|
48
|
-
|
49
|
-
const toBlockInstance = _.find(plan.spec.blocks, (blockInstance) => {
|
50
|
-
return blockInstance.id.toLowerCase() === connection.consumer.blockId.toLowerCase();
|
51
|
-
});
|
52
|
-
|
53
|
-
if (!toBlockInstance) {
|
54
|
-
res.status(401).send({error:`Block instance not found "${req.params.consumerInstanceId}`});
|
55
|
-
return;
|
56
|
-
}
|
57
|
-
|
58
|
-
const toBlockAsset = await assetManager.getAsset(toBlockInstance.block.ref);
|
59
|
-
|
60
|
-
const consumerResource = getResource(toBlockAsset.data.spec.consumers, req.params.consumerResourceName);
|
61
|
-
|
62
|
-
if (!consumerResource) {
|
63
|
-
res.status(401).send({error:`Block resource not found "${req.params.consumerInstanceId}::${req.params.consumerResourceName}`});
|
64
|
-
return;
|
65
|
-
}
|
66
|
-
|
67
|
-
const basePath = clusterService.getProxyPath(
|
68
|
-
req.params.systemId,
|
69
|
-
req.params.consumerInstanceId,
|
70
|
-
req.params.consumerResourceName,
|
71
|
-
req.params.type
|
72
|
-
);
|
73
|
-
|
74
|
-
const fromBlockInstance = _.find(plan.spec.blocks, (blockInstance) => {
|
75
|
-
return blockInstance.id.toLowerCase() === connection.provider.blockId.toLowerCase();
|
76
|
-
});
|
77
|
-
|
78
|
-
if (!fromBlockInstance) {
|
79
|
-
res.status(401).send({error:`Block instance not found "${connection.provider.blockId}`});
|
80
|
-
return;
|
81
|
-
}
|
82
|
-
|
83
|
-
const fromBlockAsset = await assetManager.getAsset(fromBlockInstance.block.ref);
|
84
|
-
|
85
|
-
const providerResource = getResource(fromBlockAsset.data.spec.providers, connection.provider.resourceName);
|
86
|
-
|
87
|
-
if (!providerResource) {
|
88
|
-
res.status(401).send({error:`Block resource not found "${connection.provider.blockId}::${connection.provider.resourceName}`});
|
89
|
-
return;
|
90
|
-
}
|
91
|
-
|
92
|
-
|
93
|
-
//Get target address
|
94
|
-
let address = await serviceManager.getProviderAddress(
|
95
|
-
req.params.systemId,
|
96
|
-
connection.provider.blockId,
|
97
|
-
req.params.type
|
98
|
-
);
|
99
|
-
|
100
|
-
while(address.endsWith('/')) {
|
101
|
-
address = address.substring(0, address.length - 1);
|
102
|
-
}
|
103
|
-
|
104
|
-
/*
|
105
|
-
Get the path the consumer requested.
|
106
|
-
Note that this might not match the path the destination is expecting so we need to identify the method
|
107
|
-
that is being called and identify the destination path from the connection.
|
108
|
-
*/
|
109
|
-
const consumerPath = req.originalUrl.substring(basePath.length - 1);
|
110
|
-
|
111
|
-
typeHandler(req, res, {
|
112
|
-
consumerPath,
|
113
|
-
address,
|
114
|
-
consumerResource,
|
115
|
-
providerResource,
|
116
|
-
connection
|
117
|
-
});
|
118
|
-
|
119
|
-
} catch(err) {
|
120
|
-
console.warn("Failed to process proxy request", err);
|
121
|
-
res.status(400).send({error: err.message});
|
122
|
-
}
|
123
|
-
|
124
|
-
});
|
125
|
-
|
126
|
-
module.exports = router;
|
package/src/utils/utils.js
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
const FS = require("node:fs");
|
2
|
-
const YAML = require("yaml");
|
3
|
-
|
4
|
-
|
5
|
-
exports.readYML = function readYML(path) {
|
6
|
-
let rawYaml = FS.readFileSync(path);
|
7
|
-
|
8
|
-
try {
|
9
|
-
return YAML.parse(rawYaml.toString());
|
10
|
-
} catch(err) {
|
11
|
-
throw new Error('Failed to parse plan YAML: ' + err);
|
12
|
-
}
|
13
|
-
}
|
package/start.js
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
const localClusterService = require('./index.js');
|
2
|
-
|
3
|
-
localClusterService.start()
|
4
|
-
.then(({host,port}) => console.log('Listening on port %s:%s', host, port))
|
5
|
-
.catch(e => {
|
6
|
-
console.error('Failed to start local cluster due to an error:\n\t - %s', e.toString())
|
7
|
-
});
|