BassemE/mulesoft-documentation-embeddings huggingface dataset:
WebSockets Connector XML and Maven Support | MuleSoft Documentation
# WebSockets Connector XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Studio XML editor or from a text editor, you can get access to the connector in your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
When you add the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location. It also adds a dependency to the `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `<mule>` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/websocket
http://www.mulesoft.org/schema/mule/websocket/current/mule-websocket.xsd
```

This example shows how the namespace statements are placed in the `<mule>` XML block:
```
<mule xmlns:websocket="http://www.mulesoft.org/schema/mule/websocket"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	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/file
	http://www.mulesoft.org/schema/mule/file/current/mule-file.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/websocket
	http://www.mulesoft.org/schema/mule/websocket/current/mule-websocket.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
 <groupId>com.mulesoft.connectors</groupId>
 <artifactId>mule-websockets-connector</artifactId>
 <version>x.x.x</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `websockets`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## Next Step
After completing your namespace and `pom.xml` file, you can try the Examples.
## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Cluster Configurations | MuleSoft Documentation
# Cluster Configurations
To use the complete value of Runtime Fabric, refer to your respective Kubernetes (K8s) provider’s configuration specification. To get started, use the following recommended configurations to set up your cluster.
Type of configuration | EKS-A | EKS | Appliance | MuleSoft requirements  
---|---|---|---|---  
Infrastructure | Vsphere/Bare Metal | Pre-provisioned hosts  
Emissary, Nginx-ingress or any other available ingress options. | Nginx ingress | Nginx ingress | Customer-managed component config  
Load balancer | Customer-managed component config  
Monitoring | Grafana/Prometheus | CloudWatch | Grafana/Prometheus | Check Requirements and Limitations of Runtime Fabric  
Local cluster registry | Harbor or any other compliant implementation | Docker registry running inside the cluster  
Cluster size limits | Kubernetes imposed limits on the cluster size. | 1000 managed nodes | 21 total (5 control plane nodes + 16 worker nodes  
CK8s distro | Custom distro (planet) | Check Requirements and Limitations of Runtime Fabric  
Cluster mgmt tool | `eksctl` or `eksctl-anywhere` | Custom utility (rtfctl) | Check Requirements and Limitations of Runtime Fabric
Store and Retrieve Information in an Object Store Example | MuleSoft Documentation
# Store and Retrieve Information in an Object Store Example
The Object Store connector provides Store (`<os:store/>`) and Retrieve (`<os:retrieve/>`) operations.
Target variables used with the Object Store connector are described in the Mule Runtime Target Variables document.
## Store Information from the Object Store
You can use an Object Store to store values like this:
```
<os:store key="state">
 <os:value>
  <![CDATA[#[
   output application/json
    ---
    {
     "id": attributes.queryParams.id,
     "timestamp": now(),
     "name": payload.name
    }
   ]]]>
 </os:value>
</os:store>
```

You can use the Store operation to store new values or update existing ones, depending on the value of the `failIfPresent` parameter. When this parameter is set to `false` (the default), any pre-existing value associated to that key is overwritten. If the parameter is set to true, then an `OS:KEY_ALREADY_EXISTS` error is thrown instead.
Note that it is not possible to store null values. However, it is common to obtain a value by evaluating an expression or transformation:
  * Testing that the value is not null.
  * Storing the value if it is present.
  * Otherwise, doing nothing.


The `failOnNullValue` parameter simplifies this use case. By default (`true`), a `OS:NULL_VALUE` error is thrown if a null value is supplied. However, when the parameter is set to `false`, a null value causes this operation to do nothing: No error is raised, and no value is altered.
## Retrieve Information from the Object Store
The Retrieve operations retrieves the value of given Object Store key.
You can use the key to retrieve single values:
```
<os:retrieve key="userId" />
```

You can use an operation like this one to provide default values when the key is not present in the store:
```
<os:retrieve key="timestamp">
 <os:default-value>#[now()]</os:default-value>
</os:retrieve>
```

You can have default, complex structures:
```
<os:retrieve key="state">
 <os:default-value>
  <![CDATA[#[
   output application/json
   ---
   {
    "id": attributes.queryParams.id,
    "timestamp": now(),
    "name": payload.name
   }
  ]]]>
 </os:default-value>
