Azure Cosmos DB Connector 1.0 Examples - Mule 4

Prerequisites

  • Java 8 or 11

  • Anypoint Studio 7.5 and later

  • Mule runtime engine (Mule) 4.3.0 and later

  • DataWeave

Some operations require existing documents, stored procedures, or permissions, which can be created with their respective flows.

Create Document

This Mule flow creates a new document or replaces an existing one.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Create Document
    Creates a new document in a collection

  • Transform Message
    Outputs the results of the Create Document operation in JSON format

  • Logger
    Shows the HTTP response from the Create Document operation

Studio Flow for the Create Document operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>

    <flow name="create-document-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/create-document"/>
        <azure-cosmos-db-connector-mule-4:create-document config-ref="Cosmos_Db_Connector_Config"
                                                          dbIdUriParam="${config.database}"
                                                          collIdUriParam="${config.collection}"
                                                          xMsDocumentdbPartitionkeyHeader="#[write(['Mule_CosmosDB_DemoApp_DocumentId'], 'application/json')]"
                                                          xMsIndexingDirectiveHeader="INCLUDE">
            <azure-cosmos-db-connector-mule-4:create-document-body>
                <![CDATA[#[%dw 2.0
output application/json
---
{
	"id" : "Mule_CosmosDB_DemoApp_DocumentId",
	"firstName" : "John",
	"lastName" : "Smith"
}]]]></azure-cosmos-db-connector-mule-4:create-document-body>
        </azure-cosmos-db-connector-mule-4:create-document>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/create-document.

Get Document

This Mule flow retrieves an existing document.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Get Document
    Retrieves a document by its partition key and document key

  • Transform Message
    Outputs the results of the Get Document operation in JSON format

  • Logger
    Shows the HTTP response from the Get Document operation

Studio Flow for the Get Document operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>

		<flow name="get-document-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/get-document"/>
        <azure-cosmos-db-connector-mule-4:get-document config-ref="Cosmos_Db_Connector_Config"
                                                       dbIdUriParam="${config.database}"
                                                       collIdUriParam="${config.collection}"
                                                       xMsDocumentdbPartitionkeyHeader="#[write(['Mule_CosmosDB_DemoApp_DocumentId'], 'application/json')]"
                                                       docIdUriParam="Mule_CosmosDB_DemoApp_DocumentId"
                                                       ifNoneMatchHeader="noneMatch"
                                                       xMsConsistencyLevelHeader="SESSION">
        </azure-cosmos-db-connector-mule-4:get-document>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/get-document.

Replace Document

This Mule flow replaces an existing document with a new document that contains the specified content.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Replace Document
    Replaces the entire content of a document

  • Transform Message
    Outputs the results of the Replace Document operation in JSON format

  • Logger
    Shows the HTTP response from the Replace Document operation

Studio Flow for the Replace Document operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>

		<flow name="replace-document-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/replace-document"/>
        <azure-cosmos-db-connector-mule-4:replace-document config-ref="Cosmos_Db_Connector_Config"
                                                           dbIdUriParam="${config.database}"
                                                           collIdUriParam="${config.collection}"
                                                           xMsDocumentdbPartitionkeyHeader="#[write(['Mule_CosmosDB_DemoApp_DocumentId'], 'application/json')]"
                                                           docIdUriParam="Mule_CosmosDB_DemoApp_DocumentId"
                                                           xMsIndexingDirectiveHeader="INCLUDE">
            <azure-cosmos-db-connector-mule-4:replace-document-body>
                <![CDATA[#[%dw 2.0
output application/json
---
{
	"id" : "Mule_CosmosDB_DemoApp_DocumentId",
	"firstName" : "Jane",
	"lastName" : "Doe"
}]]]></azure-cosmos-db-connector-mule-4:replace-document-body>
        </azure-cosmos-db-connector-mule-4:replace-document>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/replace-document.

List Documents

This Mule flow obtains a list of existing documents based on the specified query, with pagination support handled internally by the connector.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • List Documents
    Returns a list of documents under the collection

  • Transform Message
    Outputs the results of the List Documents operation in JSON format

  • Logger
    Shows the HTTP response from the List Documents operation

