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.