</os:retrieve>
```

Note that the `defaultValue` parameter handles cases in which no value exists for a given key. If you do not provide the parameter and the operation resolves to a null value, an OS:KEY_NOT_FOUND error is thrown. Otherwise, the `defaultValue` is returned but not stored.
All Object Store operations are synchronized at the key level. No other operation is able to access the same key on the same Object Store while the operation is running. If the runtime is running in cluster mode, this synchronization is also guaranteed across nodes.   
---
CloudHub Load Balancers | MuleSoft Documentation
# CloudHub Load Balancers
CloudHub provides two types of load balancers:
  * Shared Load Balancer
Provides basic load balancing functionality.
  * Dedicated Load Balancer
Enables you to deploy and configure one or more custom load balancers within an Anypoint Virtual Private Cloud (Anypoint VPC).


## Shared Load Balancers
CloudHub provides a default shared load balancer that is available in all environments. The shared load balancer provides basic functionality, such as TCP load balancing.
Shared load balancers don’t allow you to configure custom SSL certificates or proxy rules. The shared load balancer has its own SSL certificate. If you use the shared load balancer to access your application, the system uses this certificate. If you access your application directly, the system uses the SSL certificate configured in the application.
Additionally, shared load balancers have lower rate limits that help ensure platform stability. MuleSoft regularly monitors and scales these limits as necessary. Rate limits on shared load balancers are applied according to region. If you are deploying an application to workers in multiple regions, the rate limit for each region might be different.
If an application exceeds the rate limit for a shared load balancer, the load balancer returns a 429 Service Unavailable response.
To perform custom load balancer configuration or have higher rate limit thresholds, you must use a dedicated load balancer.
The shared load balancer supports TLS versions 1.1 and TLS 1.2.
## Dedicated Load Balancers
Dedicated load balancers enable you to:
  * Handle load balancing among the different CloudHub workers that run your application.
  * Define SSL configurations to provide custom certificates and optionally enforce two-way SSL client authentication.
  * Configure proxy rules that map your applications to custom domains.
This enables you to host your applications under a single domain.
  * Enable HTTP Streaming via the API in CloudHub.
The uploaded file size cannot be over 1000MB.   
---  


Dedicated load balancers are an optional component of Anypoint Platform.
For information about dedicated load balancers, see Dedicated Load Balancers.
CloudHub load balancers use Nginx HTTP server capabilities. Nginx reverse proxies ignore HTTP header fields with invalid names. Valid HTTP header names are composed of English letters, numbers, hyphens, and underscores. Only valid headers are forwarded to the Mule application. Use only valid header names to avoid any issues. This applies to both shared and dedicated load balancers.   
---  
## See Also
  * Virtual Private Cloud
  * Dedicated Load Balancer Architecture
  * How to Enable DLB Streaming Feature via the API in CloudHub
AMQP Connector XML and Maven Support | MuleSoft Documentation
# AMQP Connector XML and Maven Support
Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio.
If you manually code a Mule runtime engine (Mule) app in XML, either from the Anypoint Studio XML editor or from a text editor, you can get access to the connector in your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file.
When you add the connector in Studio, Studio automatically populates the XML code with the connector’s namespace and schema location. It also adds a dependency to the `pom.xml` file.
## Add a Namespace for the Connector
Paste the following code inside the `<mule>` tag of the header of your configuration XML:
```
http://www.mulesoft.org/schema/mule/amqp>
http://www.mulesoft.org/schema/mule/amqp/current/mule-amqp.xsd
```

This example shows how the namespace statements are placed in the `<mule>` XML block:
```
<mule xmlns:amqp="http://www.mulesoft.org/schema/mule/amqp"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	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/file
	http://www.mulesoft.org/schema/mule/file/current/mule-file.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/amqp
	http://www.mulesoft.org/schema/mule/amqp/current/mule-amqp.xsd">
```

## Add a POM File Dependency
The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies for a Mule app. If you code a Mule app manually, include this XML snippet in your `pom.xml` file to enable access to this connector:
```
<dependency>
 <groupId>com.mulesoft.connectors</groupId>
 <artifactId>mule-amqp-connector</artifactId>
 <version>x.x.x</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Replace `x.x.x` with the version that corresponds to the connector you are using.
To obtain the most up-to-date `pom.xml` file information:
  1. Go to Anypoint Exchange.
  2. In Exchange, click **Login** and supply your Anypoint Platform username and password.
  3. In Exchange, search for `amqp`.
  4. Select the connector.
  5. Click **Dependency Snippets** near the upper right of the screen.


## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center
Limits in CloudHub 2.0 | MuleSoft Documentation
# Limits in CloudHub 2.0
CloudHub 2.0 imposes the following limits: 

Environments per business group


Private spaces per organization


Connections per private space
    
5. 10 if the connections are not redundant. 

VPNs per private space


Transit gateway connections
    
5 per private space, depending on available network connection entitlements 

HTTP header length (`maxHeaderLength`)


Maximum HTTP request size


Maximum HTTP request timeout
    
300 seconds 

Maximum ingress URI size


Firewall rules (inbound)


Firewall rules (outbound)


Application size
    
Up to 350 MB 

Application properties


Application property keys and values
    
1024 characters 

Custom TLS contexts per private space


Maximum number of Client Certificates in a TLS Context
    
There is no limit on the number of client certificates, but there is a limit on the store file size.
A TLS Context can reference one keystore and one truststore, which have their respective file size limits:
  * Truststore maximum file size: 131072 bytes (128 KB)
  * Keystore maximum file size for types JKS, JCEKS, PKCS12: 40960 bytes (40 KB).
  * Keystore maximum file size for type PEM:
    * Certificate File: 4096 bytes (4 KB).
    * CA Path Certificate File: 28672 bytes (28 KB).



Ingress controller `content-length` in POST requests
    
0 or greater. `content-length` must be included in the POST request, even if the value is 0. 

Anypoint Platform CloudHub 2.0 API rate limit
    
