soajs.controller 4.2.13 → 4.2.15
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/.travis.yml +2 -3
- package/modules/registry/index.js +41 -40
- package/mw/mt/index.js +2 -1
- package/package.json +11 -11
- package/server/maintenance.js +1 -1
- package/test/data/provision/environment/dev.js +1 -1
- package/test/data/provision/environment/stg.js +1 -1
- package/test/integration/UC1-gateway-routes/index.js +4 -4
- package/test/integration/UC2-http-methods/service-mock/index.js +1 -1
- package/test/integration/server/maintenance.js +1 -1
package/.travis.yml
CHANGED
|
@@ -41,14 +41,14 @@ if (process.env.SOAJS_SENSITIVE_ENVS) {
|
|
|
41
41
|
|
|
42
42
|
let build = {
|
|
43
43
|
"metaAndCoreDB": (STRUCT, envCode, timeLoaded) => {
|
|
44
|
-
let metaAndCoreDB = {"metaDB": {}, "coreDB": {}};
|
|
45
|
-
|
|
44
|
+
let metaAndCoreDB = { "metaDB": {}, "coreDB": {} };
|
|
45
|
+
|
|
46
46
|
if (STRUCT && STRUCT.dbs && STRUCT.dbs.databases) {
|
|
47
47
|
for (let dbName in STRUCT.dbs.databases) {
|
|
48
48
|
if (Object.hasOwnProperty.call(STRUCT.dbs.databases, dbName)) {
|
|
49
49
|
let dbRec = STRUCT.dbs.databases[dbName];
|
|
50
50
|
let dbObj = null;
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
if (dbRec.cluster) {
|
|
53
53
|
let clusterRec = {};
|
|
54
54
|
if (STRUCT.dbs.clusters && STRUCT.dbs.clusters[dbRec.cluster]) {
|
|
@@ -113,7 +113,7 @@ let build = {
|
|
|
113
113
|
}
|
|
114
114
|
return metaAndCoreDB;
|
|
115
115
|
},
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
"sessionDB": (STRUCT, env, timeLoaded) => {
|
|
118
118
|
let sessionDB = null;
|
|
119
119
|
if (STRUCT && STRUCT.dbs && STRUCT.dbs.config) {
|
|
@@ -143,7 +143,7 @@ let build = {
|
|
|
143
143
|
}
|
|
144
144
|
sessionDB.cluster = dbRec.cluster;
|
|
145
145
|
sessionDB.registryLocation.cluster = dbRec.cluster;
|
|
146
|
-
|
|
146
|
+
|
|
147
147
|
if (clusterRec.config) {
|
|
148
148
|
for (let dataConf in clusterRec.config) {
|
|
149
149
|
if (Object.hasOwnProperty.call(clusterRec.config, dataConf)) {
|
|
@@ -165,7 +165,7 @@ let build = {
|
|
|
165
165
|
}
|
|
166
166
|
return sessionDB;
|
|
167
167
|
},
|
|
168
|
-
|
|
168
|
+
|
|
169
169
|
"registerNewService": (dbConfiguration, serviceObj, collection, cb) => {
|
|
170
170
|
if (process.env.SOAJS_DEPLOY_HA) {
|
|
171
171
|
return cb(null);
|
|
@@ -177,7 +177,7 @@ let build = {
|
|
|
177
177
|
}
|
|
178
178
|
return model.registerNewService(dbConfiguration, serviceObj, collection, cb);
|
|
179
179
|
},
|
|
180
|
-
|
|
180
|
+
|
|
181
181
|
"allServices": (STRUCT, servicesObj, gatewayServiceName) => {
|
|
182
182
|
if (STRUCT && Array.isArray(STRUCT) && STRUCT.length > 0) {
|
|
183
183
|
for (let i = 0; i < STRUCT.length; i++) {
|
|
@@ -237,7 +237,7 @@ let build = {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
},
|
|
240
|
-
|
|
240
|
+
|
|
241
241
|
"allDaemons": (STRUCT, servicesObj, gatewayServiceName) => {
|
|
242
242
|
if (STRUCT && Array.isArray(STRUCT) && STRUCT.length > 0) {
|
|
243
243
|
for (let i = 0; i < STRUCT.length; i++) {
|
|
@@ -269,7 +269,7 @@ let build = {
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
},
|
|
272
|
-
|
|
272
|
+
|
|
273
273
|
"servicesHosts": (STRUCT, servicesObj) => {
|
|
274
274
|
if (STRUCT && Array.isArray(STRUCT) && STRUCT.length > 0) {
|
|
275
275
|
for (let i = 0; i < STRUCT.length; i++) {
|
|
@@ -280,7 +280,7 @@ let build = {
|
|
|
280
280
|
servicesObj[STRUCT[i].name].oport = servicesObj[STRUCT[i].name].port;
|
|
281
281
|
servicesObj[STRUCT[i].name].port = STRUCT[i].port;
|
|
282
282
|
}
|
|
283
|
-
|
|
283
|
+
|
|
284
284
|
if (!STRUCT[i].version) {
|
|
285
285
|
STRUCT[i].version = "1";
|
|
286
286
|
}
|
|
@@ -303,7 +303,7 @@ let build = {
|
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
},
|
|
306
|
-
|
|
306
|
+
|
|
307
307
|
"controllerHosts": (STRUCT, controllerObj) => {
|
|
308
308
|
if (STRUCT && Array.isArray(STRUCT) && STRUCT.length > 0) {
|
|
309
309
|
for (let i = 0; i < STRUCT.length; i++) {
|
|
@@ -338,29 +338,29 @@ function buildRegistry(param, registry, registryDBInfo, callback) {
|
|
|
338
338
|
if (!registryDBInfo.ENV_schema || !registryDBInfo.ENV_schema.services || !registryDBInfo.ENV_schema.services.config) {
|
|
339
339
|
return callback(new Error('Unable to get [' + registry.environment + '] environment services from db'));
|
|
340
340
|
}
|
|
341
|
-
|
|
341
|
+
|
|
342
342
|
registry.domain = registryDBInfo.ENV_schema.domain;
|
|
343
343
|
registry.apiPrefix = registryDBInfo.ENV_schema.apiPrefix;
|
|
344
344
|
registry.sitePrefix = registryDBInfo.ENV_schema.sitePrefix;
|
|
345
345
|
registry.protocol = registryDBInfo.ENV_schema.protocol;
|
|
346
346
|
registry.port = registryDBInfo.ENV_schema.port;
|
|
347
|
-
|
|
347
|
+
|
|
348
348
|
registry.endpoints = registryDBInfo.ENV_schema.endpoints || {};
|
|
349
|
-
|
|
349
|
+
|
|
350
350
|
registry.serviceConfig = registryDBInfo.ENV_schema.services.config;
|
|
351
|
-
|
|
351
|
+
|
|
352
352
|
registry.deployer = registryDBInfo.ENV_schema.deployer || {};
|
|
353
|
-
|
|
353
|
+
|
|
354
354
|
registry.custom = registryDBInfo.ENV_schema.custom || {};
|
|
355
|
-
|
|
355
|
+
|
|
356
356
|
registry.resources = registryDBInfo.ENV_schema.resources || {};
|
|
357
|
-
|
|
357
|
+
|
|
358
358
|
for (let coreDBName in metaAndCoreDB.coreDB) {
|
|
359
359
|
if (Object.hasOwnProperty.call(metaAndCoreDB.coreDB, coreDBName)) {
|
|
360
360
|
registry.coreDB[coreDBName] = metaAndCoreDB.coreDB[coreDBName];
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
|
-
|
|
363
|
+
|
|
364
364
|
registry.services = {
|
|
365
365
|
"controller": {
|
|
366
366
|
"name": registryDBInfo.ENV_schema.services.controller.name || "controller",
|
|
@@ -373,9 +373,9 @@ function buildRegistry(param, registry, registryDBInfo, callback) {
|
|
|
373
373
|
"requestTimeoutRenewal": registryDBInfo.ENV_schema.services.controller.requestTimeoutRenewal || 0
|
|
374
374
|
}
|
|
375
375
|
};
|
|
376
|
-
|
|
376
|
+
|
|
377
377
|
registry.coreDB.session = build.sessionDB(registryDBInfo.ENV_schema, registry.environment, registry.timeLoaded);
|
|
378
|
-
|
|
378
|
+
|
|
379
379
|
registry.daemons = {};
|
|
380
380
|
return callback(null, registry);
|
|
381
381
|
}
|
|
@@ -383,25 +383,25 @@ function buildRegistry(param, registry, registryDBInfo, callback) {
|
|
|
383
383
|
function buildSpecificRegistry(param, options, registry, registryDBInfo, callback) {
|
|
384
384
|
//IF: gateway
|
|
385
385
|
if (param.name === registry.services.controller.name) {
|
|
386
|
-
|
|
386
|
+
|
|
387
387
|
build.allServices(registryDBInfo.services_schema, registry.services, registry.services.controller.name);
|
|
388
388
|
if (!process.env.SOAJS_DEPLOY_HA) {
|
|
389
389
|
build.servicesHosts(registryDBInfo.ENV_hosts, registry.services);
|
|
390
390
|
}
|
|
391
|
-
|
|
391
|
+
|
|
392
392
|
build.allDaemons(registryDBInfo.daemons_schema, registry.daemons, registry.services.controller.name);
|
|
393
393
|
if (!process.env.SOAJS_DEPLOY_HA) {
|
|
394
394
|
build.servicesHosts(registryDBInfo.ENV_hosts, registry.daemons);
|
|
395
395
|
}
|
|
396
|
-
|
|
396
|
+
|
|
397
397
|
if (!process.env.SOAJS_DEPLOY_HA) {
|
|
398
398
|
build.controllerHosts(registryDBInfo.ENV_hosts, registry.services.controller);
|
|
399
399
|
}
|
|
400
|
-
|
|
400
|
+
|
|
401
401
|
if (process.env.SOAJS_DEPLOY_HA || options.reload || options.setBy === "loadByEnv") {
|
|
402
402
|
return callback(null, registry);
|
|
403
403
|
}
|
|
404
|
-
|
|
404
|
+
|
|
405
405
|
// Only register gateway item if not reload and not HA and not loadByEnv
|
|
406
406
|
let newServiceObj = {
|
|
407
407
|
'type': 'service',
|
|
@@ -461,6 +461,7 @@ function getRegistry(param, options, cb) {
|
|
|
461
461
|
return cb(new Error("Unable to find any registry data!"));
|
|
462
462
|
}
|
|
463
463
|
registry.setBy = options.setBy;
|
|
464
|
+
|
|
464
465
|
buildRegistry(param, registry, RegistryFromDB, (error, registry) => {
|
|
465
466
|
if (error) {
|
|
466
467
|
return cb(error);
|
|
@@ -510,7 +511,7 @@ function getRegistry(param, options, cb) {
|
|
|
510
511
|
autoReloadTimeout[options.envCode].setBy = options.setBy;
|
|
511
512
|
autoReloadTimeout[options.envCode].timeout = setTimeout(autoReload, registry.serviceConfig.awareness.autoRelaodRegistry);
|
|
512
513
|
}
|
|
513
|
-
|
|
514
|
+
|
|
514
515
|
return cb(null, registry_struct[options.envCode]);
|
|
515
516
|
});
|
|
516
517
|
}
|
|
@@ -573,7 +574,7 @@ let registryModule = {
|
|
|
573
574
|
model.addUpdateServiceIP(registry.coreDB.provision, hostObj, (error, registered) => {
|
|
574
575
|
if (error) {
|
|
575
576
|
console.log("Unable to register new host for service:" + error.message);
|
|
576
|
-
return
|
|
577
|
+
return cb(false);
|
|
577
578
|
}
|
|
578
579
|
return cb(registered);
|
|
579
580
|
});
|
|
@@ -618,7 +619,7 @@ let registryModule = {
|
|
|
618
619
|
if ("service" === param.type) {
|
|
619
620
|
registry_struct[regEnvironment][what][param.name].extKeyRequired = param.extKeyRequired;
|
|
620
621
|
registry_struct[regEnvironment][what][param.name].version = param.version;
|
|
621
|
-
|
|
622
|
+
|
|
622
623
|
registry_struct[regEnvironment][what][param.name].versions[param.version].extKeyRequired = param.extKeyRequired;
|
|
623
624
|
registry_struct[regEnvironment][what][param.name].versions[param.version].oauth = param.oauth;
|
|
624
625
|
registry_struct[regEnvironment][what][param.name].versions[param.version].urac = param.urac;
|
|
@@ -630,21 +631,21 @@ let registryModule = {
|
|
|
630
631
|
registry_struct[regEnvironment][what][param.name].versions[param.version].provision_ACL = param.provision_ACL;
|
|
631
632
|
registry_struct[regEnvironment][what][param.name].versions[param.version].interConnect = param.interConnect;
|
|
632
633
|
}
|
|
633
|
-
|
|
634
|
+
|
|
634
635
|
if (!registry_struct[regEnvironment][what][param.name].hosts) {
|
|
635
636
|
registry_struct[regEnvironment][what][param.name].hosts = {};
|
|
636
637
|
registry_struct[regEnvironment][what][param.name].hosts.latest = param.version;
|
|
637
638
|
}
|
|
638
|
-
|
|
639
|
+
|
|
639
640
|
if (!registry_struct[regEnvironment][what][param.name].hosts[param.version]) {
|
|
640
641
|
registry_struct[regEnvironment][what][param.name].hosts[param.version] = [];
|
|
641
642
|
}
|
|
642
|
-
|
|
643
|
+
|
|
643
644
|
if (registry_struct[regEnvironment][what][param.name].hosts[param.version].indexOf(param.ip) === -1) {
|
|
644
645
|
registry_struct[regEnvironment][what][param.name].hosts[param.version].push(param.ip);
|
|
645
646
|
}
|
|
646
647
|
registry_struct[regEnvironment].timeLoaded = new Date().getTime();
|
|
647
|
-
|
|
648
|
+
|
|
648
649
|
//register in DB if MW
|
|
649
650
|
if (param.mw) {
|
|
650
651
|
if ("mdaemon" === param.type) {
|
|
@@ -671,7 +672,7 @@ let registryModule = {
|
|
|
671
672
|
if (param.portHost) {
|
|
672
673
|
registry_struct[regEnvironment][what][param.name].port = param.portHost;
|
|
673
674
|
}
|
|
674
|
-
|
|
675
|
+
|
|
675
676
|
try {
|
|
676
677
|
registryModule.registerHost({
|
|
677
678
|
"type": param.type,
|
|
@@ -683,7 +684,7 @@ let registryModule = {
|
|
|
683
684
|
});
|
|
684
685
|
}
|
|
685
686
|
catch (e) {
|
|
686
|
-
|
|
687
|
+
|
|
687
688
|
}
|
|
688
689
|
build.registerNewService(registry_struct[regEnvironment].coreDB.provision, newDaemonServiceObj, 'marketplace', (error) => {
|
|
689
690
|
if (error) {
|
|
@@ -725,7 +726,7 @@ let registryModule = {
|
|
|
725
726
|
verObj.apis = param.apiList;
|
|
726
727
|
}
|
|
727
728
|
newServiceObj.versions.push(verObj);
|
|
728
|
-
|
|
729
|
+
|
|
729
730
|
if (param.portHost) {
|
|
730
731
|
registry_struct[regEnvironment][what][param.name].port = param.portHost;
|
|
731
732
|
}
|
|
@@ -740,9 +741,9 @@ let registryModule = {
|
|
|
740
741
|
});
|
|
741
742
|
}
|
|
742
743
|
catch (e) {
|
|
743
|
-
|
|
744
|
+
|
|
744
745
|
}
|
|
745
|
-
|
|
746
|
+
|
|
746
747
|
build.registerNewService(registry_struct[regEnvironment].coreDB.provision, newServiceObj, 'marketplace', (error) => {
|
|
747
748
|
if (error) {
|
|
748
749
|
let err = new Error('Unable to register new service ' + param.name + ' : ' + error.message);
|
|
@@ -794,7 +795,7 @@ let registryModule = {
|
|
|
794
795
|
return getRegistry(param, options, (err, reg) => {
|
|
795
796
|
if (err) {
|
|
796
797
|
console.log('Unable to load Registry Db Info: ' + err.message);
|
|
797
|
-
process.exit
|
|
798
|
+
process.exit(-1);
|
|
798
799
|
} else {
|
|
799
800
|
return cb(reg);
|
|
800
801
|
}
|
|
@@ -813,7 +814,7 @@ let registryModule = {
|
|
|
813
814
|
if (registry_struct.hasOwnProperty(envCode)) {
|
|
814
815
|
if (envCode !== regEnvironment && registry_struct[envCode]) {
|
|
815
816
|
envArray.push({
|
|
816
|
-
"options": {"reload": true, "envCode": envCode, "setBy": "reload"},
|
|
817
|
+
"options": { "reload": true, "envCode": envCode, "setBy": "reload" },
|
|
817
818
|
"param": param
|
|
818
819
|
});
|
|
819
820
|
}
|
package/mw/mt/index.js
CHANGED
|
@@ -337,7 +337,8 @@ module.exports = (configuration) => {
|
|
|
337
337
|
return next();
|
|
338
338
|
});
|
|
339
339
|
} else {
|
|
340
|
-
|
|
340
|
+
let _h = JSON.stringify(injectObj);
|
|
341
|
+
req.headers.soajsinjectobj = Buffer.from(_h, 'ascii').toString('utf-8');
|
|
341
342
|
return next();
|
|
342
343
|
}
|
|
343
344
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "soajs.controller",
|
|
3
3
|
"description": "soajs multi tenant API gateway",
|
|
4
|
-
"version": "4.2.
|
|
4
|
+
"version": "4.2.15",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "soajs team",
|
|
7
7
|
"email": "team@soajs.org"
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"merge": "2.1.1",
|
|
28
28
|
"netmask": "2.0.2",
|
|
29
29
|
"oauth2-server": "2.4.1",
|
|
30
|
-
"path-to-regexp": "6.2.
|
|
30
|
+
"path-to-regexp": "6.2.2",
|
|
31
31
|
"request": "2.88.2",
|
|
32
32
|
"soajs.core.libs": "1.2.0",
|
|
33
|
-
"soajs.core.modules": "5.2.
|
|
34
|
-
"soajs.urac.driver": "3.2.
|
|
33
|
+
"soajs.core.modules": "5.2.11",
|
|
34
|
+
"soajs.urac.driver": "3.2.8",
|
|
35
35
|
"useragent": "2.3.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@babel/core": "
|
|
39
|
-
"@babel/plugin-transform-runtime": "7.
|
|
40
|
-
"@babel/preset-env": "7.
|
|
38
|
+
"@babel/core": "7.25.2",
|
|
39
|
+
"@babel/plugin-transform-runtime": "7.24.7",
|
|
40
|
+
"@babel/preset-env": "7.25.3",
|
|
41
41
|
"express": "4.18.2",
|
|
42
|
-
"grunt": "1.
|
|
42
|
+
"grunt": "1.6.1",
|
|
43
43
|
"grunt-babel": "8.0.0",
|
|
44
44
|
"grunt-contrib-clean": "2.0.1",
|
|
45
45
|
"grunt-contrib-copy": "1.0.0",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"grunt-coveralls": "2.0.0",
|
|
48
48
|
"grunt-env": "1.0.1",
|
|
49
49
|
"grunt-istanbul": "0.8.0",
|
|
50
|
-
"grunt-jsdoc": "2.4.
|
|
50
|
+
"grunt-jsdoc": "2.4.1",
|
|
51
51
|
"grunt-mocha-test": "0.13.3",
|
|
52
|
-
"mocha": "10.
|
|
53
|
-
"sinon": "
|
|
52
|
+
"mocha": "10.7.3",
|
|
53
|
+
"sinon": "18.0.0"
|
|
54
54
|
}
|
|
55
55
|
}
|
package/server/maintenance.js
CHANGED
|
@@ -223,7 +223,7 @@ let Maintenance = (core, log, param, serviceIp, regEnvironment, awareness_mw, so
|
|
|
223
223
|
}
|
|
224
224
|
if (!soajsLib.version.validate(infoObj.version)) {
|
|
225
225
|
log.warn("Failed to register service for [" + infoObj.name + "@" + infoObj.version + "] version should be of format [1.1]");
|
|
226
|
-
res.writeHead(200, {'Content-Type': 'application/json'});
|
|
226
|
+
// res.writeHead(200, {'Content-Type': 'application/json'});
|
|
227
227
|
return res.end(JSON.stringify(response));
|
|
228
228
|
}
|
|
229
229
|
|
|
@@ -38,16 +38,16 @@ describe("Integration for Usecase 1", function () {
|
|
|
38
38
|
server = _server;
|
|
39
39
|
serverMaintenance = _serverMaintenance;
|
|
40
40
|
c.start(registry, log, service, server, serverMaintenance, () => {
|
|
41
|
-
uracserver.startServer({s: {port: 4001}, m: {port:
|
|
41
|
+
uracserver.startServer({s: {port: 4001}, m: {port: 5002}, name: "URAC"}, function (servers) {
|
|
42
42
|
uracServers = servers;
|
|
43
43
|
});
|
|
44
|
-
oauthserver.startServer({s: {port: 4004}, m: {port:
|
|
44
|
+
oauthserver.startServer({s: {port: 4004}, m: {port: 5005}, name: "OAUTH"}, function (servers) {
|
|
45
45
|
oauthServers = servers;
|
|
46
46
|
});
|
|
47
|
-
ptserver.startServer({s: {port: 4002}, m: {port:
|
|
47
|
+
ptserver.startServer({s: {port: 4002}, m: {port: 5003}, name: "PT"}, function (servers) {
|
|
48
48
|
ptServers = servers;
|
|
49
49
|
});
|
|
50
|
-
ptserver.startServer({s: {port: 4003}, m: {port:
|
|
50
|
+
ptserver.startServer({s: {port: 4003}, m: {port: 5004}, name: "PT2"}, function (servers) {
|
|
51
51
|
pt2Servers = servers;
|
|
52
52
|
});
|
|
53
53
|
setTimeout(function () {
|
|
@@ -20,7 +20,7 @@ describe("Unit test for: server - controller maintenance", function () {
|
|
|
20
20
|
let service = null;
|
|
21
21
|
let server = null;
|
|
22
22
|
let serverMaintenance = null;
|
|
23
|
-
let port =
|
|
23
|
+
let port = 5001;
|
|
24
24
|
|
|
25
25
|
before((done) => {
|
|
26
26
|
c.init((_registry, _log, _service, _server, _serverMaintenance) => {
|