soajs.controller 4.2.14 → 4.2.16

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 CHANGED
@@ -1,7 +1,6 @@
1
- language: node_js
2
- node_js: 18
3
- cache: false
4
1
  dist: focal
2
+ language: node_js
3
+ node_js: 20
5
4
 
6
5
  jobs:
7
6
  include:
@@ -21,18 +20,18 @@ jobs:
21
20
  - if [ "$TRAVIS_BRANCH" != "master" ]; then grunt test; fi
22
21
  - if [ "$TRAVIS_BRANCH" = "master" ]; then grunt coverage; fi
23
22
 
24
- - stage: Publish to npm
25
- if: branch =~ /(release)/
26
- script:
27
- - echo "PUBLISH npm"
28
- deploy:
29
- skip_cleanup: true
30
- provider: npm
31
- email: $NPM_EMAIL
32
- api_key: $NPM_TOKEN
33
- on:
34
- all_branches: true
35
- condition: $TRAVIS_BRANCH =~ ^(release)*
23
+ # - stage: Publish to npm
24
+ # if: branch =~ /(release)/
25
+ # script:
26
+ # - echo "PUBLISH npm"
27
+ # deploy:
28
+ # skip_cleanup: true
29
+ # provider: npm
30
+ # email: $NPM_EMAIL
31
+ # api_key: $NPM_TOKEN
32
+ # on:
33
+ # all_branches: true
34
+ # condition: $TRAVIS_BRANCH =~ ^(release)*
36
35
 
37
36
  - stage: Publish to docker registry
38
37
  if: branch =~ /(release)/
@@ -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 cb(false);
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 (-1);
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
  }
@@ -22,6 +22,9 @@ let model = {
22
22
  model.log = log;
23
23
  if (!model.mongo) {
24
24
  model.mongo = new Mongo(dbConfiguration);
25
+ model.mongo.createIndex(throttling_monitor, { 'l1': 1, 'l2': 1 }, {}, (err, index) => {
26
+ log.debug("Index: " + index + " created with error: " + err);
27
+ });
25
28
  }
26
29
  },
27
30
 
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.14",
4
+ "version": "4.2.16",
5
5
  "author": {
6
6
  "name": "soajs team",
7
7
  "email": "team@soajs.org"
@@ -18,7 +18,7 @@
18
18
  "test": "grunt test"
19
19
  },
20
20
  "dependencies": {
21
- "async": "3.2.5",
21
+ "async": "3.2.6",
22
22
  "connect": "3.7.0",
23
23
  "http-proxy": "1.18.1",
24
24
  "jsonwebtoken": "9.0.2",
@@ -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.1",
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.10",
34
- "soajs.urac.driver": "3.2.7",
33
+ "soajs.core.modules": "5.2.12",
34
+ "soajs.urac.driver": "3.2.9",
35
35
  "useragent": "2.3.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@babel/core": "^7.22.5",
39
- "@babel/plugin-transform-runtime": "7.19.6",
40
- "@babel/preset-env": "7.20.2",
41
- "express": "4.18.2",
42
- "grunt": "1.5.3",
38
+ "@babel/core": "7.26.0",
39
+ "@babel/plugin-transform-runtime": "7.25.9",
40
+ "@babel/preset-env": "7.26.0",
41
+ "express": "4.21.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.0",
50
+ "grunt-jsdoc": "2.4.1",
51
51
  "grunt-mocha-test": "0.13.3",
52
- "mocha": "10.2.0",
53
- "sinon": "7.5.0"
52
+ "mocha": "10.7.3",
53
+ "sinon": "19.0.2"
54
54
  }
55
55
  }
@@ -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
 
@@ -117,7 +117,7 @@ let env = {
117
117
  },
118
118
  "ports": {
119
119
  "controller": 4000,
120
- "maintenanceInc": 1000,
120
+ "maintenanceInc": 1001,
121
121
  "randomInc": 100
122
122
  },
123
123
  "cookie": {
@@ -117,7 +117,7 @@ let env = {
117
117
  },
118
118
  "ports": {
119
119
  "controller": 4000,
120
- "maintenanceInc": 1000,
120
+ "maintenanceInc": 1001,
121
121
  "randomInc": 100
122
122
  },
123
123
  "cookie": {
@@ -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: 5001}, name: "URAC"}, function (servers) {
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: 5004}, name: "OAUTH"}, function (servers) {
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: 5002}, name: "PT"}, function (servers) {
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: 5003}, name: "PT2"}, function (servers) {
50
+ ptserver.startServer({s: {port: 4003}, m: {port: 5004}, name: "PT2"}, function (servers) {
51
51
  pt2Servers = servers;
52
52
  });
53
53
  setTimeout(function () {
@@ -16,7 +16,7 @@ function startServer(serverConfig, callback) {
16
16
  }
17
17
  if (!serverConfig.m) {
18
18
  serverConfig.m = {};
19
- serverConfig.m.port = 5010;
19
+ serverConfig.m.port = 5011;
20
20
  }
21
21
 
22
22
  let mReply = {
@@ -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 = 5000;
23
+ let port = 5001;
24
24
 
25
25
  before((done) => {
26
26
  c.init((_registry, _log, _service, _server, _serverMaintenance) => {