15 requests per second per remote IP address.
For information about limits in Exchange, see Asset Limits.
Limits are subject to change.   
---
Migrating Test Structure (MUnit) | MuleSoft Documentation
# Migrating Test Structure (MUnit)
The MUnit test is divided into three scopes. All of them are optional:
Scope | Description  
---|---  
Behavior | The behavior scope (`<munit:behavior/>`) is intended for setting the preconditions before executing the test logic. Mocks and Spies go in this section.  
Execution | The execution scope (`<munit:execution/>`) is meant to have the testing logic which will wait for all processes to finish before executing the next scope.  
Validation | The validation scope (`<munit:validation/>`) is meant to have all the validations regarding the result of the execution scope. Assertions and Verifications go in the validation scope.  
The following examples compare MUnit tests in 1.x to 2.x.
Test in MUnit 1.x
```
<munit:test name="sampleTest" description="Test">
  <mock:when messageProcessor="mule:set-payload">
    <mock:then-return payload="#['Sample']"/>
  </mock:when>
  <flow-ref name="sampleFlow"/>
  <munit:assert-payload-equals expectedValue="#['SampleString']"/>
</munit:test>
```

Test in MUnit 2.x
```
<munit:test name="sampleTest" description="Test">
  <munit:behavior>
    <munit-tools:mock-when processor="mule:set-payload">
      <munit-tools:then-return>
        <munit-tools:payload value="#['Sample']" />
      </munit-tools:then-return>
    </munit-tools:mock-when>
  </munit:behavior>
  <munit:execution>
    <flow-ref name="sampleFlow"/>
  </munit:execution>
  <munit:validation>
    <munit-tools:assert-that expression="#[payload]" is="#[MunitTools::equalTo('SampleString')]"/>
  </munit:validation>
</munit:test>
```

## See Also
  * MUnit 2 Test structure
