@axinom/mosaic-message-bus 0.31.0-rc.1 → 0.31.0-rc.11

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.
Files changed (67) hide show
  1. package/dist/broker.d.ts +35 -5
  2. package/dist/broker.d.ts.map +1 -1
  3. package/dist/broker.js +31 -4
  4. package/dist/broker.js.map +1 -1
  5. package/dist/common/constants.d.ts +1 -0
  6. package/dist/common/constants.d.ts.map +1 -1
  7. package/dist/common/constants.js +2 -1
  8. package/dist/common/constants.js.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/middleware/envelope-logging-middleware.d.ts +3 -2
  14. package/dist/middleware/envelope-logging-middleware.d.ts.map +1 -1
  15. package/dist/middleware/envelope-logging-middleware.js.map +1 -1
  16. package/dist/middleware/index.d.ts +0 -1
  17. package/dist/middleware/index.d.ts.map +1 -1
  18. package/dist/middleware/index.js +0 -1
  19. package/dist/middleware/index.js.map +1 -1
  20. package/dist/publication.d.ts +6 -4
  21. package/dist/publication.d.ts.map +1 -1
  22. package/dist/publication.js +21 -3
  23. package/dist/publication.js.map +1 -1
  24. package/dist/rascal-config-builder.d.ts.map +1 -1
  25. package/dist/rascal-config-builder.js.map +1 -1
  26. package/dist/{middleware/messaging-middleware.d.ts → setup-messaging-broker.d.ts} +7 -7
  27. package/dist/setup-messaging-broker.d.ts.map +1 -0
  28. package/dist/{middleware/messaging-middleware.js → setup-messaging-broker.js} +26 -8
  29. package/dist/setup-messaging-broker.js.map +1 -0
  30. package/dist/subscription.d.ts +3 -2
  31. package/dist/subscription.d.ts.map +1 -1
  32. package/dist/subscription.js +2 -2
  33. package/dist/subscription.js.map +1 -1
  34. package/dist/types/external-interfaces.d.ts +5 -62
  35. package/dist/types/external-interfaces.d.ts.map +1 -1
  36. package/dist/types/external-interfaces.js +0 -1
  37. package/dist/types/external-interfaces.js.map +1 -1
  38. package/dist/types/index.d.ts +1 -0
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/index.js +1 -0
  41. package/dist/types/index.js.map +1 -1
  42. package/dist/types/message-info.d.ts +2 -0
  43. package/dist/types/message-info.d.ts.map +1 -1
  44. package/dist/types/signing-details.d.ts +3 -0
  45. package/dist/types/signing-details.d.ts.map +1 -0
  46. package/dist/types/signing-details.js +3 -0
  47. package/dist/types/signing-details.js.map +1 -0
  48. package/package.json +4 -3
  49. package/src/broker.ts +61 -7
  50. package/src/common/constants.ts +1 -0
  51. package/src/index.ts +1 -0
  52. package/src/middleware/envelope-logging-middleware.ts +3 -7
  53. package/src/middleware/index.ts +0 -1
  54. package/src/publication.spec.ts +8 -9
  55. package/src/publication.ts +47 -11
  56. package/src/rascal-config-builder.spec.ts +6 -0
  57. package/src/rascal-config-builder.ts +2 -3
  58. package/src/{middleware/messaging-middleware.spec.ts → setup-messaging-broker.spec.ts} +1 -1
  59. package/src/{middleware/messaging-middleware.ts → setup-messaging-broker.ts} +41 -11
  60. package/src/subscription.spec.ts +4 -3
  61. package/src/subscription.ts +5 -9
  62. package/src/types/external-interfaces.ts +38 -79
  63. package/src/types/index.ts +1 -0
  64. package/src/types/message-info.ts +1 -0
  65. package/src/types/signing-details.ts +8 -0
  66. package/dist/middleware/messaging-middleware.d.ts.map +0 -1
  67. package/dist/middleware/messaging-middleware.js.map +0 -1
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ramda_1 = require("ramda");
4
4
  const common_1 = require("./common");
5
- const middleware_1 = require("./middleware");
6
5
  /**
7
6
  * Handles subscriptions to RabbitMQ queues and processing of messages using provided message handler and middleware functions.
8
7
  */
