Abstract
The definitions of the message that is handled.
The set of permissions that allow to execute the handler code
The configuration object
The authentication settings - AuthenticationConfig for customizable services and auth serice URL for managed services.
Readonly
aggregatePrivate
authThe authentication settings - AuthenticationConfig for customizable services and auth serice URL for managed services.
Protected
configProtected
Optional
handleProtected
loggerReadonly
messageProtected
messagingProtected
permissionsThe set of permissions that allow to execute the handler code
Protected
authenticateIs called from the transactional inbox and calls the abstract
handleMessage
function with the correct message payload typing. Do not
override this message but implement the handleMessage
message.
The inbox message with the payload to handle.
The database client that is part of a DB env owner transaction to safely handle the inbox message.
Is called from the transactional inbox and calls the handleErrorMessage
function with the correct message payload typing. Do not override this
message but override the handleErrorMessage
message.
The error that was thrown in the handle method.
The inbox message with the payload that was attempted to be handled.
The database client that is part of a (new) transaction to safely handle the error.
True if the message will be retried again.
A flag that defines if the message should be retried ('transient_error') or not ('permanent_error')
Optionally override this method with your custom business logic to handle
an error that was caused by the handleMessage
method. The default
implementation logs the error if there are no further retries.
The error that was thrown in the handleMessage
method.
The inbox message with the payload that was attempted to be handled.
True if the message will be retried again.
Optional
_context: GuardedContextAbstract
handleImplement to execute your custom business logic to handle a message that was stored in the inbox.
The inbox message with the payload to handle.
The database client that is part of a DB env owner transaction to safely handle the inbox message.
Optional
context: GuardedContextIf something fails and the inbox message should NOT be acknowledged - throw an error.
Protected
Abstract
setAdd the PostgreSQL settings for the environment owner connection and subject
The env owner based DB client
The user or service account to use for setting the connection context
const pgSettings = buildAuthPgSettings(subject, this.config.serviceId);
await setPgSettingsConfig(pgSettings, envOwnerClient);
Protected
updateModifies the original error by extending its details subobject, if exists. Default behavior adds tenantId and environmentId to the details object by parsing the routing key. If still not available - returns original error. Some routing keys will not have tenantId and environmentId, e.g. when a command is sent. A separate handling is needed to extact these values, e.g. from the jwt.
Optional
context: GuardedContextGenerated using TypeDoc
Create a new Message handler that provides both the functionality to store an incoming RabbitMQ message in the inbox and provides the actual logic to execute the business logic that is based on that message.