DocuSign Connector 1.1 | MuleSoft Documentation
# DocuSign Connector 1.1
Anypoint Connector for DocuSign (DocuSign Connector) enables you to access the DocuSign platform and exposes operations provided by the DocuSign eSignature API v2.1.
For compatibility information and fixed issues, see the DocuSign Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The DocuSign API
  * Anypoint Connectors
  * Mule runtime (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Credentials to access the DocuSign target resource
  * Anypoint Platform
  * Anypoint Studio 7.3 or later


## Authentication Types
DocuSign Connector connections use the following authentication methods:
  * Authorization Connection Provider (Implicit Grant)
  * JWT Connection Provider (JWT Grant)
  * OAuth Connection Provider (Authorization Code Grant)


## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  *   * MuleSoft Help Center
Anypoint Runtime Manager | MuleSoft Documentation
# Anypoint Runtime Manager
Private Cloud Edition  Runtime Fabric 
Anypoint Runtime Manager is the interface to Anypoint Platform that provides a unified view of your applications, servers, and APIs.
With Runtime Manager, you can deploy, manage, and monitor your Mule applications in a sandbox, staging, or production environment from one central location, whether your apps are deployed in the cloud or on-premises.
You can use Runtime Manager in these scenarios: 

CloudHub
    
MuleSoft hosts your app deployments in CloudHub and you use the Anypoint Platform Runtime Manager cloud console to manage them.
CloudHub is a complete integration platform as a service (iPaaS) that automatically meets all of your server needs without requiring any configuration or customization, including object store infrastructure, monitoring, troubleshooting, and scheduling.
For applications deployed to CloudHub, you can use Insight for analytics and monitoring. 

Hybrid
    
Your on-premises Mule servers host your app deployments and you use the Anypoint Platform Runtime Manager cloud console to manage them.
For applications that you deploy on-premises, you can send data to third-party analytics applications.
If you are using MuleSoft Government Cloud, you can deploy Mule runtime engine to a private cloud or on-premises environment and manage your app deployments using your MuleSoft Government Cloud control plane. Refer to Standalone Mule Support for MuleSoft Government Cloud requirements. 

Anypoint Platform Private Cloud Edition
    
Your local Mule servers host your app deployments and you use the on-premises Runtime Manager instance included with Anypoint Platform PCE to manage them.
If you are using the on-premises Runtime Manager, you can deploy anywhere _except_ CloudHub.
For applications deployed to your private cloud servers, you can send data to third-party analytics applications. 

Anypoint Runtime Fabric
    
Your locally hosted Runtime Fabric instance hosts your app deployments and you use the Anypoint Platform Runtime Manager cloud console to manage them.
When you run an app in Anypoint Studio, the app deploys to an embedded test server in Studio. Because this server is not meant for production deployment and uptime restrictions apply, deploy your Mule app using one of the deployment options supported by Runtime Manager.   
---  
## See Also
  * Anypoint Platform Private Cloud Edition
  * Anypoint Runtime Fabric
  *   * Deploy to Your Servers
  *   * Export Data to External Analytics Tools
Custom Policy Examples | MuleSoft Documentation
# Custom Policy Examples
To better understand how to develop and implement custom policies for various events and scenarios, see the following examples:
  * Create a custom response policy
  * Create a custom policy using Event Authentication extension
File Check | MuleSoft Documentation
# File Check
Use the _File Check_ action step to check whether a file exists or not. You can evaluate the result using the _File Check.Check Succeeded_ variable and use it in the later stages of the workflow.
Before the process starts, the specified _Directory Path_ is checked against the _Allowed Paths_. If the _Directory Path_ specified in the action step is not allowed, the workflow is cancelled and an error message displayed.
## Properties
  * **File Operation Settings**
    * **Directory path** Path to the directory in which you want to search for the file. You can enter the path either as an absolute or relative path. If you enter it as a relative path, the path refers to the _Base Path_ variable.
    * **File Check mode** Specify wether to check if the exists or if it doesn’t exist.
      * **File exists** (default) Checks whether the file exists. If it doesn’t exist, the workflow stops and displays an error message.
      * **File not exists** Checks if the file _doesn’t_ exist. If it does, the workflow stops and displays an error message.
    * **File Name** Name of the file you are searching for.


This action step does not support using Placeholders. For additional details about path and file name settings and a list of unsupported characters, see Path / file name / invalid characters.
## Inbound Variables
  * **Directory path** Path to the directory in which you want to search for the file. You can enter the path either as an absolute or relative path. If you enter it as a relative path, the path refers to the _Base Path_ variable.
  * **File Name** Name of the file you are searching for.


## Outbound Variables
  * **Check Succeeded** Specifies whether the check was successful or not (True/False).
  * **File Name** The name of the file to be found.
  * **Directory Path** The path used in the search.


## Wizard
Define the path to the file to be found. You can create an absolute path or a path relative to the _Base Path_. The initial value is `%STWS_BASEPATH%``. Select an existing path You can also insert variables from the workflow to create the path. To do this, click the pin and select one of the available variables.
In the **File name** field, enter the name of the file to be found. You can also insert the _File Name_ using a variable from the workflow. To do this, click the pin and select one of the available variables. You then use the **Check mode** to define the result that is to be searched for.
## See Also
Common File Settings and Properties
Getting Started with API Experience Hub | MuleSoft Documentation
# Getting Started with API Experience Hub
Ensure you have the required accounts, access, and setup, then start using API Experience Hub.
## Before You Begin
Verify that you have the following required accounts and access:
  * Anypoint Platform organization in production
  * Salesforce organization
  * Organization Administrator of the main organization
  * You must either have the System Administrator profile or be a Salesforce user with the AEH_Anypoint permission set assigned in the Salesforce organization that you’re connecting to during the linking process. For more information, see Assigning Permissions.
The process of creating your API portal includes connecting with Salesforce Experience Cloud to link your Anypoint Platform organization to your Salesforce organization.
  * API Experience Hub license
  * Minimum of 2000 External Identity licenses
The current package has a minimum of 100 API access requests which requires a minimum of 2000 External Identity licenses.


To set up an organization, you can have the following Salesforce editions:
  * Unlimited Edition
  * Enterprise Edition
  * Performance Editions of Salesforce


If you don’t have the required accounts and access, issues might occur during the Salesforce linking process when creating your API portal.
## Start Using API Experience Hub
The following users can get started with these tasks:
**Administrators** :
Administrators can create an API portal in these easy steps:
  1. Set up the necessary permissions for administrators to connect to Salesforce and create a portal.
  2. Connect to Salesforce
The instance can be a new or existing Salesforce organization. To connect, specify the environment type and enter the custom Salesforce domain if you have one, log in, allow the permissions, and confirm the account.
  3. Set up and style your portal
Once you’re connected to Salesforce, set up and style the portal’s out-of-the-box pages with logos, fonts, color schemes, and more.
  4. Manage APIs by adding APIs from Exchange and setting the visibility for the API versions. Manage users by approving access requests from guest users.
  5. Preview and publish your portal
Publish the portal to make it available to your community.


**Developers** :
Developers can discover and consume APIs using these tasks:
  1. Register to access a portal
  2.   3. View API Details page
  4. Request access to an API instance
  5. View your applications that hold a contract with an API
  6. Download API specifications
  7. Inspect API Console specification and documentation


## See Also
  * User Roles, Permissions, and Profiles
  * Connecting to Salesforce
Missing or Disabled Features | MuleSoft Documentation
# Missing or Disabled Features
Cloud IDE 
Desktop IDE 
**Open Beta Release** : The **cloud IDE is in open beta**. Any use of Anypoint Code Builder in its beta state is subject to the applicable beta services terms and conditions, available from the IDE.
Some Anypoint Code Builder features can be disabled or hidden based on settings in the IDE.
For any features that aren’t working as expected, first check for problems and issues.
## MuleSoft Icon Missing from the Activity Bar
If the MuleSoft icon (see Discovering the UI) is missing from the Activity Bar, check for and address common causes.
  * Enable Anypoint Code Builder in the Activity Bar
  * Check for Restricted Mode
  * Modify Trust Settings


### Enable Anypoint Code Builder in the Activity Bar
The Activity Bar allows you to enable or disable icons.
  1. In the IDE, right-click the Activity Bar.
  2. Check for **Anypoint Code Builder** :
     * If **Anypoint Code Builder** is disabled, click **Anypoint Code Builder** to add the icon to the Activity Bar.
     * If **Anypoint Code Builder** is not present, see Check for Anypoint Extension Pack Installation. If the Anypoint Extension Pack is installed, Check for Restricted Mode.


### Check for Restricted Mode
If your project or workspace is in restricted mode, the MuleSoft icon does not appear in the Activity Bar.
To determine whether your project or workspace is trusted or in restricted mode:
  1. Open the Command Palette.
Show me how
     * Use the keyboard shortcuts:
       * Mac: Cmd+Shift+p
       * Windows: Ctrl+Shift+p
     * In the desktop IDE, select **View** > **Command Palette**.
     * In the cloud IDE, click the (menu) icon, and select **View** > **Command Palette**.
  2. Provide the following command to launch the **Workspace Trust** tab:
```
Workspace: Manage Workspace Trust
```

If the **Workspace Trust** tab says **You are in Restricted Mode** , you can click **Trust** or **Trust Parent**.
  3. After trusting, check for the MuleSoft icon in the Activity Bar.


For more information about trust settings in the IDE, see Trusting a workspace in the VS Code documentation.
### Modify Trust Settings
To modify your trust settings in the IDE:
  1. Provide the following command to launch the **Workspace Trust** tab:
```
Workspace: Configure Workspace Trust Settings
```

  2. Review and adjust the workspace settings, as needed.


## Incomplete Flow
If a flow lacks a component or contains only a trigger, such as an HTTP Listener operation or the Scheduler, an error similar to the following appears in the **Problems** panel and from the configuration XML:
```
The content of element 'flow' is not complete. One of
'{"http://www.mulesoft.org/schema/mule/core":abstract-message-processor,
"http://www.mulesoft.org/schema/mule/core":abstract-mixed-content-message-processor}'
is expected.(cvc-complex-type.2.4.b)
```

To address this issue, add processing components or connector operations to your flow, such as a Logger or HTTP Request operation. For reference documentation on specific connector and component configurations, see Reference.
Testing a Flow with a Scheduler Source | MuleSoft Documentation
# Testing a Flow with a Scheduler Source
Anypoint Code Builder 
Anypoint Studio 
Assume that you want to both test the following flow triggered by a Scheduler component and validate that your flow is being triggered correctly:
```
<flow name="schedulerFlow">
  <scheduler>
    <scheduling-strategy >
      <fixed-frequency frequency="10" timeUnit="SECONDS"/>
    </scheduling-strategy>
  </scheduler>
  <set-payload value="#['test poll']"/>