Studio Flow for the List Documents operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>

	<flow name="list-documents-flow">
			<http:listener config-ref="HTTP_Listener_config" path="/list-documents"/>
			<azure-cosmos-db-connector-mule-4:list-documents config-ref="Cosmos_Db_Connector_Config"
																											 dbIdUriParam="${config.database}"
																											 collIdUriParam="${config.collection}"
																											 xMsConsistencyLevelHeader="SESSION"
																											 ifNoneMatchHeader="noneMatch">
			</azure-cosmos-db-connector-mule-4:list-documents>
			<ee:transform>
					<ee:message>
							<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
					</ee:message>
			</ee:transform>
			<logger level="INFO" message="#[payload]"/>
	</flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/list-documents.

Query Documents

This Mule flow obtains a list of existing documents based on the specified query, with pagination support handled internally by the connector.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Query Documents
    Queries documents

  • Transform Message
    Outputs the results of the Query Documents operation in JSON format

  • Logger
    Shows the HTTP response from the Query Documents operation

Studio Flow for the Query Documents operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>

	<flow name="query-documents-flow">
			<http:listener config-ref="HTTP_Listener_config" path="/query-documents"/>
			<azure-cosmos-db-connector-mule-4:query-documents config-ref="Cosmos_Db_Connector_Config"
																												dbIdUriParam="${config.database}"
																												collIdUriParam="${config.collection}"
																												xMsConsistencyLevelHeader="SESSION"
																												xMsDocumentdbQueryEnablecrosspartitionHeader="true">
					<azure-cosmos-db-connector-mule-4:query-documents-body>
							<![CDATA[#[%dw 2.0
output application/json
---
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
	{
		"name": "@id",
		"value": "AndersenFamily"
	},
	{
		"name": "@city",
		"value": "Seattle"
	}
]
}]]]></azure-cosmos-db-connector-mule-4:query-documents-body>
			</azure-cosmos-db-connector-mule-4:query-documents>
			<ee:transform>
					<ee:message>
							<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
					</ee:message>
			</ee:transform>
			<logger level="INFO" message="#[payload]"/>
	</flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/query-documents.

Delete Document

This Mule flow deletes an existing document.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Delete Document
    Deletes an existing document from a collection

  • Logger
    Shows the HTTP response from the Delete Document operation

Studio Flow for the Delete Document operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
		<flow name="delete-document-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/delete-document"/>
        <azure-cosmos-db-connector-mule-4:delete-document config-ref="Cosmos_Db_Connector_Config"
                                                          dbIdUriParam="${config.database}"
                                                          collIdUriParam="${config.collection}"
                                                          xMsDocumentdbPartitionkeyHeader="#[write(['Mule_CosmosDB_DemoApp_DocumentId'], 'application/json')]"
                                                          docIdUriParam="Mule_CosmosDB_DemoApp_DocumentId">
        </azure-cosmos-db-connector-mule-4:delete-document>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/delete-document.

Create Stored Procedure

This Mule flow creates a stored procedure with the specified content.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Transform Message
    Transforms the HTTP input

  • Create Stored Procedure
    Creates a new stored procedure in a collection

  • Transform Message
    Outputs the results of the Create Stored Procedure operation in JSON format

  • Logger
    Shows the HTTP response from the Create Stored Procedure operation

Studio Flow for the Create Stored Procedure operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
		<flow name="create-stored-procedure-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/create-stored-procedure"/>
        <ee:transform>
            <ee:message>
                <ee:set-payload>
                    <![CDATA[%dw 2.0
                        output application/json
                        ---
                        {
                            "body": "function () {\r\n    var context = getContext();\r\n    var response = context.getResponse();\r\n\r\n    response.setBody(\"Hello, World\");\r\n}",
                            "id": "Mule_CosmosDB_DemoApp_StoredProcedureId"
                        } ]]>
                </ee:set-payload>
            </ee:message>
        </ee:transform>
        <azure-cosmos-db-connector-mule-4:create-stored-procedure config-ref="Cosmos_Db_Connector_Config"
                                                                  dbIdUriParam="${config.database}"
                                                                  collIdUriParam="${config.collection}">
        </azure-cosmos-db-connector-mule-4:create-stored-procedure>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/create-stored-procedure.