@@ -34,6 +33,7 @@ class Subscription {
34
33
  var _a, _b, _c;
35
34
  const aon = (0, ramda_1.once)(ackOrNack);
36
35
  const messageInfo = {
36
+ unparsedEnvelope: message.content,
37
37
  envelope,
38
38
  fields: message.fields,
39
39
  properties: message.properties,
@@ -46,7 +46,7 @@ class Subscription {
46
46
  const error = (_c = (_b = (_a = this.handler).mapError) === null || _b === void 0 ? void 0 : _b.call(_a, err)) !== null && _c !== void 0 ? _c : (err instanceof Error
47
47
  ? err
48
48
  : new Error(`A caught error is not an instance of an Error class: ${JSON.stringify(err)}`));
49
- if (message.properties.headers[middleware_1.MosaicFinalRedeliveryError]) {
49
+ if (message.properties.headers[common_1.MosaicFinalRedeliveryError]) {
50
50
  await this.messageFailure(envelope, messageInfo, error);
51
51
  }
52
52
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { PublicationConfig as RascalPublicationConfig } from 'rascal';
1
+ import { BasicConfig, BasicRMQConfig } from '@axinom/mosaic-service-common';
2
+ import { PublicationConfig } from 'rascal';
2
3
  /**
3
4
  * An interface that represents a registry object which is used to register a messaging broker on app startup. Example using an express app:
4
5
  * ```ts
@@ -19,20 +20,7 @@ export interface MessagingRegistry {
19
20
  * const config = getFullConfig();
20
21
  * ```
21
22
  */
22
- export interface MessagingConfig {
23
- isDev: boolean;
24
- serviceId: string;
25
- rmqProtocol: string;
26
- rmqVHost: string;
27
- rmqHost: string;
28
- rmqPort: number;
29
- rmqUser: string;
30
- rmqPassword: string;
31
- rmqVHostAssert: boolean;
32
- rmqMgmtProtocol?: string;
33
- rmqMgmtHost?: string;
34
- rmqMgmtPort?: number;
35
- rmqChannelMax?: number;
23
+ export type MessagingConfig = Pick<BasicConfig, 'isDev' | 'serviceId'> & Pick<BasicRMQConfig, 'rmqProtocol' | 'rmqVHost' | 'rmqHost' | 'rmqPort' | 'rmqUser' | 'rmqPassword' | 'rmqVHostAssert'> & Partial<Pick<BasicRMQConfig, 'rmqMgmtProtocol' | 'rmqMgmtHost' | 'rmqMgmtPort' | 'rmqChannelMax' | 'rmqEventSigningPrivateKey' | 'rmqEventSigningKeyVersion'>> & {
36
24
  /**
37
25
  * Specifies client-properties to be passed along through the AMQP Connection.
38
26
  * The `connection_name` is a well-known property which will be useful for debugging purposes, and will be displayed
@@ -44,51 +32,6 @@ export interface MessagingConfig {
44
32
  /** Any custom key-value pair which will be displayed in the Connection Details of the Broker's management UI */
45
33
  [key: string]: string | undefined;
46
34
  };
47
- }
48
- /**
49
- * An interface that represents a message object to be logged by MessagingLogger. An example of Mosaic implementation:
50
- * ```ts
51
- * import { Logger } from '@axinom/mosaic-service-common';
52
- * //...
53
- * const logger = new Logger();
54
- * logger.error({ message: "A messaging error has occurred.", context: 'messaging' })
55
- * ```
56
- */
57
- export interface LogMessage {
58
- message?: string;
59
- logtime?: string | Date;
60
- context?: string;
61
- details?: {
62
- [key: string]: unknown;
63
- };
64
- }
65
- /**
66
- * An interface that represents a logger implementation to be used by a messaging broker and shutdown actions. An example of Mosaic implementation:
67
- * ```ts
68
- * import { Logger } from '@axinom/mosaic-service-common';
69
- * //...
70
- * const logger = new Logger({ context: 'messaging' });
71
- * ```
72
- */
73
- export interface MessagingLogger {
74
- error(message: string | LogMessage): void;
75
- error(error: Error): void;
76
- error(error: Error, message: string | LogMessage): void;
77
- debug(message: string | LogMessage): void;
78
- debug(error: Error): void;
79
- debug(error: Error, message: string | LogMessage): void;
80
- }
81
- /**
82
- * An interface that represents a middleware object to be used to register messaging actions that are executed on app shutdown, e.g. broker shutdown.
83
- * An example of Mosaic implementation:
84
- * ```ts
85
- * import { setupShutdownActions, Logger } from '@axinom/mosaic-service-common';
86
- * //...
87
- * const shutdownActions = setupShutdownActions(app, logger);
88
- * ```
89
- */
90
- export interface MessagingShutdownActions {
91
- push(action: () => void | Promise<void>): void;
92
- }
93
- export type PublicationConfig = RascalPublicationConfig;
35
+ };
36
+ export type MessagePublicationConfig = PublicationConfig;
94
37
  //# sourceMappingURL=external-interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-interfaces.d.ts","sourceRoot":"","sources":["../../src/types/external-interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE;QACjB,6HAA6H;QAC7H,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAErC,gHAAgH;QAChH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAExD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"external-interfaces.d.ts","sourceRoot":"","sources":["../../src/types/external-interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC,GACpE,IAAI,CACF,cAAc,EACZ,aAAa,GACb,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,aAAa,GACb,gBAAgB,CACnB,GACD,OAAO,CACL,IAAI,CACF,cAAc,EAEZ,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,eAAe,GAEf,2BAA2B,GAC3B,2BAA2B,CAC9B,CACF,GAAG;IACF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE;QACjB,6HAA6H;QAC7H,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAErC,gHAAgH;QAChH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC"}
@@ -1,4 +1,3 @@
1
1
  "use strict";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  //# sourceMappingURL=external-interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-interfaces.js","sourceRoot":"","sources":["../../src/types/external-interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
1
+ {"version":3,"file":"external-interfaces.js","sourceRoot":"","sources":["../../src/types/external-interfaces.ts"],"names":[],"mappings":""}
@@ -3,4 +3,5 @@ export * from './message-envelope';
3
3
  export * from './message-envelope-overrides';
4
4
  export * from './message-info';
5
5
  export * from './on-message-middleware';
6
+ export * from './signing-details';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
@@ -19,4 +19,5 @@ __exportStar(require("./message-envelope"), exports);
19
19
  __exportStar(require("./message-envelope-overrides"), exports);
20
20
  __exportStar(require("./message-info"), exports);
21
21
  __exportStar(require("./on-message-middleware"), exports);
22
+ __exportStar(require("./signing-details"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,qDAAmC;AACnC,+DAA6C;AAC7C,iDAA+B;AAC/B,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,qDAAmC;AACnC,+DAA6C;AAC7C,iDAA+B;AAC/B,0DAAwC;AACxC,oDAAkC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { MessageFields, MessageProperties } from 'amqplib';
2
3
  import { MessageEnvelope } from './message-envelope';
3
4
  /**
@@ -5,6 +6,7 @@ import { MessageEnvelope } from './message-envelope';
5
6
  * Supplied to message handler methods as a parameter.
6
7
  */
7
8
  export interface MessageInfo<TContent = unknown> {
9
+ unparsedEnvelope: Buffer;
8
10
  envelope: MessageEnvelope<TContent>;
9
11
  fields: MessageFields;
10
12
  properties: MessageProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"message-info.d.ts","sourceRoot":"","sources":["../../src/types/message-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC7C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CAC/B"}
1
+ {"version":3,"file":"message-info.d.ts","sourceRoot":"","sources":["../../src/types/message-info.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ import { BasicRMQConfig } from '@axinom/mosaic-service-common';
2
+ export type SigningDetails = Required<Pick<BasicRMQConfig, 'rmqEventSigningPrivateKey' | 'rmqEventSigningKeyVersion'>>;
3
+ //# sourceMappingURL=signing-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-details.d.ts","sourceRoot":"","sources":["../../src/types/signing-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,IAAI,CACF,cAAc,EACd,2BAA2B,GAAG,2BAA2B,CAC1D,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=signing-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-details.js","sourceRoot":"","sources":["../../src/types/signing-details.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-message-bus",
3
- "version": "0.31.0-rc.1",
3
+ "version": "0.31.0-rc.11",
4
4
  "description": "Messaging library for Axinom Mosaic services",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -29,7 +29,8 @@
29
29
  "lint": "eslint . --ext .ts,.tsx,.js --color --cache"
30
30
  },
31
31
  "dependencies": {
32
- "@axinom/mosaic-message-bus-abstractions": "^0.18.0-rc.1",
32
+ "@axinom/mosaic-message-bus-abstractions": "^0.18.0-rc.11",
33
+ "@axinom/mosaic-service-common": "^0.53.0-rc.11",
33
34
  "amqplib": "^0.10.3",
34
35
  "dotenv": "^8.2.0",
35
36
  "prom-client": "^15.1.0",
@@ -52,5 +53,5 @@
52
53
  "publishConfig": {
53
54
  "access": "public"
54
55
  },
55
- "gitHead": "5110af3a26f1b510fc54435238d12baaf630c086"
56
+ "gitHead": "e3645d77a2b5805138621b56f4746bae31849395"
56
57
  }
package/src/broker.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function */
2
+ import { Logger } from '@axinom/mosaic-service-common';
2
3
  import { Connection } from 'amqplib';
3
4
  import {
4
5
  BrokerAsPromised,
5
6
  BrokerConfig,
6
- PublicationConfig,
7
7
  PublicationSession,
8
8
  SubscriberSessionAsPromised,
9
9
  SubscriptionConfig,
@@ -15,8 +15,9 @@ import Publication from './publication';
15
15
  import Subscription from './subscription';
16
16
  import {
17
17
  MessageEnvelopeOverrides,
18
- MessagingLogger,
18
+ MessagePublicationConfig,
19
19
  OnMessageMiddleware,
20
+ SigningDetails,
20
21
  } from './types';
21
22
 
22
23
  interface ConnectionDetails {
@@ -49,7 +50,8 @@ export class BrokerProxy {
49
50
 
50
51
  private constructor(
51
52
  private broker: BrokerAsPromised,
52
- private logger: MessagingLogger,
53
+ private logger: Logger,
54
+ private eventSigning?: SigningDetails,
53
55
  ) {
54
56
  this.attachBrokerHandlers();
55
57
  }
@@ -149,13 +151,14 @@ export class BrokerProxy {
149
151
  */
150
152
  public static async create(
151
153
  config: BrokerConfig,
152
- logger: MessagingLogger,
154
+ logger: Logger,
153
155
  components: Record<string, unknown> = {},
156
+ signing?: SigningDetails,
154
157
  ): Promise<BrokerProxy> {
155
158
  if (!this.instance) {
156
159
  const cfg = withDefaultConfig(config);
157
160
  const broker = await BrokerAsPromised.create(cfg, components);
158
- this.instance = new BrokerProxy(broker, logger);
161
+ this.instance = new BrokerProxy(broker, logger, signing);
159
162
  }
160
163
  return this.instance;
161
164
  }
@@ -174,7 +177,9 @@ export class BrokerProxy {
174
177
  }
175
178
 
176
179
  /**
177
- * Publish a message with defined routing key.
180
+ * @deprecated please use `publishCommand` or `publishEvent` instead.
181
+ *
182
+ * Publish a message with a defined routing key.
178
183
  *
179
184
  * @param aggregateId The (database) ID of the aggregate type or use the const UNKNOWN_AGGREGATE_ID or MULTIPLE_AGGREGATE_IDS values.
180
185
  * @param type - The aggregate type and message type e.g. `channel` and `ChannelPublishedEvent`
@@ -187,7 +192,7 @@ export class BrokerProxy {
187
192
  type: { messageType: string; aggregateType: string },
188
193
  payload: T,
189
194
  envelopeOverrides?: MessageEnvelopeOverrides,
190
- options?: PublicationConfig,
195
+ options?: MessagePublicationConfig,
191
196
  ): Promise<PublicationSession> {
192
197
  return this.getPublication(type).publish(
193
198
  aggregateId,
@@ -197,6 +202,55 @@ export class BrokerProxy {
197
202
  );
198
203
  }
199
204
 
205
+ /**
206
+ * Publish a command message with a defined routing key.
207
+ *
208
+ * @param aggregateId The (database) ID of the aggregate type or use the const UNKNOWN_AGGREGATE_ID or MULTIPLE_AGGREGATE_IDS values.
209
+ * @param type - The aggregate type and message type e.g. `image` and `EnsureImageExists`
210
+ * @param payload - message payload
211
+ * @param envelopeOverrides - explicitly defined message envelope values, e.g. auth token or message context
212
+ * @param commandConfig - explicitly defined command configuration, e.g. if additional header values should be passed
213
+ */
214
+ public async publishCommand<T>(
215
+ aggregateId: string,
216
+ type: { messageType: string; aggregateType: string },
217
+ payload: T,
218
+ envelopeOverrides?: MessageEnvelopeOverrides,
219
+ commandConfig?: MessagePublicationConfig,
220
+ ): Promise<PublicationSession> {
221
+ return this.getPublication(type).publish(
222
+ aggregateId,
223
+ payload,
224
+ envelopeOverrides,
225
+ commandConfig,
226
+ );
227
+ }
228
+
229
+ /**
230
+ * Publish an event message with a defined routing key.
231
+ *
232
+ * @param aggregateId The (database) ID of the aggregate type or use the const UNKNOWN_AGGREGATE_ID or MULTIPLE_AGGREGATE_IDS values.
233
+ * @param type - The aggregate type and message type e.g. `channel` and `ChannelPublishedEvent`
234
+ * @param payload - message payload
235
+ * @param envelopeOverrides - explicitly defined message envelope values, e.g. auth token or message context
236
+ * @param eventConfig - explicitly defined event configuration, e.g. if additional header values should be passed
237
+ */
238
+ public async publishEvent<T>(
239
+ aggregateId: string,
240
+ type: { messageType: string; aggregateType: string },
241
+ payload: T,
242
+ envelopeOverrides?: MessageEnvelopeOverrides,
243
+ eventConfig?: MessagePublicationConfig,
244
+ ): Promise<PublicationSession> {
245
+ return this.getPublication(type).publish(
246
+ aggregateId,
247
+ payload,
248
+ envelopeOverrides,
249
+ eventConfig,
250
+ this.eventSigning,
251
+ );
252
+ }
253
+
200
254
  /**
201
255
  * Allows to programmatically establish a connection to a vhost.
202
256
  *
@@ -1,2 +1,3 @@
1
1
  export const UNKNOWN_AGGREGATE_ID = 'UNDEFINED_ID';
2
2
  export const MULTIPLE_AGGREGATE_IDS = 'MULTIPLE_IDS';
3
+ export const MosaicFinalRedeliveryError = 'mosaic_final_error';
package/src/index.ts CHANGED
@@ -5,5 +5,6 @@ export * from './middleware';
5
5
  export * from './monitoring';
6
6
  export * from './publication';
7
7
  export * from './rascal-config-builder';
8
+ export * from './setup-messaging-broker';
8
9
  export * from './subscription';
9
10
  export * from './types';
@@ -1,18 +1,14 @@
1
+ import { Logger } from '@axinom/mosaic-service-common';
1
2
  import { AckOrNack } from 'rascal';
2
3
  import { getLogEnvelope } from '../common';
3
- import {
4
- MessageEnvelope,
5
- MessageInfo,
6
- MessagingLogger,
7
- OnMessageMiddleware,
8
- } from '../types';
4
+ import { MessageEnvelope, MessageInfo, OnMessageMiddleware } from '../types';
9
5
 
10
6
  /**
11
7
  * Logs incoming messages with routing key and message envelope details
12
8
  * @param logger Logger implementation with a debug function accepting a log message object
13
9
  */
14
10
  export const envelopeLoggingMiddleware = (
15
- logger: MessagingLogger,
11
+ logger: Logger,
16
12
  ): OnMessageMiddleware => {
17
13
  return async (
18
14
  envelope: MessageEnvelope,
@@ -1,4 +1,3 @@
1
1
  export * from './envelope-logging-middleware';
2
- export * from './messaging-middleware';
3
2
  export * from './random-delay-middleware';
4
3
  export * from './random-error-middleware';
@@ -1,17 +1,14 @@
1
1
  /* eslint-disable no-console */
2
+ import { Logger } from '@axinom/mosaic-service-common';
2
3
  import { stub } from 'jest-auto-stub';
3
4
  import 'jest-extended';
4
- import {
5
- BrokerAsPromised,
6
- PublicationConfig,
7
- PublicationSession,
8
- } from 'rascal';
5
+ import { BrokerAsPromised, PublicationSession } from 'rascal';
9
6
  import Publication from './publication';
10
- import { MessageEnvelope, MessagingLogger } from './types';
7
+ import { MessageEnvelope, MessagePublicationConfig } from './types';
11
8
 
12
9
  describe('Publication', () => {
13
10
  let resultEnvelope: MessageEnvelope | undefined;
14
- let resultOptions: PublicationConfig | undefined;
11
+ let resultOptions: MessagePublicationConfig | undefined;
15
12
  let broker: BrokerAsPromised;
16
13
  let publication: Publication;
17
14
 
@@ -20,14 +17,14 @@ describe('Publication', () => {
20
17
  publish: (
21
18
  _key: string,
22
19
  envelope: MessageEnvelope,
23
- options: PublicationConfig,
20
+ options: MessagePublicationConfig,
24
21
  ) => {
25
22
  resultEnvelope = envelope;
26
23
  resultOptions = options;
27
24
  return stub<PublicationSession>();
28
25
  },
29
26
  });
30
- const logger = stub<MessagingLogger>();
27
+ const logger = stub<Logger>();
31
28
  publication = new Publication(
32
29
  { messageType: 'TestRoutingKey', aggregateType: 'test' },
33
30
  broker,
@@ -63,6 +60,7 @@ describe('Publication', () => {
63
60
  expect(resultOptions?.options?.messageId).toBeTruthy();
64
61
  expect(resultOptions).toEqual({
65
62
  options: {
63
+ contentType: 'application/json',
66
64
  messageId: resultOptions?.options?.messageId,
67
65
  },
68
66
  });
@@ -101,6 +99,7 @@ describe('Publication', () => {
101
99
  expect(resultOptions?.options?.messageId).toBeTruthy();
102
100
  expect(resultOptions).toEqual({
103
101
  options: {
102
+ contentType: 'application/json',
104
103
  messageId: resultOptions?.options?.messageId,
105
104
  },
106
105
  });
@@ -1,16 +1,17 @@
1
- import { mergeDeepRight } from 'ramda';
2
1
  import {
3
- BrokerAsPromised,
4
- PublicationConfig,
5
- PublicationSession,
6
- } from 'rascal';
2
+ LogMessage,
3
+ Logger,
4
+ generateSignature,
5
+ } from '@axinom/mosaic-service-common';
6
+ import { mergeDeepRight } from 'ramda';
7
+ import { BrokerAsPromised, PublicationSession } from 'rascal';
7
8
  import { v4 as uuid } from 'uuid';
8
9
  import { AggregateMessageType } from './common';
9
10
  import {
10
- LogMessage,
11
11
  MessageEnvelope,
12
12
  MessageEnvelopeOverrides,
13
- MessagingLogger,
13
+ MessagePublicationConfig,
14
+ SigningDetails,
14
15
  } from './types';
15
16
 
16
17
  /**
@@ -22,7 +23,7 @@ export default class Publication {
22
23
  constructor(
23
24
  { aggregateType, messageType }: AggregateMessageType,
24
25
  private readonly broker: BrokerAsPromised,
25
- private readonly logger: MessagingLogger,
26
+ private readonly logger: Logger,
26
27
  ) {
27
28
  this.aggregateType = aggregateType;
28
29
  this.messageType = messageType;
@@ -39,7 +40,8 @@ export default class Publication {
39
40
  aggregateId: string,
40
41
  payload: unknown,
41
42
  envelopeOverrides: MessageEnvelopeOverrides = {},
42
- options: PublicationConfig = {},
43
+ options: MessagePublicationConfig = {},
44
+ eventSigning?: SigningDetails,
43
45
  ): Promise<PublicationSession> {
44
46
  const messageId = uuid();
45
47
  const envelope = this.createEnvelope(
@@ -48,7 +50,11 @@ export default class Publication {
48
50
  payload,
49
51
  envelopeOverrides,
50
52
  );
51
- const overrides = mergeDeepRight(options, { options: { messageId } });
53
+
54
+ const { body, headers } = this.getSigningData(envelope, eventSigning);
55
+ const overrides = mergeDeepRight(options, {
56
+ options: { messageId, headers, contentType: 'application/json' },
57
+ });
52
58
 
53
59
  // Perform runtime validation for unreplaced placeholders on routing-keys of multi-tenant messages
54
60
  if (
@@ -63,13 +69,43 @@ export default class Publication {
63
69
 
64
70
  const session = await this.broker.publish(
65
71
  this.messageType,
66
- envelope,
72
+ body,
67
73
  overrides,
68
74
  );
69
75
  this.attachEventHandlers(session);
70
76
  return session;
71
77
  }
72
78
 
79
+ private getSigningData(
80
+ envelope: MessageEnvelope<unknown>,
81
+ eventSigning: SigningDetails | undefined,
82
+ ): {
83
+ headers?: {
84
+ ['x-mosaic-signature']: string;
85
+ ['x-mosaic-signature-key-version']: number;
86
+ };
87
+ body: string | MessageEnvelope<unknown>;
88
+ } {
89
+ if (
90
+ eventSigning?.rmqEventSigningKeyVersion &&
91
+ eventSigning?.rmqEventSigningPrivateKey
92
+ ) {
93
+ const { signature, stringifiedValue } = generateSignature(
94
+ envelope,
95
+ eventSigning.rmqEventSigningPrivateKey,
96
+ );
97
+ return {
98
+ headers: {
99
+ ['x-mosaic-signature']: signature,
100
+ ['x-mosaic-signature-key-version']:
101
+ eventSigning.rmqEventSigningKeyVersion,
102
+ },
103
+ body: stringifiedValue,
104
+ };
105
+ }
106
+ return { body: envelope };
107
+ }
108
+
73
109
  private createEnvelope(
74
110
  messageId: string,
75
111
  aggregateId: string,
@@ -36,6 +36,12 @@ describe('RascalConfigBuilder', () => {
36
36
  rmqUser: 'test-user',
37
37
  rmqPassword: 'test-pw',
38
38
  rmqVHostAssert: true,
39
+ rmqChannelMax: 5,
40
+ rmqMgmtHost: 'test',
41
+ rmqMgmtPort: 1234,
42
+ rmqMgmtProtocol: 'amqp',
43
+ rmqEventSigningKeyVersion: 1,
44
+ rmqEventSigningPrivateKey: 'test',
39
45
  },
40
46
  );
41
47
  };
@@ -2,13 +2,12 @@ import { MessagingSettings } from '@axinom/mosaic-message-bus-abstractions';
2
2
  import {
3
3
  BindingConfig,
4
4
  BrokerConfig,
5
- PublicationConfig,
6
5
  QueueConfig,
7
6
  SubscriptionConfig,
8
7
  } from 'rascal';
9
8
  import { BrokerProxy } from './broker';
10
9
  import { MessageHandler } from './message-handler';
11
- import { MessagingConfig } from './types';
10
+ import { MessagePublicationConfig, MessagingConfig } from './types';
12
11
 
13
12
  type MessageType = 'command' | 'event';
14
13
 
@@ -24,7 +23,7 @@ interface AssertedVhostConfig {
24
23
  [key: string]: BindingConfig;
25
24
  };
26
25
  publications: {
27
- [key: string]: PublicationConfig;
26
+ [key: string]: MessagePublicationConfig;
28
27
  };
29
28
  subscriptions: {
30
29
  [key: string]: SubscriptionConfig;
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-console */
2
2
  import 'jest-extended';
3
3
  import { BrokerConfig } from 'rascal';
4
- import { exportedForTesting } from './messaging-middleware';
4
+ import { exportedForTesting } from './setup-messaging-broker';
5
5
  const vhostContents = {
6
6
  assert: true,
7
7
  exchanges: {