</flow>
```

  1. Enable flow sources. Because MUnit does not start any of the flow sources (such as triggers or listeners), you must configure which flow sources start for your tests.
In this example, you enable the flow that contains the Scheduler:
```
<munit:test name="test-schedulerFlowTest">
  <munit:enable-flow-sources>
    <munit:enable-flow-source value="schedulerFlow"/>
  </munit:enable-flow-sources>
</munit:test>
```

  2. Verify that flow execution is triggered by the Scheduler. To verify that the processors inside your flow are being triggered, use the `munit-tools:verify-call` processor.
Wrap `munit-tools:verify-call` inside an `until-successful` to shorten processing time when the Scheduler is not operating when you want to test.
The following example validates three times that the payload was executed at least once during the test.
```
<munit:execution>
  <until-successful maxRetries="3" millisBetweenRetries="100">
    <munit-tools:verify-call processor="set-payload" atLeast="1">
      <munit-tools:with-attributes >
        <munit-tools:with-attribute whereValue="#['test poll']" attributeName="value" />
      </munit-tools:with-attributes>
    </munit-tools:verify-call>
  </until-successful>
</munit:execution>
```



## See Also
  *   * Verify Event Processor
Workflow: Publish Assets | MuleSoft Documentation
# Workflow: Publish Assets
Anypoint Exchange provides the ability to publish assets in private Exchange instances and Exchange public portals. Publishing is the process of creating assets and making them available to consumers for discovery and reuse.
  1. Creating an Asset - Create new assets in Exchange.
  2. Editing an Asset - Add a description, additional pages, terms and conditions, and tags, and change versions.
  3. Managing Asset Lifecycle States - Manage the promotion path of an asset’s lifecycle state.
  4. Manage Versions - View the version details of an asset, add a version for an asset, change the lifecycle state of a version, and delete a version.
  5. Managing Asset Portal Resources - List, retrieve, and delete resources from an asset portal with Exchange Experience API.
  6. Simulating Data in REST APIs - Use the mocking service to test OAS or RAML REST APIs with simulated data.
  7. Downloading an Asset - Copy the asset to your computer.
  8. Managing Categories - Organize assets into categories.
  9. Managing Custom Fields - Exchange administrators and organization owners can create custom fields to extend the Exchange asset metadata model and add custom data to any type of asset.
  10. Deleting an Asset - Remove an asset.
  11. Changing the Version of an API Asset - Update the version of a RAML asset.
  12. Publishing an HTTP API Asset - If you use Private Exchange, use the HTTP API to specify a placeholder for an endpoint.
  13. Adding Policy Implementation Files to Published Policy Definition - If you published a policy definition, add the implementation files to make policy available at runtime.
  14. FAQ - Frequently Asked Questions.


## See Also
  * API Management - Publish assets programmatically.
Governing API Instances | MuleSoft Documentation
# Governing API Instances
API Manager is closely integrated with Anypoint API Governance. API Governance helps you ensure that every instance of a governed API conforms to standards, such as which policies are applied or whether a TLS context is required.
To govern an API instance:
  1. Apply a Governance Ruleset
  2. View and Fix Instance Conformance Issues in API Manager


## Apply a Governance Ruleset
To govern API instances, you must apply a governance ruleset to your desired API. To apply a governance ruleset, see Applying Rulesets to Identified APIs.
To create custom rulesets that enforce your own API management standards, see Creating Custom Governance Rulesets.
## View and Fix Instance Conformance Issues in API Manager
To view the conformance status of an API instance:
  1. Navigate to **Anypoint Platform** > **API Manager**.
  2. Click the name of the API instance for which you want to view the conformance status.
**Instance Conformance** appears in the **API Summary** pane.
  3. If the instance is not conformant, select the **Governance Report** page to view nonconformance details for each ruleset.
  4. Click **View details** for each ruleset for more information about the conformance issues.


## See Also
  *
Enable Verbose Logging | MuleSoft Documentation
# Enable Verbose Logging
You can enable verbose logging for different modules and connectors. Because of the high impact to application performance, limit verbose logging to testing and troubleshooting operations.
## Configure Verbose Logging
To configure verbose logging, add an entry to your `log4j2.xml` file, indicating the package names of the connectors or modules you want to log, and set the log level to `DEBUG`.
The following example shows how to find the package names for Anypoint Connector JMS (JMS Connector) and configure verbose logging:
  1. In the **Package Explorer** view, open the JMS Connector package library.
  2. Inside the `.jar` file, locate all Mule-related packages.
  3. Add an entry to your `log4j2.xml` file, indicating the package name and log level = `DEBUG`:
```
<Loggers>
  ...
  <AsyncLogger name="org.mule.extensions.jms" level="DEBUG"/>
  ...