Execute Stored Procedure

This Mule flow executes an existing stored procedure.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Transform Message
    Transforms the HTTP input

  • Execute Stored Procedure
    Executes a stored procedure by performing a POST on a stored procedure resource

  • Transform Message
    Outputs the results of the Execute Stored Procedure operation in JSON format

  • Logger
    Shows the HTTP response from the Execute Stored Procedure operation

Studio Flow for the Execute Stored Procedure operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
		<flow name="execute-stored-procedure-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/execute-stored-procedure"/>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
                        output application/json
                        ---
                        ["World"]
                        ]]>
                </ee:set-payload>
            </ee:message>
        </ee:transform>
        <azure-cosmos-db-connector-mule-4:execute-stored-procedure config-ref="Cosmos_Db_Connector_Config"
                                                                   dbIdUriParam="${config.database}"
                                                                   collIdUriParam="${config.collection}"
                                                                   sprocIdUriParam="Mule_CosmosDB_DemoApp_StoredProcedureId">
        </azure-cosmos-db-connector-mule-4:execute-stored-procedure>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/execute-stored-procedure.

Replace Stored Procedure

This Mule flow replaces an existing stored procedure.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Transform Message
    Transforms the HTTP input

  • Replace Stored Procedure
    Replaces the entire stored procedure resource

  • Transform Message
    Outputs the results of the Replace Stored Procedure operation in JSON format

  • Logger
    Shows the HTTP response from the Replace Stored Procedure operation

Studio Flow for the Replace Stored Procedure operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="replace-stored-procedure-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/replace-stored-procedure"/>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
                        output application/json
                        ---
                        {
                            "body": "function () {\r\n    var context = getContext();\r\n    var response = context.getResponse();\r\n\r\n    response.setBody(\"Goodbye, World\");\r\n}",
                            "id": "Mule_CosmosDB_DemoApp_StoredProcedureId"
                        } ]]>
                </ee:set-payload>
            </ee:message>
        </ee:transform>
        <azure-cosmos-db-connector-mule-4:replace-stored-procedure config-ref="Cosmos_Db_Connector_Config"
                                                                   dbIdUriParam="${config.database}"
                                                                   collIdUriParam="${config.collection}"
                                                                   sprocIdUriParam="Mule_CosmosDB_DemoApp_StoredProcedureId">
        </azure-cosmos-db-connector-mule-4:replace-stored-procedure>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/replace-stored-procedure.

List Stored Procedures

This Mule flow obtains a list of existing stored procedures.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • List Stored Procedures
    Returns a list of the stored procedures in the collection

  • Transform Message
    Outputs the results of the List Stored Procedures operation in JSON format

  • Logger
    Shows the HTTP response from the List Stored Procedures operation

Studio Flow for the List Stored Procedures operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="list-stored-procedures-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/list-stored-procedures"/>
        <azure-cosmos-db-connector-mule-4:list-stored-procedures config-ref="Cosmos_Db_Connector_Config"
                                                                 dbIdUriParam="${config.database}"
                                                                 collIdUriParam="${config.collection}">
        </azure-cosmos-db-connector-mule-4:list-stored-procedures>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/list-stored-procedures.

Delete Stored Procedure

This Mule flow deletes an existing stored procedure.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Delete Stored Procedure
    Deletes an existing stored procedure from a collection

  • Logger
    Shows the HTTP response from the Delete Stored Procedure operation

Studio Flow for the Delete Stored Procedure operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="delete-stored-procedure-flow">
           <http:listener config-ref="HTTP_Listener_config" path="/delete-stored-procedure"/>
           <azure-cosmos-db-connector-mule-4:delete-stored-procedure config-ref="Cosmos_Db_Connector_Config"
                                                                     dbIdUriParam="${config.database}"
                                                                     collIdUriParam="${config.collection}"
                                                                     sprocIdUriParam="Mule_CosmosDB_DemoApp_StoredProcedureId">
           </azure-cosmos-db-connector-mule-4:delete-stored-procedure>
           <logger level="INFO" message="#[payload]"/>
       </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/delete-stored-procedure.

