kuzzle-device-manager 2.9.1-dev.1 → 2.10.0-beta.1

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.
@@ -15,4 +15,7 @@ export declare class DecodersController {
15
15
  * Clean payload collection for a time period
16
16
  */
17
17
  prunePayloads(request: KuzzleRequest): Promise<ApiDecoderPrunePayloadsResult>;
18
+ route(request: KuzzleRequest): Promise<{
19
+ valid: boolean;
20
+ }>;
18
21
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DecodersController = void 0;
4
+ const kuzzle_1 = require("kuzzle");
4
5
  class DecodersController {
5
6
  constructor(payloadService, decodersRegister) {
6
7
  this.payloadService = payloadService;
@@ -17,6 +18,15 @@ class DecodersController {
17
18
  { path: "device-manager/decoders/_prunePayloads", verb: "delete" },
18
19
  ],
19
20
  },
21
+ route: {
22
+ handler: this.route.bind(this),
23
+ http: [
24
+ {
25
+ path: "device-manager/decoders/route",
26
+ verb: "post",
27
+ },
28
+ ],
29
+ },
20
30
  },
21
31
  };
22
32
  }
@@ -39,6 +49,24 @@ class DecodersController {
39
49
  });
40
50
  return { deleted };
41
51
  }
52
+ async route(request) {
53
+ const payload = request.getBody();
54
+ const model = payload.deviceModel ?? request.getString("deviceModel", "unknownModel");
55
+ const apiAction = `${request.input.controller}:${request.input.action}`;
56
+ if (model === "unknownModel") {
57
+ app.log.warn("Received payload without a device model: routing to receiveUnknown");
58
+ this.payloadService.receiveUnknown(model, payload, apiAction);
59
+ throw new kuzzle_1.BadRequestError("Payload must specify the deviceModel for proper routing");
60
+ }
61
+ const decoder = this.decodersRegister.decoders.find((d) => d.deviceModel === model);
62
+ if (!decoder) {
63
+ app.log.warn(`Received payload from ${model} model, no associated decoder found: routing to receiveUnknown`);
64
+ this.payloadService.receiveUnknown(model, payload, apiAction);
65
+ throw new kuzzle_1.BadRequestError("The specified device model is unknown");
66
+ }
67
+ app.log.debug("Routing payload to decoder for " + decoder.deviceModel);
68
+ return this.payloadService.receive(request, decoder);
69
+ }
42
70
  }
43
71
  exports.DecodersController = DecodersController;
44
72
  //# sourceMappingURL=DecodersController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecodersController.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodersController.ts"],"names":[],"mappings":";;;AASA,MAAa,kBAAkB;IAM7B,YACE,cAA8B,EAC9B,gBAAkC;QAElC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC7B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBACzD;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtC,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACnE;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAE9C,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,OAAsB;QAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE;YAC/D,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF;AAtDD,gDAsDC"}
1
+ {"version":3,"file":"DecodersController.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodersController.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,11 @@ class DecodersRegister {
92
92
  registerDefaultRole() {
93
93
  const role = {
94
94
  controllers: {
95
+ "device-manager/decoders": {
96
+ actions: {
97
+ route: true,
98
+ },
99
+ },
95
100
  "device-manager/payloads": {
96
101
  actions: {
97
102
  "*": true,
@@ -1 +1 @@
1
- {"version":3,"file":"DecodersRegister.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodersRegister.ts"],"names":[],"mappings":";;;AAAA,mCAKgB;AAOhB,MAAa,gBAAgB;IAA7B;QAIE;;WAEG;QACK,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAyHjD,CAAC;IAvHC,IAAY,GAAG;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,MAA2B,EAAE,OAAsB;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,WAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAe,CAAC,4BAA4B,WAAW,GAAG,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAErE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAgB;QACvB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,kBAAS,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,kCAAyB,CACjC,YAAY,OAAO,CAAC,WAAW,oEAAoE,CACpG,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,kCAAyB,CACjC,6BAA6B,OAAO,CAAC,WAAW,sBAAsB,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,yBAAyB;SACtC,CAAC;IACJ,CAAC;IAED,aAAa;QACX,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,WAAW,cAAc,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE;gBACP,UAAU,EAAE,CAAC,iBAAiB,CAAC;aAChC;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC;IAC1D,CAAC;IAEO,sBAAsB;QAC5B,MAAM,cAAc,GAAG;YACrB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;SAC1C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,cAAc,CAAC;IAChE,CAAC;IAEO,mBAAmB;QACzB,MAAM,IAAI,GAAG;YACX,WAAW,EAAE;gBACX,yBAAyB,EAAE;oBACzB,OAAO,EAAE;wBACP,GAAG,EAAE,IAAI;qBACV;iBACF;aACF;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IACnD,CAAC;CACF;AAhID,4CAgIC"}
1
+ {"version":3,"file":"DecodersRegister.js","sourceRoot":"","sources":["../../../../lib/modules/decoder/DecodersRegister.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,11 @@ exports.RolePayloadsAll = {
20
20
  "*": true,
21
21
  },
22
22
  },
23
+ "device-manager/decoders": {
24
+ actions: {
25
+ route: true,
26
+ },
27
+ },
23
28
  },
24
29
  },
25
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RolePayloadsAll.js","sourceRoot":"","sources":["../../../../../lib/modules/decoder/roles/RolePayloadsAll.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACU,QAAA,eAAe,GAAe;IACzC,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE;QACV,WAAW,EAAE;YACX,yBAAyB,EAAE;gBACzB,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI;iBACV;aACF;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"RolePayloadsAll.js","sourceRoot":"","sources":["../../../../../lib/modules/decoder/roles/RolePayloadsAll.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACU,QAAA,eAAe,GAAe;IACzC,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE;QACV,WAAW,EAAE;YACX,yBAAyB,EAAE;gBACzB,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI;iBACV;aACF;YACD,yBAAyB,EAAE;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;iBACZ;aACF;SACF;KACF;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kuzzle-device-manager",
3
- "version": "2.9.1-dev.1",
3
+ "version": "2.10.0-beta.1",
4
4
  "description": "Manage your IoT devices and assets. Choose a provisioning strategy, receive and decode payload, handle your IoT business logic.",
5
5
  "author": "The Kuzzle Team (support@kuzzle.io)",
6
6
  "repository": {