</Loggers>
```



## Common Connector Package Names
The following table shows some common Anypoint Connectors and their package names so you don’t have to search for them:
Connector Name | Package Names  
---|---  
Anypoint Connector for HTTP |  `org.mule.service.http.impl.service.HttpMessageLogger`  
Anypoint Connector for Salesforce |  `org.mule.extension.salesforce`  
Anypoint Connector for FTP |  `org.mule.extension.ftp`  
Anypoint Connector for SFTP | 
  * `org.mule.extension.sftp`
  * `com.jcraft`

  
Anypoint Connector for FTPS |  `com.mulesoft.extension.ftps`  
Anypoint Connector for NetSuite | 
  * `httpclient.wire.header`
  * `httpclient.wire.content`
  * `httpclient.wire`
  * `org.apache.commons.httpclient`
  * `org.apache.http`
  * `org.mule.module.netsuite`
  * `com.netsuite.webservices`
  * `org.mule.service.http.impl.service.HttpMessageLogger`
  * `org.mule.module.netsuite.extension.internal.connection.provider.soap.JavaWSDispatcher`

  
Anypoint Connector for Amazon SQS | 
  * `org.mule.extension.sqs`
  * `org.apache.http`

  
Anypoint Connector for Microsoft Dynamics 365 | 
  * `org.mule.service.http.impl.service.HttpMessageLogger`
  * `org.apache.http`
  * `org.mule.extension.microsoftdynamics365`

  
Anypoint Connector for MuleSoft SAP |  `org.mule.modules.sap`  
Anypoint Connector for Anypoint MQ | 
  * `com.mulesoft.extension.mq`
  * `com.mulesoft.mq`

  
Anypoint Connector for Database |  `org.mule.extension.db`  
Anypoint Connector for Microsoft SharePoint (version 3.x) | 
  * `org.apache.http.wire`
  * `org.apache.http`
Invoke RPA Services from Composer | MuleSoft Documentation
# Invoke RPA Services from Composer
MuleSoft RPA Connector for MuleSoft Composer enables you to invoke RPA processes and configure polling triggers from your Composer flows. You can use the RPA connector to invoke an RPA process, pass data to an RPA process and retrieve results from the RPA process.
The RPA connector for MuleSoft Composer enables you to:
  * **Invoke RPA Process**
This feature enables you to make sync and async calls to RPA processes.
    * Sync calls wait for the RPA process to finish before continuing with the Composer flow execution.
    * Async calls invoke an RPA process and continue the Composer flow execution while the RPA process executes in parallel.
  * **RPA Poll Trigger**
This feature enables you to create listeners that check the status of an specific RPA process. When the RPA process finishes the execution, the polling trigger starts processing the configured activities in the Composer flow. This functionality is useful for retrieving results from RPA processes that take a long time to finish and are not suitable for synchronous consumption.


Refer to the MuleSoft RPA Connector for Composer documentation for configuration and usage details.
## Before You Begin
  * Before you can invoke an RPA process, you must publish it to Exchange. See Create an invocable run configuration for instructions to create and publish an invocable RPA process.
  * Using the RPA connector features in Composer requires you to connect with your MuleSoft RPA account by configuring the corresponding API key and RPA API URL:
    * See Create an API Key for a User for instructions to create API Keys.
    * The RPA API URL is the RPA Manager URL with `/rpa/api/v1` appended to it. For example, if your RPA Manager URL is `https://myOrg.rpa.mulesoft.com`, then the value to set in the RPA API URL field is `https://myOrg.rpa.mulesoft.com/rpa/api/v1`.