Create Permission

This Mule flow creates a user permission to access a resource.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Create Permission
    Creates a new permission in a database

  • Transform Message
    Outputs the results of the Create Permission operation in JSON format

  • Logger
    Shows the HTTP response from the Create Permission operation

Studio Flow for the Create Permission operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="create-permission-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/create-permission"/>
        <azure-cosmos-db-connector-mule-4:create-permission config-ref="Cosmos_Db_Connector_Config"
                                                            dbIdUriParam="${config.database}"
                                                            username="${config.username}"
                                                            xMsDocumentdbExpirySeconds="18000">
            <azure-cosmos-db-connector-mule-4:create-permission-body><![CDATA[#[%dw 2.0
output application/json
---
{
	"id": "Mule_CosmosDB_DemoApp_ResourceToken_PermissionId",
    "permissionMode": "All",
    "resource": "dbs/" ++ "${config.database}" ++ "/colls/" ++ "${config.collection}"
}]]]></azure-cosmos-db-connector-mule-4:create-permission-body>
        </azure-cosmos-db-connector-mule-4:create-permission>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/create-permission.

Get Permission

This Mule flow retrieves an existing permission.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Get Permission
    Gets a permission from a database

  • Transform Message
    Outputs the results of the Get Permission operation in JSON format

  • Logger
    Shows the HTTP response from the Get Permission operation

Studio Flow for the Get Permission operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="get-permission-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/get-permission"/>
        <azure-cosmos-db-connector-mule-4:get-permission config-ref="Cosmos_Db_Connector_Config"
                                                         dbIdUriParam="${config.database}"
                                                         username="${config.username}"
                                                         permissionId="Mule_CosmosDB_DemoApp_ResourceToken_PermissionId"
                                                         xMsDocumentdbExpirySeconds="1800">
        </azure-cosmos-db-connector-mule-4:get-permission>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/get-permission.

Replace Permission

This Mule flow replaces an existing permission to access a resource for a user with another permission.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Replace Permission
    Replaces a permission from a database

  • Transform Message
    Outputs the results of the Replace Permission operation in JSON format

  • Logger
    Shows the HTTP response from the Replace Permission operation

Studio Flow for the Replace Permission operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="replace-permission-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/replace-permission"/>
        <azure-cosmos-db-connector-mule-4:replace-permission config-ref="Cosmos_Db_Connector_Config"
                                                             dbIdUriParam="${config.database}"
                                                             username="${config.username}"
                                                             permissionId="Mule_CosmosDB_DemoApp_ResourceToken_PermissionId"
                                                             xMsDocumentdbExpirySeconds="1800">
            <azure-cosmos-db-connector-mule-4:replace-permission-body><![CDATA[#[%dw 2.0
output application/json
---
{
	"id": "Mule_CosmosDB_DemoApp_ResourceToken_PermissionId",
    "permissionMode": "Read",
    "resource": "dbs/" ++ "${config.database}" ++ "/colls/" ++ "${config.collection}"
}]]]></azure-cosmos-db-connector-mule-4:replace-permission-body>
        </azure-cosmos-db-connector-mule-4:replace-permission>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/replace-permission.

List Permissions

This Mule flow obtains a list of existing permissions.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • List Permissions
    Lists permissions of a user from a database

  • Transform Message
    Outputs the results of the List Permissions operation in JSON format

  • Logger
    Shows the HTTP response from the List Permissions operation

Studio Flow for the List Permissions operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="list-permissions-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/list-permissions"/>
        <azure-cosmos-db-connector-mule-4:list-permissions config-ref="Cosmos_Db_Connector_Config"
                                                           dbIdUriParam="${config.database}"
                                                           username="${config.username}">
        </azure-cosmos-db-connector-mule-4:list-permissions>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/list-permissions.

Delete Permission

This Mule flow deletes an existing permission.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Delete Permission
    Deletes a permission from a database

  • Logger
    Shows the HTTP response from the Delete Permission operation

