> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreflux.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Service Bus

> Client-mode REST API connector for the Azure Service Bus runtime REST API: send to queues and topics plus peek-lock and receive-and-delete and complete and unlock

Technical Preview

## Overview

Client-mode REST API connector for the Azure Service Bus runtime REST API: send to queues and topics plus peek-lock and receive-and-delete and complete and unlock. `BASE_ADDRESS` defaults to `https://YOUR_NAMESPACE.servicebus.windows.net`. Topics use `cloud/azure-service-bus/<object>/<verb>`.

| Event | Request | Source topic |
| - | - | - |
| `QueueSend` | `POST /{value.json.queue}/messages?timeout=60` | `cloud/azure-service-bus/queues/send` |
| `TopicSend` | `POST /{value.json.topic}/messages?timeout=60` | `cloud/azure-service-bus/topics/send` |
| `QueuePeekLock` | `POST /{value.json.queue}/messages/head?timeout={value.json.timeout}` | `cloud/azure-service-bus/queues/peek-lock` |
| `QueueReceiveAndDelete` | `DELETE /{value.json.queue}/messages/head?timeout={value.json.timeout}` | `cloud/azure-service-bus/queues/receive` |
| `SubscriptionPeekLock` | `POST /{value.json.topic}/subscriptions/{value.json.subscription}/messages/head?timeout={value.json.timeout}` | `cloud/azure-service-bus/subscriptions/peek-lock` |
| `SubscriptionReceiveAndDelete` | `DELETE /{value.json.topic}/subscriptions/{value.json.subscription}/messages/head?timeout={value.json.timeout}` | `cloud/azure-service-bus/subscriptions/receive` |
| `MessageComplete` | `DELETE /{value.json.entity_path}/messages/{value.json.messageId}/{value.json.lockToken}` | `cloud/azure-service-bus/messages/complete` |
| `MessageUnlock` | `PUT /{value.json.entity_path}/messages/{value.json.messageId}/{value.json.lockToken}` | `cloud/azure-service-bus/messages/unlock` |

## Authentication

Authorization: \{value.json.authorization} carries either "SharedAccessSignature sr=...\&sig=...\&se=...\&skn=..." (SAS from a policy with Send / Listen) or "Bearer \<Entra token>" (scope [https://servicebus.azure.net/.default](https://servicebus.azure.net/.default); roles Azure Service Bus Data Sender / Receiver). The connector cannot sign; generate the SAS or token upstream (LoT action with GET SECRET or an external helper).

> [!WARNING]
>
> Keep credentials in broker secrets and never retain topics that carry tokens or client secrets.

## Notes

* Topic names here use cloud/azure-service-bus/... (not messaging/...).
* BrokerProperties is a JSON string header, e.g. \{"MessageId":"m-1","SessionId":"line-1","TimeToLive":3600}; pass "\{}" when unused.
* Peek-lock returns the lock token in the BrokerProperties response header; MessageComplete and MessageUnlock need messageId and lockToken from it.

## Basic Syntax

```lot wrap theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
DEFINE ROUTE AzureServiceBusRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://YOUR_NAMESPACE.servicebus.windows.net"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '90'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT QueueSend
        WITH SOURCE_TOPIC "cloud/azure-service-bus/queues/send"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/queues/send/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/{value.json.queue}/messages?timeout=60"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
            ADD "Content-Type" "application/json"
            ADD "BrokerProperties" "{value.json.broker_properties}"
        WITH BODY "{value.json.body}"
    ADD EVENT TopicSend
        WITH SOURCE_TOPIC "cloud/azure-service-bus/topics/send"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/topics/send/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/{value.json.topic}/messages?timeout=60"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
            ADD "Content-Type" "application/json"
            ADD "BrokerProperties" "{value.json.broker_properties}"
        WITH BODY "{value.json.body}"
    ADD EVENT QueuePeekLock
        WITH SOURCE_TOPIC "cloud/azure-service-bus/queues/peek-lock"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/queues/peek-lock/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/{value.json.queue}/messages/head?timeout={value.json.timeout}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT QueueReceiveAndDelete
        WITH SOURCE_TOPIC "cloud/azure-service-bus/queues/receive"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/queues/receive/response"
        WITH METHOD "DELETE"
        WITH ENDPOINT "/{value.json.queue}/messages/head?timeout={value.json.timeout}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT SubscriptionPeekLock
        WITH SOURCE_TOPIC "cloud/azure-service-bus/subscriptions/peek-lock"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/subscriptions/peek-lock/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/{value.json.topic}/subscriptions/{value.json.subscription}/messages/head?timeout={value.json.timeout}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT SubscriptionReceiveAndDelete
        WITH SOURCE_TOPIC "cloud/azure-service-bus/subscriptions/receive"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/subscriptions/receive/response"
        WITH METHOD "DELETE"
        WITH ENDPOINT "/{value.json.topic}/subscriptions/{value.json.subscription}/messages/head?timeout={value.json.timeout}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT MessageComplete
        WITH SOURCE_TOPIC "cloud/azure-service-bus/messages/complete"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/messages/complete/response"
        WITH METHOD "DELETE"
        WITH ENDPOINT "/{value.json.entity_path}/messages/{value.json.messageId}/{value.json.lockToken}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT MessageUnlock
        WITH SOURCE_TOPIC "cloud/azure-service-bus/messages/unlock"
        WITH DESTINATION_TOPIC "cloud/azure-service-bus/messages/unlock/response"
        WITH METHOD "PUT"
        WITH ENDPOINT "/{value.json.entity_path}/messages/{value.json.messageId}/{value.json.lockToken}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
```

## Sources

* [https://learn.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue](https://learn.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue)
* [https://learn.microsoft.com/en-us/rest/api/servicebus/peek-lock-message-non-destructive-read](https://learn.microsoft.com/en-us/rest/api/servicebus/peek-lock-message-non-destructive-read)
* [https://learn.microsoft.com/en-us/rest/api/servicebus/receive-and-delete-message-destructive-read](https://learn.microsoft.com/en-us/rest/api/servicebus/receive-and-delete-message-destructive-read)
* [https://learn.microsoft.com/en-us/rest/api/servicebus/delete-message](https://learn.microsoft.com/en-us/rest/api/servicebus/delete-message)
* [https://learn.microsoft.com/en-us/rest/api/servicebus/unlock-message](https://learn.microsoft.com/en-us/rest/api/servicebus/unlock-message)
* [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.