Skip to main content
Version: 1.15

Recipient sender plugins

This guide introduces you how to configure Recipient sender plugins.
These plugins allow to generate a payload, using product content and metadata, and send it to another system named recipient.

Here is the list of documented plugins:

To import your plugin configurations to Notifier, you need update microservice configuration using REST API

Common Sender configuration

Abstract class extension

Most of REGARDS OSS Plugins sender are extending the AbstractRabbitMQSender abstract class.
This abstraction above plugins implementation provides a common configuration to manage a plugin that sends event to RabbitMQ exchange.

Configuration parameters are:

NameTypeDefault ValueOptionalDescription
recipientLabelStringYExternal service identifier we want to notify the products to - this information is sent back to the emitter that contacted Notifier
When not specified, the emitter wont know what's the recipient label that received its events
descriptionStringYRecipient plugin description displayed in the REGARDS HMI
exchangeStringRabbitMQ exchange name to publish message to
queueNameStringYRabbitMQ queue name to initialize
queueDeadLetterRoutingKeyStringYRabbitMQ dead letter routing key on the queue
directNotificationEnabledbooleanfalseYWhen true, indicates this plugin can be used to send to the recipient directly without checking product content against Rule matcher plugins
blockingRequiredbooleanfalseYWhen true, the sender will be informed that the notified resource must be blocked until the sender receives acknowledge from the recipient. Only then, the notified resource can be unlocked.
Why providing RabbitMQ Queue and DLX?

This plugin creates a queue linked to the exchange, to ensure no message will be lost before the subscriber creates its queue.

This abstract class defines following default behavior:

NameTypeValueDescription
ackRequiredbooleanfalseThe emitter that contacted Notifier won't receive any acknowledgement from this notification

Plugin implementation

RabbitMQSender

This plugin is used to send notifications to a specific RabbitMQ exchange with no transformation applied to the input (what Notifier received).
This plugin let you override following configuration:

NameTypeDefault ValueOptionalDescription
ackRequiredbooleanfalseYWhen true, the emitter that contacted Notifier will be awaiting for an acknowledgement message
RabbitMqSender plugin configuration example
{
"key": "fr.cnes.regards.framework.modules.plugins.domain.PluginConfiguration",
"value": {
"pluginId": "RabbitMQSender",
"label": "{label}",
"businessId": "{uniqueIdentifier}",
"version": "1.0.0",
"priorityOrder": 0,
"active": true,
"parameters": [
{
"name": "exchange",
"type": "STRING",
"value": "{exchange name to use}"
},
{
"name": "queueName",
"type": "STRING",
"value": "{queue name to use}"
},
{
"name": "recipientLabel",
"type": "STRING",
"value": "{identifier of the recipient}"
},
{
"name": "ackRequired",
"type": "BOOLEAN",
"value": "{true or false}"
},
{
"name": "description",
"type": "STRING",
"value": "{plugin description}"
},
{
"name": "directNotificationEnabled",
"type": "BOOLEAN",
"value": "{true or false}"
},
{
"name": "blockingRequired",
"type": "BOOLEAN",
"value": "{true or false}"
}
]
}
}

LTA Request Sender

There is no public documentation yet

Worker Manager Sender

There is no public documentation yet

Dissemination ACK Sender

This plugin is designed to send acknowledge messages to OAIS catalog and FEM catalog.

danger

You need to define either properties to send to FEM catalog either properties to send to OAIS catalog

GeoJSON FEM catalog usage

This plugin let you override following configuration:

NameTypeOptionalDescription
featureDisseminationExchangestringYName of the AMQP exchange to store messages before shovel.
Only use when handling GeoJSON products.
featureDisseminationQueueNamestringYName of the AMQP queue to store messages before shovel.
Only use when handling GeoJSON products.
FEM catalog DisseminationAckSender example
{
"key": "fr.cnes.regards.framework.modules.plugins.domain.PluginConfiguration",
"value": {
"pluginId": "DisseminationAckSender",
"label": "{label}",
"businessId": "{uniqueIdentifier}",
"version": "1.0.0",
"priorityOrder": 0,
"active": true,
"parameters": [
{
"name": "exchange",
"type": "STRING",
"value": "{exchange name to use}"
},
{
"name": "queueName",
"type": "STRING",
"value": "{queue name to use}"
},
{
"name": "recipientLabel",
"type": "STRING",
"value": "{identifier of the recipient}"
},
{
"name": "description",
"type": "STRING",
"value": "{plugin description}"
},
{
"name": "directNotificationEnabled",
"type": "BOOLEAN",
"value": "{true or false}"
},
{
"name": "featureDisseminationExchange",
"type": "STRING",
"value": "{exchange name to store ACK messages before shovel}"
},
{
"name": "featureDisseminationQueueName",
"type": "STRING",
"value": "{queue name to store ACK messages before shovel}"
}
]
}
}

OAIS catalog usage

This plugin let you override following configuration:

NameTypeOptionalDescription
aipDisseminationExchangestringYName of the exchange to store messages before shovel.
Only use when handling OAIS products.
aipDisseminationQueueNamestringYName of the AMQP queue to store messages before shovel.
Only use when handling OAIS products.
Example de configuration de plugin pour acquitter une diffusion de produits OAIS
{
"key": "fr.cnes.regards.framework.modules.plugins.domain.PluginConfiguration",
"value": {
"pluginId": "DisseminationAckSender",
"label": "{label}",
"businessId": "{uniqueIdentifier}",
"version": "1.0.0",
"priorityOrder": 0,
"active": true,
"parameters": [
{
"name": "exchange",
"type": "STRING",
"value": "{exchange name to use}"
},
{
"name": "queueName",
"type": "STRING",
"value": "{queue name to use}"
},
{
"name": "recipientLabel",
"type": "STRING",
"value": "{identifier of the recipient}"
},
{
"name": "description",
"type": "STRING",
"value": "{plugin description}"
},
{
"name": "directNotificationEnabled",
"type": "BOOLEAN",
"value": "{true or false}"
},
{
"name": "aipDisseminationExchange",
"type": "STRING",
"value": "{exchange name to store ACK messages before shovel}"
},
{
"name": "aipDisseminationQueueName",
"type": "STRING",
"value": "{queue name to store ACK messages before shovel}"
}
]
}
}