## See Also
  * MuleSoft Composer: Getting Started
IP Allowlist Policy | MuleSoft Documentation
# IP Allowlist Policy
The IP Allowlist policy allows you to create an explicit list of IP addresses that can access your deployed endpoints. IP addresses that aren’t on this list are rejected.
If you have an IP Allowlist policy assigned, you need to add all IP addresses that are coming through your exposed endpoint to the list.
IP Allowlist policy violations escalate to authentication errors for the DoS policy. You can configure the way protocol errors are handled in a DoS policy.
This source is IP address based. If an attacker can spoof the source IP address, these measures cannot prevent the attack.   
---  
## Differences with API Gateway Policies
The IP Allowlist policy is a list of all IP addresses allowed to connect to your endpoint, and this list applies to all applications. You can set up an API Gateway Allowlist policy per API list.
### Example
You can set up an IP Allowlist policy to allow `a.a.a.a`, `y.y.y.y`, and `z.z.z.z`. Then, API-1 (`/api1`) uses an API Allowlist policy that allows `x.x.x.x`, and API-2 (`/api2`) uses another policy that allows `y.y.y.y` and `z.z.z.z`.
  * IP Address `w.w.w.w` is rejected by both APIs, because it’s not listed in the IP Allowlist policy.
  * IP Address `y.y.y.y` requesting `/api1`, is allowed at the IP Allowlist policy level, and rejected by the API Allowlist policy at `/api1`.
  * IP Address `y.y.y.y` requesting `/api2`, is allowed at the IP Allowlist policy level, and allowed by the API Allowlist policy at `/api2`.


## Prerequisites
To configure and use the security policies, you must:
  * Have the Anypoint Security - Edge entitlement for your Anypoint Platform account.
If you don’t see **Security** in **Management Center** , contact your customer success manager to enable Anypoint Security for your account.
  * Have Runtime Fabric on VMs/Bare Metal with inbound traffic configured. Anypoint Runtime Fabric is a container service that automates the deployment and orchestration of Mule apps and API gateways.
Refer to the Runtime Fabric documentation.
Runtime Fabric requires the Anypoint Integration Advanced package or a Platinum or Titanium subscription to Anypoint Platform.
  * Enable inbound traffic on Runtime Fabric to allow Mule apps and API gateways to listen on inbound connections.


## Configure an IP Allowlist Policy
  1. Navigate to **Anypoint Security**.
  2. Click **Create Policy** , and select **IP Allowlist**.
  3. Add a name for your policy in the **Name** field.
  4. Under **IP Allowlist** , click **Add IP**.
  5. Insert the range of IP addresses to the list. You must use the CIDR format for a range of IP addresses. For example, using the IP address `10.111.0.0/24` lists the addresses from `10.111.0.0` to `10.111.0.254`. To add more IP address ranges, click **Add IP** again.
  6. Click **Save Policy**.


## See Also
  *   * HTTP Limits Policy
  * Denial Of Service Policy
Amazon SNS Connector 4.5 - Get Started | MuleSoft Documentation
# Amazon SNS Connector 4.5 - Get Started
Amazon SNS Connector v4.5
Anypoint Connector for Amazon SNS (Amazon SNS Connector) provides connectivity to the Amazon Simple Notification Service (Amazon SNS) API, enabling you to build distributed web-enabled applications. Mule apps can use Amazon SNS Connector to easily push real-time notification messages to interested subscribers over multiple delivery protocols.
Release Notes: Amazon SNS Connector Release Notes Exchange: Amazon SNS Connector in Anypoint Exchange
This connector does not support the use of FIFO queues. It allows publishing only to standard queues.   
---  
## About Connectors
Anypoint Connectors are Mule runtime engine extensions that enable you to connect to APIs and resources on external systems, such as Salesforce, Amazon SNS, ServiceNow, and Twitter.
## Before You Begin
Before creating an app, you must:
  * Have access to the Amazon SNS target resource and Anypoint Platform.
  * Understand how to create a Mule app using Anypoint Studio.
  * Have AWS Identity and Access Management (IAM) credentials.


### Compatibility
Amazon SNS connector is compatible with:
Application/Service | Version  
---|---  
Mule Runtime  
AWS SDK for Java  
Anypoint Studio |  7.0 or higher  
## Audience
  * Starting user
To create your Mule app, see Studio Configuration. See Additional Configuration Information to see what permissions AWS Identity and Access Management (IAM) users must have to use Amazon SNS Connector.
The Examples topic provides one or more use cases for using this connector.
  * Power user
Read the XML and Maven Support, Additional Configuration Information, and Examples topics.


## Next Step
After you have met the prerequisites, you are ready to create an app with Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * MuleSoft Help Center
Managing Online Custom Policies | MuleSoft Documentation
# Managing Online Custom Policies
To develop and manage online custom policies, see the following topics:
  * Packaging a Custom Policy
  * Uploading a Custom Policy to Exchange
  * Reviewing HTTP Policy Transform Extension Concepts
  * Caching a Custom Policy for Mule 4
