Skip to main content

RabbitMQ Module

The RabbitMQ Module publishes webhook payloads to RabbitMQ message queues.

Configuration

{
"rabbitmq_webhook": {
"data_type": "json",
"module": "rabbitmq",
"connection": "rabbitmq_local",
"module-config": {
"queue_name": "webhook_events"
},
"authorization": "Bearer token"
}
}

Connection Configuration

In connections.json:

{
"rabbitmq_local": {
"type": "rabbitmq",
"host": "localhost",
"port": 5672,
"user": "guest",
"pass": "guest",
"vhost": "/"
}
}

Module Configuration Options

OptionTypeRequiredDescription
queue_namestringYesName of the RabbitMQ queue
Queue Behavior

Queues are automatically declared as durable (survives broker restart) with delivery_mode=2 (persistent messages). Exchange and routing key configuration is not currently supported - messages are published directly to the queue via the default exchange.

Queue Name Validation

Queue names are validated for security:

  • Maximum 255 characters
  • Allowed characters: a-z, A-Z, 0-9, _, -, ., :
  • Cannot start with amq. (reserved for system queues)
  • Cannot contain path traversal sequences or control characters

Features

  • Reliable message delivery with persistent messages
  • Durable queue declaration
  • Connection pooling for performance
  • Automatic reconnection handling
  • Error sanitization (RabbitMQ details not exposed to clients)

Example

Basic Queue Publishing

{
"order_events": {
"data_type": "json",
"module": "rabbitmq",
"connection": "rabbitmq_prod",
"module-config": {
"queue_name": "orders.incoming"
},
"authorization": "Bearer {$ORDER_WEBHOOK_TOKEN}"
}
}

With Webhook Chaining

{
"multi_destination": {
"data_type": "json",
"chain": [
{
"module": "rabbitmq",
"connection": "rabbitmq_prod",
"module-config": {
"queue_name": "events.primary"
}
},
{
"module": "log"
}
],
"chain-config": {
"execution": "parallel"
},
"authorization": "Bearer token"
}
}