Studio Flow for the Delete Permission operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="delete-permission-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/delete-permission"/>
        <azure-cosmos-db-connector-mule-4:delete-permission config-ref="Cosmos_Db_Connector_Config"
                                                            dbIdUriParam="${config.database}"
                                                            username="${config.username}"
                                                            permissionId="Mule_CosmosDB_DemoApp_ResourceToken_PermissionId">
        </azure-cosmos-db-connector-mule-4:delete-permission>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/delete-permission.

List Documents Resource Token

This Mule flow obtains a list of existing documents, with pagination support handled internally by the connector, and uses the short-lived tokens from the Resource Token authorization.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Flow Reference
    Obtains the resource token

  • List Documents
    Returns a list of documents under the collection

  • Transform Message
    Outputs the results of the List Documents operation in JSON format

  • Flow Reference
    Clears the permissions

  • Logger
    Shows the HTTP response from the List Documents operation

Studio Flow for the List Documents Resource Token operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="list-documents-resource-token-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/list-documents-resource-token"/>
        <flow-ref name="obtain-resource-token"/>
        <azure-cosmos-db-connector-mule-4:list-documents config-ref="Cosmos_Db_Connector_Config_Resource_Token"
                                                         dbIdUriParam="${config.database}"
                                                         collIdUriParam="${config.collection}"
                                                         xMsConsistencyLevelHeader="SESSION"
                                                         ifNoneMatchHeader="noneMatch">
        </azure-cosmos-db-connector-mule-4:list-documents>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <flow-ref name="clear-permissions"/>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/list-documents-resource-token.

List Stored Procedures Resource Token

This Mule flow obtains a list of existing stored procedures using short-lived tokens from the Resource Token authorization.

This example uses the following operations:

  • HTTP Listener
    Accepts data from HTTP requests

  • Flow Reference
    Obtains the resource token

  • List Stored Procedures
    Returns a list of the stored procedures in the collection

  • Transform Message
    Outputs the results of the List Stored Procedures operation in JSON format

  • Flow Reference
    Clears the permissions

  • Logger
    Shows the HTTP response from the List Stored Procedures operation

Studio Flow for the List Stored Procedures operation

XML for This Example

Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:

<?xml version="1.0" encoding="UTF-8"?>
<mule
        xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
        xmlns:azure-cosmos-db-connector-mule-4="http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4"
        xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
        xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4 http://www.mulesoft.org/schema/mule/azure-cosmos-db-connector-mule-4/current/mule-azure-cosmos-db-connector-mule-4.xsd">

    <configuration-properties file="mule-app.properties"/>

    <http:listener-config name="HTTP_Listener_config">
        <http:listener-connection host="0.0.0.0" port="8081"/>
    </http:listener-config>
    <azure-cosmos-db-connector-mule-4:key-token-config name="Cosmos_Db_Connector_Config">
        <azure-cosmos-db-connector-mule-4:key-token-auth-connection key="${config.masterKey}"
                                                                       version="${config.version}"
                                                                       baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:key-token-config>
    <azure-cosmos-db-connector-mule-4:resource-token-config name="Cosmos_Db_Connector_Config_Resource_Token">
        <azure-cosmos-db-connector-mule-4:resource-token-auth-connection resourceToken="#[vars.resourceToken]"
                                                                         version="${config.version}"
                                                                         baseUri="${config.baseUri}"/>
    </azure-cosmos-db-connector-mule-4:resource-token-config>
    <flow name="list-stored-procedures-resource-token-flow">
        <http:listener config-ref="HTTP_Listener_config" path="/list-stored-procedures-resource-token"/>
        <flow-ref name="obtain-resource-token"/>
        <azure-cosmos-db-connector-mule-4:list-stored-procedures config-ref="Cosmos_Db_Connector_Config_Resource_Token"
                                                                 dbIdUriParam="${config.database}"
                                                                 collIdUriParam="${config.collection}">
        </azure-cosmos-db-connector-mule-4:list-stored-procedures>
        <ee:transform>
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <flow-ref name="clear-permissions"/>
        <logger level="INFO" message="#[payload]"/>
    </flow>
</mule>

Steps for Running This Example

  1. Verify that your connector is configured.

  2. Save the project.

  3. From a web browser, test the application by entering http://localhost:8081/list-stored-procedures-resource-token.