toLocalTimeOrNull | MuleSoft Documentation
# toLocalTimeOrNull
## toLocalTimeOrNull(str: String, formatters: Array<Formatter>): LocalTime | Null
Transforms a `String` value into a `LocalTime` value using the first `Formatter` that matches with the given value to transform.
If none of the `Formatter` matches with the given value, the function returns a `null` value.
_Introduced in DataWeave version 2.5.0._
### Parameters
Name | Type | Description  
---|---|---  
The `String` value to transform into a `LocalTime` value.  
`formatters` | Array<Formatter> | The `array` of formatting to use on the `LocalTime` value.  
### Example
This example shows how `toLocalTimeOrNull` behaves with different inputs. It produces output in the `application/dw` format.
#### Source
```
%dw 2.0
import * from dw::util::Coercions
output application/dw
---
{
 a: toLocalTimeOrNull("23:57:59", [{format: "HH:mm:ss.n"}, {format: "HH:mm:ss"}]),
 b: toLocalTimeOrNull("23:57:59", [{format: "HH:mm:ss.n"}])
}
```

#### Output
```
{
 a: |23:57:59| as LocalTime {format: "HH:mm:ss"},
 b: null
}
```
sin | MuleSoft Documentation
# sin
## sin(angle: Number): Number
Returns the trigonometric sine of an angle from a given number of radians.
_Introduced in DataWeave version 2.4.0._
### Parameters
Name | Description  
---|---  
Number of radians in an angle.  
### Example
This example shows how `sin` behaves with different inputs.
#### Source
```
%dw 2.0
import * from dw::util::Math
output application/json
---
{
 "sin0": sin(0),
 "sin13": sin(0.13),
 "sin-1": sin(-1)
}
```

#### Output
```
{
 "sin0": 0.0,
 "sin13": 0.12963414261969486,
 "sin-1": -0.8414709848078965
}
```
Configuring Managed Flex Gateway | MuleSoft Documentation
# Configuring Managed Flex Gateway
  * Configuring Inbound TLS for Managed Flex Gateway - CloudHub 2.0 private spaces enable you to protect your API instances with inbound TLS and mTLS.
  * Configuring Outbound TLS for Managed Flex Gateway - Managed Flex Gateway on CloudHub 2.0 enables you to configure TLS and mTLS contexts for each upstream.
  * Configuring Distributed Tracing for Managed Flex Gateway - Managed Flex Gateway on CloudHub 2.0 enables you to configure distributed tracing.
Microsoft Outlook 365 Connector 1.3 | MuleSoft Documentation
# Microsoft Outlook 365 Connector 1.3
Anypoint Connector for Microsoft Outlook 365 (Outlook 365 Connector) enables you to integrate with the Microsoft Outlook 365 service.
For compatibility information and fixed issues, refer to the Microsoft Outlook 365 Connector Release Notes.
## Before You Begin
To use this connector, you must be familiar with:
  * Microsoft Outlook 365 API
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Credentials to access the target resource
  * Anypoint Studio version 7.3.5 or later


## Common Use Cases for the Connector
Outlook 365 Connector currently provides email and calendar capabilities.
## Authentication Types
Outlook 365 Connector uses the following authentication methods:
  * OAuth 2.0 authorization code grant, which is used in applications that are installed on a device to gain access to protected resources.
  * OAuth 2.0 client credentials grant, which uses the identity of the application to access web-hosted resources.


## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * Microsoft Outlook 365 Connector Reference
  * MuleSoft Help Center
Read PDF File | MuleSoft Documentation
# Read PDF File
With the _Read PDF File_ action step, you can read text from a PDF file.
## Properties
  * **File Settings**
    * **Directory Path** (String): Path to the folder in which the PDF file is located.
    * **File Name** (String): Name of the PDF file.
    * **Password protected** (Boolean): Select this option if the PDF file is password protected.
  * **Read Mode**
    * **Read form field data and annotations** : Select this option to read data from form fields and annotations in the PDF file.
    * **Read Mode** : Read mode for the PDF document. Available modes: **Read entire file** , **Read page range** , and **Read text in selected area**.
    * **Read text from page** (Integer): Read the file starting from this page.
    * **Read text to page** (Integer): Read the file up to this page.
    * **Read to end of file** (Boolean): Read until the end of the file.


## Inbound Variables
  * **Directory Path**
  * **File Name**
  * **Password**
  * **Read text from page**
  * **Read text to page**


## Outbound Variables
  * **ReadText** (String): The content of the text that is read.
  * **Form field data** (JSON): The form field data extracted from the file as key-value pairs.
  * **Annotations** (String): The annotations extracted from the file.


## Wizard
The wizard is split into two areas **File Settings** and **Read Mode**.
In the **File Settings** , you specify the path to the folder in which the file is located and the name of the file.
In the **Read Mode** area, there are various modes available for reading a PDF file:
  * With **Read entire file** , the entire text of the document is read.
  * With **Read page range** , you can specify a specific range that is to be read. If the option **Read to end file** is selected, the PDF is read to the end.


  * With **Read text in selected area** , you can read the text from a selected area in the document.
For this, you must select a PDF file under File Settings. Then click on **Define Area** and the PDF is opened in a separate window.


Here you can select the required area using the mouse.
When you have selected the area, close the window with _Save_.
If you have selected an area to be read with one of the various Read Modes, you can use the **Test button** at the bottom right of the wizard in the action step to display the result.