# mulesoft CloudHub - Full Documentation --- product: CloudHub --- # Add Certificates to a Dedicated Load Balancer > For the full documentation index, see: https://docs.mulesoft.com/llms.txt When you create a dedicated load balancer (DLB), you must add at least one certificate. You can add additional certificates to a DLB using Runtime Manager or the command-line interface. The certificate must be contained in one unencrypted, PEM-encoded file. If you are migrating a certificate created with Windows tools: - Remove all "Bag Attributes" and "Key Attributes". - Convert all end-of-line characters from `\r\n` to `\n`, if necessary. This file must contain the entire certificate chain ordered sequentially:
CertificateExample

The Primary Certificate

-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----

The Intermediate Certificate

-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: DigiCertCA.crt)
-----END CERTIFICATE-----

You don’t need to include the root certificate in the certificate chain. However, ensure that you include the ASCII armor in each certificate. ## Add a Certificate to an Existing Load Balancer You can add a certificate to an existing DLB using Runtime Manager or the command-line interface. To add a certificate using Runtime Manager: 1. From Anypoint Platform, click **Runtime Manager**. 2. Click **Load Balancers**, and then click the load balancer name. 3. In the **Certificates** tab, click **Add certificate**. ![Add certificate option in the load balancer settings page](/mulesoft/current/en-us/cloudhub/_images/lb-cert-upload-update.png) Figure 1. The arrow shows the **Add certificate** option in the **Certificates** tab. 4. Select **Choose File** to upload the public key and private key files, such as: - Public key file A PEM file that includes both the server certificate and the intermediate CA certificate, for example, `example-com-crt.pem` - Private key file A PEM file that contains a passphrase-less private key, for example, `example-com-private-noencrypt.pem` To create the passphrase-less file, run a command like the following: ```console openssl rsa -in example-com-private.pem -out example-com-private_noencrypt.pem ``` 5. Click **Save Certificate**. To add a certificate to an existing DLB using the CLI: ```console cloudhub load-balancer ssl-endpoint add myLB_name example-com-crt.pem example-com-private.pem ``` ## Replace a Certificate on an Existing Load Balancer You can replace a certificate on an existing DLB when the certificate is expiring or needs to be updated. To replace a certificate using Runtime Manager: 1. From Anypoint Platform, click **Runtime Manager**. 2. Click **Load Balancers**, and then click the load balancer name. 3. In the **Certificates** tab, click the certificate name. 4. Select **Choose File** to upload the public key and private key files, such as: - Public key file A PEM file that includes both the server certificate and the intermediate CA certificate, for example, `new-example-com-crt.pem` - Private key file: A PEM file that contains a passphrase-less private key, for example, `new-example-com-private-noencrypt.pem` To create the passphrase-less file, run a command like the following: ```console openssl rsa -in new-example-com-private.pem -out new-example-com-private_noencrypt.pem ``` 5. Click **Done Editing**. 6. Click **Apply Changes**. ## See Also - [Configure SSL Endpoints](https://docs.mulesoft.com/cloudhub/lb-ssl-endpoints) - [Create a Load Balancer with Runtime Manager](https://docs.mulesoft.com/cloudhub/lb-create-arm) - [Create a Load Balancer with the Anypoint Platform CLI](https://docs.mulesoft.com/cloudhub/lb-create-cli) - [cloudhub load-balancer ssl-endpoint add](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-ssl-endpoint-add) --- product: CloudHub --- # Anypoint VPC Connectivity Methods > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can connect an Anypoint Virtual Private Cloud (Anypoint VPC) to your private network using these methods: - IPsec tunnel - Transit gateway attachment - VPC peering To connect your Anypoint VPC using VPC peering, contact your MuleSoft Support representative. - AWS Direct Connect To connect your Anypoint VPC using AWS Direct Connect, contact your MuleSoft Support representative. > [!NOTE] A maximum of 95 route table entries is allowed per VPC, regardless of the number of > connections. To avoid exceeding the limit, consolidate networks to the fewest number possible. ## IPsec Tunnel You can use an IPsec tunnel with network-to-network configuration to connect your on-premises data centers to your Anypoint VPC. An IPsec VPN tunnel is generally the recommended solution for VPC to on-premises connectivity, as it provides a standardized, secure way to connect. This method also integrates well with existing IT infrastructure such as routers and appliances. ![IPsec Tunnel Overview](/mulesoft/current/en-us/cloudhub/_images/vpc-overview-ipsec.png) > [!NOTE] If you are using a legacy VPN, migrate to Anypoint VPN before making changes. To create an Anypoint VPN connection to your network, see [Anypoint VPN](https://docs.mulesoft.com/cloudhub/vpn-about). ## Transit Gateway Attachments AWS Transit Gateway acts as a cloud router in AWS, simplifying network access between VPCs, on-premises data centers, and third-party software, while providing increased visibility and control over the network. Transit gateways effectively merge your organization’s cloud resources and on-premises datacenters into one network topology. On CloudHub, you can take advantage of this network simplification by securely attaching Anypoint VPC to an AWS Transit Gateway in your AWS account. To use transit gateway attachments, your Anypoint VPC and AWS transit gateway must be in the same region. ![Transit Gateway Overview](/mulesoft/current/en-us/cloudhub/_images/vpc-overview-tgw.png) To attach your Anypoint VPC to your transit gateway, see [Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-about). ## VPC Peering VPC peering provides a connection between two VPCs. In this case, it pairs your private Amazon VPC directly to your Anypoint VPC. This enables you to route traffic between the two VPCs so they can communicate as though they are in the same network. ![VPC Peering Overview](/mulesoft/current/en-us/cloudhub/_images/vpc-overview-peering.png) > [!NOTE] To use VPC Peering, your AWS and Anypoint VPCs must be located in the same region. ## AWS Direct Connect To create a Direct Connect connection to Anypoint VPC, create or use an existing AWS Transit Gateway in your AWS account and set up the Direct Connect connection to the Transit Gateway. Then, attach Anypoint VPC to the Transit Gateway and configure the required routing to enable Anypoint VPC on-premises connectivity. On your AWS account, attach Direct Connect connections to a Direct Connect Gateway and associate that Direct Connect Gateway with your Transit Gateway. Anypoint VPC attaches to the Transit Gateway. ![AWS Direct Connect Overview](/mulesoft/current/en-us/cloudhub/_images/vpc-overview-dx.png) > [!NOTE] To use Direct Connect, your AWS Direct Connect Partner and the Anypoint VPCs must be > located in the same region. Direct Connect requires the Border Gateway Protocol (BGP) for dynamic > routing. Static routing isn’t supported. ## Direct Connect High Availability A single Direct Connect connection isn’t sufficient for high availability. A failure at the facility, hardware, or connection level can cause total connectivity loss. For workloads that require high availability, use multiple Direct Connect connections that enter the AWS Global Network at two AWS Direct Connect locations and converge at a Transit Gateway in your AWS account. Attach Anypoint VPC to that Transit Gateway. ![High Availability Direct Connect for Anypoint VPC](/mulesoft/current/en-us/cloudhub/_images/vpc-overview-dx-ha.png) This HA topology uses these components: - **On-premises infrastructure** Network traffic originates from your on-premises environment. Use a single data center with redundant edge routers, or distribute traffic across multiple physical data centers. - **Two AWS Direct Connect locations** To provide path redundancy, Direct Connect connections must enter the AWS Global Network at two AWS facilities. See [AWS Direct Connect Locations](https://aws.amazon.com/directconnect/locations/). - **AWS Transit Gateway** The Transit Gateway in your AWS account acts as a centralized cloud router. Attach both Direct Connect connections to a Direct Connect Gateway, and associate that Direct Connect Gateway with the Transit Gateway. - **Anypoint VPC** Attach Anypoint VPC to your Transit Gateway to route traffic privately to your on-premises resources. ### Prerequisites Before you configure Direct Connect high availability: - Provision the Transit Gateway and Anypoint VPC in the same AWS region. - Use BGP for dynamic routing. Static routing isn’t supported. - Plan Direct Connect connections at two AWS Direct Connect locations. - Stay within the 95 route table entries allowed per Anypoint VPC. Consolidate networks with summary routes so you don’t exceed the limit. ### Configure Direct Connect High Availability 1. In your AWS account, create a Transit Gateway in the same region as your Anypoint VPC. 2. Work with AWS or your AWS Direct Connect Partner to provision dedicated or hosted connections at two physical locations: 1. Establish connection A between your on-premises network and AWS Direct Connect Location 1. 2. Establish connection B between your on-premises network and AWS Direct Connect Location 2. 3. Create the virtual interfaces (VIFs) required to attach both Direct Connect connections to your Transit Gateway through a Direct Connect Gateway. 3. Enable BGP over both Direct Connect connections. To manage traffic as active/passive or active/active, configure your on-premises edge routers. For an active/standby setup, use AS path prepending on the secondary connection so it’s a less preferred route during normal operations. See [Routing policies for Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/routing-and-bgp.html#private-routing-policies) in the AWS documentation. 4. Verify that routes propagate from the Direct Connect Gateway into the Transit Gateway route table associated with Anypoint VPC. 5. Attach Anypoint VPC to the Transit Gateway. See [Attach to Transit Gateways](https://docs.mulesoft.com/cloudhub/tgw-attach-arm). 6. In your Transit Gateway route tables, route traffic destined for your on-premises network over the Direct Connect links, and route traffic destined for Anypoint VPC to the VPC attachment. ### Failover Behavior Because this architecture uses BGP for dynamic routing across redundant paths, failover is automatic: - If the primary network link, on-premises router, or AWS Direct Connect location fails, BGP withdraws the primary routes. - If the Transit Gateway moves active traffic to the secondary Direct Connect connection. - When the primary connection is restored, BGP re-advertises the preferred routes and traffic returns to its normal path. You don’t need to update routing manually in CloudHub or AWS. > [!IMPORTANT] Before deleting a VPC that uses Direct Connect, contact MuleSoft Support to remove > the Direct Connect connection. > > MuleSoft Support manually provisions and removes Direct Connect connections. If you delete a VPC > before removing Direct Connect, the deletion can fail and leave resources (VPCs, virtual gateway > attachments, and hosted connections) in AWS. ## See Also - [Request VPC Connectivity to Your Network](https://docs.mulesoft.com/cloudhub/to-request-vpc-connectivity) - [Attach to Transit Gateways](https://docs.mulesoft.com/cloudhub/tgw-attach-arm) - [Anypoint VPN](https://docs.mulesoft.com/cloudhub/vpn-about) - [Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-about) --- product: CloudHub --- # Anypoint VPN > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Anypoint VPN to create a secure connection between your MuleSoft Virtual Private Cloud (VPC) and your on-premises network. You can create multiple site-to-site VPNs if required. > [!NOTE] The number of VPNs you can create depends on the VPN entitlements available to your > account. Contact your MuleSoft account representative if you don’t know how many VPN entitlements > you have on your account. Anypoint VPN supports site-to-site Internet Protocol security (IPsec) connections. A physical or software appliance, called a VPN endpoint, is the terminator on your side of the connection. The MuleSoft side of the connection is an implementation of a virtual private gateway (VGW). The MuleSoft VGW is associated with a single MuleSoft VPC but can support up to 10 VPN connections. > [!NOTE] MuleSoft implementation capabilities may vary from other VGW offerings. ## Anypoint VPN Features Each Anypoint VPN connection consists of two tunnels that enable you to connect to a single public IP address at a remote location. To configure connectivity to an additional public IP address at a remote location, you must create two VPN connections. A single VPN provides increased availability for your MuleSoft VPC. Routine maintenance can briefly disable one of the two tunnels of your VPN connection. During this time, your VPN connection automatically fails over to the second tunnel so access is not interrupted. For this reason, both tunnels must be configured on your endpoint. Tunnel selection depends on your VPN endpoint capabilities and the routing type selection. The MuleSoft VGW implementation supports a maximum throughput of 1.25 Gbps. Multiple VPN connections to the same VPC share the throughput capabilities of a single VGW. The VPN connection throughput depends on several factors, such as the capability of your VPN endpoint, the capacity of the connection, the average packet size, the protocol, and network latency between the gateways. ### IPsec Settings Anypoint VPN supports any combination of the following IPsec settings: - IKE version 1 - IKE version 2 for route-based VPNs only - AES 128 or 256-bit encryption operating in the CBC and GCM - SHA or SHA-2 (256, 384, 512) hashing - Diffie-Hellman Phase 1 groups 2, 14-24 - Diffie-Hellman Phase 2 groups 2, 5, 14-24 - Timeouts for IKEv1 - IKE (Phase 1) Lifetime: 28800 seconds (8 hours) - IPsec (Phase 2) Lifetime: 3600 seconds (1 hour) - Timeouts for IKEv2 - IKE (Phase 1) Lifetime: 28000 seconds (7 hours and 50 minutes) - IPsec (Phase 2) Lifetime: 3000 seconds (50 minutes) > [!NOTE] Some of these IPsec settings are not supported in Government Cloud. For specific > Government Cloud VPN settings, see [Anypoint VPN Settings](https://docs.mulesoft.com/gov-cloud/gov-cloud-anypoint-vpn). ### Anypoint VPN Routing Anypoint VPN supports dynamic or static routing for VPN connections. - **Dynamic routing** Your device uses Border Gateway Protocol (BGP) to advertise routes to Anypoint VPN. Use BGP routing if your device supports this protocol. - **Static routing** - Requires you to specify the routes (subnets) in your network that are accessible through Anypoint VPN. > [!NOTE] A maximum of 95 route table entries is permitted per VPC, regardless of the number of > VPN connections. Consolidate networks to the fewest number possible to avoid exceeding the > limit. ### Limitations Anypoint VPN does not support these features and configurations: - Network Address Translation (NAT) - IPv6 - IKEv2 with policy-based VPNs - A single VPC with both AWS Direct Connect and Anypoint VPN connections - Advertising a default route (0.0.0.0/0) over BGP or static routing ## Requirements for Static VPN Connections To create a static VPN connection, your VPN endpoint must be able to: - Establish IKE Security Associations using a Pre-Shared Key (PSK) - Establish IPsec Security Associations in Tunnel mode - Utilize any combination of IPsec settings that MuleSoft supports - Fragment IP packets before encryption You must fragment packets that are too large to transmit. Your VPN device must be able to fragment packets before encapsulation. - Use one Security Association (SA) pair per tunnel Anypoint VPN supports one unique SA pair per tunnel (a pair refers to one inbound and one outbound connection). Some policy-based devices create an SA for each ACL (access-control list) entry. In this situation, you must consolidate your rules and then filter unwanted traffic. - Use IPsec Dead Peer Detection (DPD) DPD allows devices to rapidly identify when network conditions change. You can enable DPD on the MuleSoft endpoint using `DPD Interval: 10` and `DPD Retries: 3`. - Allow asymmetric routing Asymmetric routing occurs when routing policies send traffic from your network to the VPC through one tunnel and traffic returns from the VPC through the other tunnel. The MuleSoft VPN endpoint selects the tunnel using an internal algorithm, making the return path dynamic. If your device uses an active/active tunnel configuration, you must allow asymmetric routing for each Anypoint VPN connection. - For IPsec, enable perfect forward secrecy (PFS) with the above Phase 2 Diffie-Hellman groups ## Requirements for Dynamic VPN Connections To create a dynamic VPN connection, in addition to the static VPN connection requirements, the VPN endpoint must be able to: - Establish BGP peering - Support route-based VPNs (bind tunnels to logical interfaces) - For IPsec, enable perfect forward secrecy (PFS) with the above Phase 2 Diffie-Hellman groups ## Recommendations - Adjust the maximum segment size of TCP packets entering the VPN tunnel. VPN headers require additional space, which reduces the amount of space available for data. To limit the impact of this behavior, configure your endpoint with TCP MSS Adjustment: 1387 bytes. - Reset the `DF` flag on packets. Packets might carry a Don’t Fragment (`DF`) flag, indicating that the packet must not be fragmented. Some VPN devices can override the `DF` flag and fragment packets unconditionally when required. If available, enable the setting `Clear Don’t Fragment (DF) Bit`. ## Tested Network Devices The following network devices are known to work with the Anypoint VPN. If your device does not appear in the list of tested devices, check the [requirements](#vpn_requirements) to verify that your device is suitable for use with Anypoint VPN.
HardwareSoftware

Check Point Security Gateway

R77.10 or later

Cisco ASA

ASA 8.2 or later

Cisco IOS

Cisco IOS 12.4 or later

Dell SonicWALL

SonicOS 5.9 or later

Fortinet Fortigate 40+ Series

FortiOS 4.0 or later

Juniper J-Series Service Router

JunOS 9.5 or later

Juniper SRX-Series Services Gateway

JunOS 11.0 or later

Juniper SSG

ScreenOS 6.1 or 6.2 or later

Juniper ISG

ScreenOS 6.1 or 6.2 or later

Netgate pfSense

OS 2.2.5 or later

Palo Alto Networks

PANOS 4.1.2 or later

Yamaha

  • RT107e

  • RTX1200

  • RTX1210

  • RTX1500

  • RTX3000

  • SRT100

Microsoft Windows Server

  • 2008 R2 or later

  • 2012 R2 or later

Zyxel Zywall Series

  • 4.20 or later for statically routed Anypoint VPN connections

  • 4.30 or later for dynamically routed Anypoint VPN connections

If there is no specific **Device Configuration** file downloadable from the **Get VPN Config** menu for any of the listed devices, use the **Generic** VPN configuration file. ![Generic VPN configuration file option](/mulesoft/current/en-us/cloudhub/_images/vpn-device-generic-config.png) ## See Also - [Create an Anypoint VPN Connection](https://docs.mulesoft.com/cloudhub/vpn-create-arm) - [Anypoint VPN High Availability](https://docs.mulesoft.com/cloudhub/vpn-high-availability) - [Anypoint VPN Knowledge Articles](https://help.salesforce.com/s/articleView?id=001117281&type=1) --- product: CloudHub --- # Anypoint VPN downtime risk > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Every VPN provisioned in Mulesoft has an associated risk that depends on the state of the VPN tunnels. For high downtime risk VPNs, deploy a [high-availability VPN](https://docs.mulesoft.com/cloudhub/vpn-high-availability) solution to avoid any downtime associated with AWS-delivered auto-updates. See [VPN Maintenance](https://docs.mulesoft.com/cloudhub/vpn-maintenance) for more details. ## Downtime Risk types VPN downtime risk depends on the number of UP tunnels. There are three types of downtime risks: - UNAVAILABLE - LOW - HIGH If both tunnels of the VPN are down, the VPN downtime risk is **UNAVAILABLE**, since no data is going through the VPN. If the VPN has one tunnel UP and the other one DOWN, then the VPN has **HIGH** downtime risk. If the VPN has both tunnels UP, then the VPN has **LOW** downtime risk. ## Check the VPN Risk in Anypoint Platform You can check the downtime risk associated with your VPNs in Anypoint Platform. To check your VPN downtime risk: 1. Sign in to Anypoint Platform. 2. Go to Runtime Manager. 3. Open the **VPNs** tab. 4. Check the **Downtime Risk** column for your VPN. ![VPN Downtime Risk UI](/mulesoft/current/en-us/cloudhub/_images/vpn-downtime-risk.png) ## See Also - [Anypoint VPN High Availability](https://docs.mulesoft.com/cloudhub/vpn-high-availability) - [VPN Maintenance](https://docs.mulesoft.com/cloudhub/vpn-maintenance) - [Using Redundant Site-to-Site VPN Connections to Provide Failover](https://docs.aws.amazon.com/vpn/latest/s2svpn/vpn-redundant-connection.html) --- product: CloudHub --- # Anypoint VPN High Availability > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Your VPN connection consists of two VPN tunnels that terminate in different Availability Zones to provide increased availability to your VPC. During a mandatory upgrade, AWS might briefly disable one of the two tunnels of your VPN connection. When you configure your customer gateway, configure both tunnels for redundancy. When one tunnel becomes unavailable (for example, it is down for maintenance), AWS automatically routes network traffic to the other available tunnel for that specific VPN connection. When AWS performs updates on one VPN tunnel, it sets a lower outbound multi-exit discriminator (MED) value on the other tunnel to ensure failover. The AWS Site-to-Site VPN [SLA](https://aws.amazon.com/vpn/site-to-site-vpn-sla/) requires two VPN endpoints for each connection. Having redundant Anypoint VPN tunnels configured helps to prevent MuleSoft service downtime during the AWS auto-patching window. To ensure that your applications and related operations can handle Anypoint VPN updates, issues, and individual customer gateway failures, implement High Availability with redundant Anypoint VPN connections. Each Anypoint VPN connection consists of two endpoints, providing High Availability (HA) on the MuleSoft side by default. ## Prerequisites - Sufficient entitlement for each VPN connection - Two VPN endpoints using different public IP addresses - Two VPN connections in Runtime Manager ## Configure High Availability with Anypoint VPN The following example shows a High Availability VPN topology that uses a single Anypoint VPC and two VPN connections. A MuleSoft Virtual Private Gateway (VGW) supports one Anypoint VPC association and up to 10 VPN connections. You can locate your VPN Gateways in the same data center or in different physical locations. To eliminate all single points of failure, the two customer gateways should be in different data centers, and preferably in different cities. Ideally, use your Disaster Recovery location for the second gateway. ![VPN High Availability Topology](/mulesoft/current/en-us/cloudhub/_images/vpn-ha-topology.png) Use BGP routing to advertise the same routes via VPN-1 and VPN-2. For instructions on how to control path selection via the routing protocol, see [Anypoint VPN Path Selection using BGP Routing](https://help.salesforce.com/s/articleView?id=001116889&type=1). In this scenario, the VPN Gateways are configured to prefer VPN-1 Tunnel-1, then VPN-1 Tunnel-2, then VPN-2 Tunnel-1, and finally VPN-2 Tunnel-2. This configuration produces an automatic failover to another tunnel and another VPN in the event of a VPN connectivity issue. This makes the Anypoint VPN solution more resilient and robust. High Availability VPN connections also support static routing, in which you establish a VPN-2 to work as a redundant, standby connection in the event of a failure with VPN-1. ## See Also - [Create an Anypoint VPN Connection](https://docs.mulesoft.com/cloudhub/vpn-create-arm) - [Anypoint VPN Downtime Risk](https://docs.mulesoft.com/cloudhub/vpn-downtime-risk) - [Using Redundant Site-to-Site VPN Connections to Provide Failover](https://docs.aws.amazon.com/vpn/latest/s2svpn/vpn-redundant-connection.html) - [Continue to Have Redundant Pair of VPNs as Well](https://docs.aws.amazon.com/vpn/latest/s2svpn/disaster-recovery-resiliency.html) - [How to Calculate VPC and VPN License Requirements](https://help.salesforce.com/s/articleView?id=001114580&type=1) --- product: CloudHub --- # Anypoint VPN Maintenance > For the full documentation index, see: https://docs.mulesoft.com/llms.txt ## Anypoint VPN Update MuleSoft Anypoint VPN is a managed service that is underpinned by AWS Site-to-Site VPN connections. Using a VPN is important for any integrations or flows that require connectivity to your on-premises or external platforms. Updating an Anypoint VPN that is not set up with at least a pair of tunnels that use BGP routing will cause downtime. See [Anypoint VPN High Availability](https://docs.mulesoft.com/cloudhub/vpn-high-availability) for more information. After the October 2022 quarterly maintenance window, Anypoint VPN will no longer support quarterly customer self-upgrades. From this point forward, updates made to Anypoint VPN will adhere to AWS’s standard continuous upgrade process. Upgrades will be applied on-demand, with no published maintenance window schedule, no customer opt-in self-upgrade capabilities, with **potential (limited) downtime for customers that do not have a** [High Availability (HA) VPN implementation](https://docs.mulesoft.com/cloudhub/vpn-high-availability). Deploy a [high-availability VPN](https://docs.mulesoft.com/cloudhub/vpn-high-availability) solution to avoid any downtime associated with these AWS-delivered security updates. Review the following sections for recommendations and troubleshooting information. ## Avoiding or Reducing Downtime During an On-demand Maintenance Mule applications that use Anypoint VPN connectivity are impacted during an on-demand maintenance. The impact on the Anypoint VPN varies depending on the VPN configuration: - An Anypoint VPN with at least one pair of tunnels configured with BGP routing and DPD (Dead Peer Detection) to reset the tunnels when triggered incurs minimal downtime. The switchover takes a few seconds. - An Anypoint VPN tunnel pair configured with static routing incurs some downtime before reconnection. The reconnection takes longer if you do not have an automated failover mechanism to detect failed tunnels. - For an Anypoint VPN configured without BGP routing or a failover mechanism or with only one tunnel configured, the outage is up to 60 minutes long while the update occurs and the original tunnel comes back up. ## Troubleshoot Issues During an Anypoint VPN On-demand Maintenance These are some of the possible issues you may encounter during an on-demand maintenance: ### Tunnels Don’t Come Up If the tunnels are not back up within 10-15 minutes at any point in time, try restarting your end of the tunnels to bring them back up. If your VPN is configured with static routing, try generating "interesting traffic" (traffic that should be encrypted over the Anypoint VPN connection) towards the Anypoint VPN to bring up the VPN. See [How to Generate Interesting Traffic for Anypoint VPN](https://help.salesforce.com/s/articleView?id=001117182&type=1) for more information. ### Tunnel Goes Down Due to Inactivity If there is no traffic over the VPN tunnel, the VPN goes down due to inactivity. In this case, generate interesting traffic. We recommend that you move towards BGP. ### IKE Phase Lifetimes Mismatch #### If You Use IKEv2: To maintain a reliable tunnel operation after an on-demand maintenance, ensure that the IKEv2 Phase 1 and Phase 2 lifetimes are set as described in [IPsec Settings](https://docs.mulesoft.com/cloudhub/vpn-about#ipsec-settings): - IKE Phase 1 lifetime: 28000 seconds - IKE Phase 2 lifetime: 3000 second > [!NOTE] AWS documentation states 28800 seconds for the IKE Phase 1 lifetime, and 3600 seconds for > the IKE Phase 2 lifetime. MuleSoft recommends the 28000/3000 combination for your firewall device > to timeout first and control the rekey process. #### If You Use IKEv1: If you use IKEv1, use the default configuration: 28800 seconds for the Phase 1 lifetime, and 3600 seconds for the Phase 2 lifetime. ### Anypoint VPN Goes Down Periodically Due to PFS not Enabled for IPsec Phase 2 If you use Azure VPN, ensure that PFS is enabled and adjust the lifetimes for Phase 2. For more information, see [Anypoint VPN to Azure keeps going down every hour](https://help.salesforce.com/s/articleView?id=001116834&type=1). ### Anypoint VPN with BGP Routing Enters into Asymmetric Mode after an Update Anypoint VPN enters into asymmetric mode after an on-demand maintenance if the AS paths for the two tunnels of the same VPN are different. ### Seeing IPsec DPD Failures in VPN Logs Ensure that your DPD settings are correctly configured. ### Other issues For other issues with Anypoint VPN, see [Troubleshoot Anypoint VPN](https://docs.mulesoft.com/cloudhub/vpn-troubleshooting). --- product: CloudHub --- # Application Monitoring and Automatic Restarts > For the full documentation index, see: https://docs.mulesoft.com/llms.txt CloudHub monitors all applications and enables you to receive notifications and diagnostic information if your application becomes unresponsive. You can enable automatic restarts so that your application can recover automatically without your intervention. ## How Application Monitoring Works CloudHub uses the Mule Agent health check endpoint to determine the readiness of a deployment. This monitoring method provides a thorough check to ensure that the application is deployed and applies gateway policies. Every 30 seconds, CloudHub checks the health check endpoint. If CloudHub detects that the health check endpoint fails three times in a row, the logs print a warning. CloudHub triggers a notification to the console to alert you that a worker for an application stopped responding. If you configure email alerts, the unresponsive worker also triggers an email alert based on the `Worker Not Responding` event. ## Enable Automatic Restarts You can enable automatic restarts when you deploy a new application or redeploy an existing application. - Deploy a new app 1. In Runtime Manager, click **Applications** in the menu on the left. 2. Click **Deploy Application** and select **CloudHub** from **Deployment Target**. 3. Select the **Automatically restart application when not responding** option: ![Automatically restart application when not responding option](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-autorestart.png) Figure 1. The arrow shows the **Automatically restart application when not responding** option. 4. Click **Deploy Application**. - Redeploy an existing app 1. In Runtime Manager, click **Applications** in the menu on the left. 2. Click the app status to display the details pane on the right 3. Click the **Manage Application** button to display the **Settings** page for the app. 4. Select the **Automatically restart application when not responding** option: ![Automatically restart application when not responding option](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-autorestart.png) Figure 2. The arrow shows the **Automatically restart application when not responding** option. 5. Click **Apply Changes**. > [!NOTE] If you change the flag `monitoringEnabled` via API, the application doesn’t restart > automatically and you must restart it manually. ## How Automatic Restarts and Relaunches Work If you select the **Automatically restart application when not responding** option, CloudHub monitors the worker and automatically attempts recovery using two mechanisms: application restarts and application relaunches. ### Application Restarts CloudHub continuously checks the health of the worker JVM. If the JVM becomes unresponsive, CloudHub restarts the application on the same worker instance. - If the restart succeeds, health monitoring continues. - If the restart fails, CloudHub attempts up to five restarts. After five restart attempts, CloudHub stops trying to restart the application on that worker. ### Application Relaunches After CloudHub exhausts all restart attempts, it evaluates the worker state and attempts an application relaunch. During an application relaunch, CloudHub terminates the failed worker and provisions a new worker instance. CloudHub attempts up to three application relaunches. If all relaunch attempts fail: - CloudHub stops automatic recovery. - CloudHub sends you a notification. - You must manually redeploy the application to restore it. The logs show the details of the restart and relaunch procedures. ### Without Automatic Restarts If you don’t select the **Automatically restart application when not responding** option, CloudHub displays a notification and a log message when the application becomes unresponsive, but doesn’t attempt automatic recovery. You must manually restart the application. ## See Also - [Configure Alerts](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager) - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) - [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub) - [Monitor Applications and Servers](https://docs.mulesoft.com/runtime-manager/monitoring) --- product: CloudHub --- # Attach to Transit Gateways > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Anypoint Runtime Manager to add a transit gateway and connect your Anypoint Virtual Private Cloud (VPC) to your private corporate network. ## Prerequisites Before you can add a transit gateway to CloudHub: - Create a transit gateway on your corporate AWS account. See [Getting started with transit gateways](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-getting-started.html) in the AWS documentation for information about creating a transit gateway on AWS. One transit gateway can support up to 10 VPC attachments. - The number of attachments you can make to AWS Transit Gateways depends on the network connections available to your Business Group. > [!NOTE] The **Transit Gateways** page is visible in Runtime Manager to Anypoint organizations > that have an Anypoint VPC and VPN license. > > Attaching one Anypoint VPC to an AWS Transit Gateway uses one Anypoint VPN license. You can > check or edit the licenses allocated to the Business Group by navigating to **Access > Management** > **Organizations** and choosing the relevant Business Group. Update or view the > **Network Connection** options as required, and save any changes. - Sign in to an Anypoint Platform account with either the CloudHub Network Administrator or the CloudHub Network Viewer user permission. See [Grant Permissions and Roles to Users](https://docs.mulesoft.com/access-management/users#grant-permissions-and-roles-to-users). - Create an Anypoint VPC in Anypoint Platform. See [Create and Update a VPC for Runtime Manager](https://docs.mulesoft.com/cloudhub/vpc-tutorial). - Identify the subnets in your network (in CIDR notation) that you want to make accessible through the transit gateway. ## Transit Gateway Attachment Workflow The steps for attaching to a transit gateway are: 1. [Add the transit gateway](#add_tgw) to Anypoint Platform by [creating a resource share in AWS](#create_resource_share) to share your transit gateway with Anypoint Platform. 2. [Attach your VPCs](#attach_vpc_tgw) to the transit gateway and [accept the VPC attachments](#accept_attachment) in AWS. 3. [Configure transit gateway routing](#configure_tgw_routing): 1. [Enable outbound traffic from Anypoint VPC](#enable_outbound_traffic_from_vpc). 2. [Enable inbound traffic through the transit gateway on AWS](#enable_inbound_traffic_on_aws). ## Add a Transit Gateway To add a transit gateway: 1. Sign in to Anypoint Platform and select **Runtime Manager**. 2. From the Runtime Manager navigation menu, click **Transit Gateways**, and then click **Add Transit Gateway**. The **Here’s what’s coming** page lists the steps to add the transit gateway: ![Here’s what’s coming page](/mulesoft/current/en-us/cloudhub/_images/tgw-process-overview.png) 3. Click **I’m ready**. 4. Specify a name for your transit gateway: ![Add transit gateway page](/mulesoft/current/en-us/cloudhub/_images/tgw-add.png) Use the same name for your transit gateway in AWS. You can change this name later. The name can contain up to 255 alphanumeric characters (a-z, A-Z, 0-9) and hyphens (-). 5. Select the region that corresponds to the location of your AWS Transit Gateway. See [Regional Services](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide#regional-services). Your Anypoint VPC and AWS Transit Gateway must be in the same region. 6. Click **Next**. The **Add transit gateway** page lists the steps to create a resource share in AWS: ![Add transit gateway page: Steps to create a resource share](/mulesoft/current/en-us/cloudhub/_images/tgw-add-overview.png) > [!NOTE] The MuleSoft AWS Account ID relevant for your Anypoint VPC is displayed at this step. > As this ID varies, always use the Account ID displayed in this step for your AWS > configuration. If the AWS configuration is performed by other teams or resources within your > organization, please share this MuleSoft AWS account ID with them. ## Create a Resource Share 1. Sign in to your AWS corporate account. 2. In Anypoint Platform, click the **Create resource share** link on the **Add transit gateway** page. The link opens the AWS RAM console to the page for creating a resource share in the region you specified. 3. Take the following actions on the AWS **Create resource share** page: 1. Under **Description**, enter a descriptive name for the resource share in the **Name** field. 2. Under **Resources - _optional_**, select **Transit Gateways** from the **Select resource type** menu and select the transit gateway resource to share. The transit gateway ID appears in the **Selected resources** field. 3. Under **Principals - _optional_**, ensure that **Allow external accounts** is selected, enter the MuleSoft AWS account ID that appears on the **Add transit gateway** page, and click **Add**. The AWS account number appears in the **Selected principals** field. 4. Under **Tags**, add a tag if you want. 5. Click **Create resource share**. 6. Copy the **ID** and **Owner** values for the resource share you just created. 4. Take the following actions in the Anypoint Platform **Add transit gateway** window: 1. Click **Next**. 2. Paste the values you copied from AWS in the **ID** and **Owner** fields: ![Add transit gateway page: Resource share ID and owner ID](/mulesoft/current/en-us/cloudhub/_images/tgw-add-resource-share.png) - The resource share **ID** field contains alphanumeric characters (a-z, A-Z, 0-9) and hyphens (-). - The resource share **Owner** field contains only numbers. 3. Click **Add**. The **Transit Gateways** page shows the progress for connecting to AWS and adding the transit gateway to Anypoint Platform. When the transit gateway addition succeeds, the **Transit Gateways** page displays the **Transit gateway added** message. The **Transit Gateways** page updates the owner and ID from AWS and the state as **Available**: ![Transit gateway added](/mulesoft/current/en-us/cloudhub/_images/tgw-resource-share-available.png) If the transit gateway addition fails, see [Troubleshoot Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-troubleshoot). ## Attach Anypoint VPC to the Transit Gateway After the transit gateway attachment succeeds, attach your Anypoint VPC to enable apps to access the transit gateway. For information about limitations when attaching an Anypoint VPC to a transit gateway, see [Transit gateway attachments to a VPC](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html) in the AWS documentation. To attach Anypoint VPC to the transit gateway: 1. In Anypoint Platform, on the **Transit Gateways** page, click **Attach VPC**. The **Attach VPC** button is disabled if no VPCs are available to attach or if the transit gateway addition failed. 2. From the **Select VPC** window, select the VPC to attach: ![Select VPC window](/mulesoft/current/en-us/cloudhub/_images/tgw-select-vpc.png) The window displays only the VPCs that are: - In the same region as the transit gateway - Not already attached to the transit gateway - In business groups for which you have CloudHub Network Administrator permissions 3. Click **Next**. ## Accept the VPC Attachment 1. Sign in to your AWS corporate account. 2. In Anypoint Platform, on the **Accept VPC Attachment** page, click the **Transit Gateway Attachments** link: ![Accept VPC Attachment page](/mulesoft/current/en-us/cloudhub/_images/tgw-accept-vpc-attachment.png) The link opens the AWS RAM console to the **Create Transit Gateway Attachment** page. 3. In the AWS console: 1. Select the attachment that shows **pending acceptance** in the **State** column. The attachment might take a few minutes to appear. 2. Select the transit gateway attachment ID and, on the **Details** tab, ensure that **Resource owner account ID** is the MuleSoft AWS account ID. 3. Click the pencil icon for the attachment and enter a name. 4. Select **Actions** > **Accept** and click **Accept** to confirm. When the attachment acceptance succeeds, the **State** column shows **available**. 4. In Anypoint Platform, in the **Accept VPC Attachment** window, click **Done**. The **Transit Gateways** page shows the progress for accepting the VPC attachment from Anypoint Platform to AWS: ![Checking VPC attachment status](/mulesoft/current/en-us/cloudhub/_images/tgw-checking-attachment-status.png) 5. Click **Refresh** to update the attachment status. When the VPC attachment succeeds, the **Transit Gateways** page displays the **VPC attached** message and the attachment state indicates that it’s attached to AWS Transit Gateway: ![VPC attached successfully](/mulesoft/current/en-us/cloudhub/_images/tgw-attached.png) If the VPC attachment state is `Rejected`, see [Troubleshoot Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-troubleshoot). ## Configure Transit Gateway Routing Anypoint VPC supports static routing for transit gateways. Configure the network routes (subnets) that you want to be accessible through the transit gateway: - On Anypoint Platform, [enable outbound traffic from Anypoint VPC](#enable_outbound_traffic_from_vpc) to an external destination. - On AWS, [enable inbound traffic](#enable_inbound_traffic_on_aws) through your transit gateway. ### Prerequisites Before configuring routing, consolidate networks to the fewest number possible. A maximum of 95 route table entries is permitted per VPC, regardless of the number of transit gateway attachments. ### Enable Outbound Traffic from Anypoint VPC After attaching the VPC, enable outbound traffic from Anypoint VPC to an external destination so that apps can access the transit gateway and the transit gateway routes traffic correctly. To do this, add routes to the transit gateway route table: 1. In Anypoint Platform, navigate to **Transit Gateways** > **VPCs** and click **Add Route**. 2. On the **Add VPC Route** window, use CIDR notation to enter a single subnet for your AWS VPC: ![Add VPC route](/mulesoft/current/en-us/cloudhub/_images/tgw-add-vpc-route.png) 3. Click **Add Route**. Anypoint Platform submits the new route to AWS. When the route addition succeeds, the **Transit Gateways** page shows the **Route added** message and the **Transit Gateways** page shows the route CIDR in the route tables. In the route tables, added routes show **Transit Gateway** as the value in the **Next Hop** column. Specific routes attached to the transit gateway show under **Transit Gateway Routes**. Other routes in the VPC show under **VPC Routes**. ![Transit Gateway in the Next Hop column of the route table](/mulesoft/current/en-us/cloudhub/_images/tgw-route-added.png) ### Enable Inbound Traffic Through the Transit Gateway After successfully adding routes to the transit gateway route table in Anypoint Platform, enable inbound traffic through your transit gateway on AWS. You might need to coordinate with your network administrator to enable inbound traffic. ## See Also - [Troubleshoot Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-troubleshoot) - [Manage Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-manage-arm) - [Transit Gateway Attachments](https://docs.mulesoft.com/cloudhub/tgw-about) - [Transit gateway attachments to a VPC](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html) in the AWS documentation - [Transit gateway route tables](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html) in the AWS documentation - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [Create and Update a VPC for Runtime Manager](https://docs.mulesoft.com/cloudhub/vpc-tutorial) - [Grant Permissions and Roles to Users](https://docs.mulesoft.com/access-management/users#grant-permissions-and-roles-to-users) --- product: CloudHub --- # Autoscaling in CloudHub > For the full documentation index, see: https://docs.mulesoft.com/llms.txt > [!NOTE] To use the autoscaling feature, your organization must have an Enterprise License > Agreement (ELA). Entitlement is approved based on qualified use cases. If you are interested in > this feature, contact your account representative. > > Autoscaling isn’t available on CloudHub for Usage-based Pricing (UBP) organizations. CloudHub allows you to make the processing power behind your applications responsive to changes in their usage. You can define policies that respond to CPU or memory usage thresholds by scaling up or scaling down the processing resources used by an application. ## Configure Autoscaling 1. Click the **Applications** tab of Runtime Manager. 2. Select an application deployed to CloudHub to open its panel. 3. In the panel, click **Manage Application**. 4. In the **Settings** section, select the **Autoscaling** tab. You can see all existing autoscaling policies, activate or deactivate them, create or delete them, and create associated [Alerts on Runtime Manager](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager). ## Create a Policy To create a policy, click the **Create Policy** button, then configure the fields to set your policy up. ![policy](/mulesoft/current/en-us/cloudhub/_images/autoscale-create-policy.png) Changes in worker size or number are triggered when a policy meets its requirements. Policies can be based either upon CPU or Memory usage, and they can either modify worker numbers or worker size. All policies include a scale up and a scale down condition. ![form](/mulesoft/current/en-us/cloudhub/_images/policy-form.png) 1. Provide a **Name** for your policy. 2. Determine if the scaling will be based on **Memory or CPU usage**. > [!NOTE] > > - For **CPU**: The percentage shown is the worker’s total CPU usage relative to its allocated > CPU capacity. Autoscaling is triggered based on the worker’s overall CPU usage, not JVM CPU > usage alone. > > - For **Memory**: The percentage shown is the percentage of total memory allocated for the JVM > that’s being used, including memory consumed by the JVM itself. 3. Determine the **Rules** for your scaling. You must provide the following values for both the upscale and the downscale conditions: 1. A usage **percentage** 2. A period of **time** throughout which this level must be sustained before the policy is applied 3. A **cool-down period** that blocks this and other policies from affecting scaling from being applied 4. Define what **action** will be performed when the policy is applied: 1. If it will affect the **number** of workers or the **size** of them 2. Set a **maximum** and **minimum** value to fluctuate in between > [!NOTE] Maximum number of workers is 4, and maximum worker size is 16 vCores for the Autoscaling > policy. ## Scaling Considerations All policies scale your application one step at a time. To scale up to meet a pronounced spike that requires scaling numerous steps, each step takes CloudHub the sum of the policy evaluation time plus the cool-down period. You can apply only one autoscaling policy per application. The maximum amount and size of workers that you have available is limited by the characteristics of your account. If multiple applications running in your account compete for limited resources, they are allocated in a first-come, first-served manner. Autoscaling fails if your org reaches its vCore limit because there are no available resources to provision new workers. To continue, increase your org’s vCore limit or stop unused apps to free up vCores. ## Edit an Existing Policy To edit an existing policy, open the **Policies** tab. Click the policy name and you will access the same menu that is used to create a new policy. ## Deactivate a Policy To deactivate a running policy, open the policies tab and flip the switch in its corresponding **Status** field: ![enable](/mulesoft/current/en-us/cloudhub/_images/enable-policy.png) ## Delete a Policy To delete an existing policy, go to the policies tab, then click its corresponding delete icon. ## Set an Alert and View Autoscaling History Two specific types of Alerts can be set up for applications on CloudHub that warn you whenever a worker autoscaling event occurs. One alerts you about scale ups and the other about scale downs. With this alert set, emails will be automatically sent to the addresses you provide whenever such an event occurs. You can also see a full history of all of the times that the alert has been triggered. To see this, from the **Alerts** page, click on an alert name to open its corresponding panel: ![history](/mulesoft/current/en-us/cloudhub/_images/alerts-history-autoscale.png) ## See Also - [Alerts on Runtime Manager](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager) - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) - [CloudHub](https://docs.mulesoft.com/cloudhub/) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [Clustering](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) - [Anypoint Platform Command-Line Interface](https://docs.mulesoft.com/anypoint-cli/latest/) - [Secure Application Properties](https://docs.mulesoft.com/cloudhub/secure-application-properties) - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) --- product: CloudHub --- # Certificate Validation in Dedicated Load Balancers > For the full documentation index, see: https://docs.mulesoft.com/llms.txt If at least one CA certificate is provided for the SSL endpoint, the load balancer passes the client certificate data to the API using these HTTP headers: - X-SSL-Client-Verify Returns one of: - `SUCCESS` The client is verified only after `SUCCESS`. - `NONE` when the certificate is not present - `FAILED` when other validation problems occur - X-SSL-Client-DN Contains the full distinguished name of the client certificate - X-SSL-Issuer Contains the full distinguished name of the issuing certificate - X-SSL-Client-Serial Contains the serial number used by the CA to identify the client > [!NOTE] The client certificate is validated at the DLB-level, but it is not re-validated at the > API-level. TLS is 1-way between the DLB and the API. ## How Client Certificate Validation Works Client certificate validation succeeds when either of these conditions occurs: - The list of certificates you uploaded to the DLB includes the client certificate. - Any CA in the list of certificates you uploaded to the DLB signed the client certificate. ### Trust-Based Validation Behavior The DLB performs trust-based validation. It trusts any certificate that chains up to a trusted root CA or intermediate CA that you uploaded. For example, if you upload this certificate chain to the DLB: Client Certificate1 → Intermediate CA1 → Intermediate CA2 → Root CA The DLB also accepts a different client certificate that chains to the same CAs: Client Certificate2 → Intermediate CA1 → Intermediate CA2 → Root CA In this case, the DLB accepts `Client Certificate2` even though it’s not part of the intended client chain. The DLB accepts it because you uploaded `Intermediate CA1` and `CA2` as trusted CAs. > [!IMPORTANT] The DLB doesn’t enforce client identity. It only verifies that the certificate is > valid and that a trusted CA signed it. ### Implement Client Identity Verification To verify client identity beyond CA trust validation, inspect certificate details in your Mule app. Use the X-SSL-Client-DN header to verify the Subject DN or Common Name (CN) and the X-SSL-Client-Serial header to match authorized serial numbers. Validating these headers restricts access to specific authorized clients. ## Add Revocation Lists The CloudHub load balancer can optionally verify client requests against certificate revocation lists (CRL). All CRL files must be concatenated into a single, unencrypted PEM-encoded file for upload. The order of items in the CRL is not important. To add a revocation list when you create the load balancer, use the `--crl` option with the [`cloudhub load-balancer create`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-create) command. If your load balancer already exists, you can use the [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) to add or update your CRLs. To do so, send a `PATCH` request to the `/organizations/{myOrgID}/vpcs/{myVpcID}/loadbalancers/{myDlbID}` endpoint and include a `revocationList` element: ```json [ { "op": "replace", "path": "/sslEndpoints/0/revocationList", "value": "-----BEGIN X509 CRL-----\nMIIBTTCBtwIBATANBgkqhkiG9w0BAQUFADBXMQswCQYDVQQGEwJBVTETMBEGA1UE\nCBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk\nMRAwDgYDVQQDEwdvcmcuY29tFw0xNjAzMTUwOTI2MThaFw0xODAzMTUwOTI2MTha\nMBwwGgIJAIBvvO4dJHjhFw0xNjAzMTUwODUwMTZaoA4wDDAKBgNVHRQEAwIBBjAN\nBgkqhkiG9w0BAQUFAAOBgQCCAbGXW+Hnzmd1bXqWsFXfogOsJScoxkJOhhmjui3I\nhTUyO5plGHUBLjBnDkypM+iLfn0W4wPcNj7FZdz4Hu/WLntxwrTtR5YOcfIhEGcq\nwvJq/1+WKUPC6eqGwx0iKOOBIWsaf5CNOOUQMo6RaeTeu8Uba2EGFk1Vu/SoZYAK\nsw==\n-----END X509 CRL-----\n" } ] ``` To get the values for `myVpcID` and `myDlbID` values from the CLI, use the [`cloudhub vpc describe-json`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-describe-json) and [`cloudhub load-balancer describe-json`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-describe-json) commands. To update any other property, send a `PATCH` request to your load balancer endpoint. ## Prepare to Manage Certificate Cipher Suites To manage cipher suites with the CloudHub API, you must first: - [Generate your authorization bearer token](#generate-authorization-bearer-token). - Retrieve your organization ID using the CloudHub API. See [Retrieve a single organization](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/console/method/%233736/). - Retrieve your VPC ID using the CloudHub CLI. See [cloudhub vpc describe-json](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-describe-json). - Retrieve your DLB ID using the CloudHub CLI. See [cloudhub load-balancer describe-json](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-describe-json). - Install `jq` to format the JSON output. See [jq](https://stedolan.github.io/jq/). ### Generate Authorization Bearer Token To generate your authorization bearer token for Anypoint Platform: 1. Send your Anypoint Platform user name and password to the API: ```json curl -X POST 'https://anypoint.mulesoft.com/accounts/login' -H 'Content-Type: application/json' -d '{"username":"myUsername","password":"myPassword"}' ``` This command returns the access token: ```json { "access_token": "myAccessToken", "token_type": "bearer", "redirectUrl": "/home/" } ``` 2. Copy the value of `access_token` to use in the API calls. ## Manage Certificate Cipher Suites Using the CloudHub API, you can: - [List available cipher suites](#list-available-cipher-suites). - [Display the default cipher suite for a DLB](#display-the-default-cipher-suite-for-a-dlb). - [Rotate the cipher by replacing the default cipher suite](#rotate-the-cipher-by-replacing-the-default-cipher-suite). ### List Available Cipher Suites To list available cipher suites for an organization using the CloudHub API: 1. [Prepare to manage certificate cipher suites](#prepare-to-manage-certificate-cipher-suites). 2. Run this GET call: ```linenums curl https://anypoint.mulesoft.com/cloudhub/api/organizations/myOrgID/loadbalancers/ciphersuites -H 'Authorization: Bearer myAccessToken' | jq ``` - `_myOrgID_` is the organization ID. - `_myAccessToken_` is the access token you generated. The output includes `ciphers`: ```json { "data": [ { "id": "5b4a36e1e65c892316abd4d1", "name": "NewDefault-v1", "ciphers": "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384", "description": "Default ciphers (new version)-v1", "defaultSuite": true }, { "id": "5b4a36e1e65c892316abd4d2", "name": "OldDefault", "ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4", "description": "Default ciphers (old version)", "defaultSuite": false }, { "id": "5b4bfedee4b0f45ab1de6979", "name": "EcdheEcdsaRsa", "ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384", "description": "ECDHE ECDSA RSA ciphers", "defaultSuite": false }, { "id": "5ba28106e4b00522d78f40b6", "name": "RestrictCiphers", "ciphers": "AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256", "description": "Restricted Ciphers", "defaultSuite": false } ], "total": 4 } ``` ### Recommended Cipher Suites The following recommended cipher suites provide a good balance between compatibility and security for your SSL endpoint: ECDHE-RSA-AES256-GCM-SHA512 DHE-RSA-AES256-GCM-SHA512 ECDHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-GCM-SHA384 Most cipher suites offer forward secrecy. RC4-SHA (supports Internet Explorer 8) does not. For this reason, MuleSoft and Microsoft do not recommend using it. The CloudHub dedicated load balancer supports TLS 1.2. ### Display the Default Cipher Suite for a DLB To display the default cipher suite for a DLB using the CloudHub API: 1. [Prepare to manage certificate cipher suites](#prepare-to-manage-certificate-cipher-suites). 2. Run this GET call: ```linenums curl https://anypoint.mulesoft.com/cloudhub/api/organizations/myOrgID/vpcs/myVpcID/loadbalancers/myDlbID -H 'Authorization: Bearer myAccessToken' | jq ``` In the command: - `_myOrgID_` is the organization ID. - `_myVpcID_` is the ID for the VPC. - `_myDlbID_` is the ID for the DLB. - `_myAccessToken_` is the access token you generated. The output includes `defaultCipherSuite`: ```json "defaultCipherSuite": "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384" ``` ### Rotate the Cipher by Replacing the Default Cipher Suite To rotate the cipher by replacing the default cipher suite for a DLB using the CloudHub API: 1. [Prepare to manage certificate cipher suites](#prepare-to-manage-certificate-cipher-suites). 2. Run this PATCH call: ```linenums curl -X PATCH https://anypoint.mulesoft.com/cloudhub/api/organizations/myOrgID/vpcs/myVpcID/loadbalancers/ myDlbID -H 'Authorization: Bearer myAccessToken' -H 'Content-Type: application/json' -d '[{"op":"replace", "path":"/defaultCipherSuiteName", "value":"NewDefault-v1"}]' | jq ``` In the command: - `_myOrgID_` is the organization ID. - `_myVpcID_` is the ID for the VPC. - `_myDlbID_` is the ID for the DLB. - `_myAccessToken_` is the access token you generated. - `NewDefault` is the value of `name` for a cipher suite from the list of available cipher suites that you generated in [List Available Cipher Suites](#list-available-cipher-suites). The output now includes `defaultCipherSuite`: ```json "defaultCipherSuite": "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384" ``` ## Limitation To use an ECDSA-based authentication cipher, generate the certificate and key pair using an ECDSA-based algorithm and apply the same algorithm to the SSL certificate and key configuration on the DLB. If you try to use an ECDSA-based authentication cipher with an RSA-based certificate and key pair, the SSL handshake fails and you receive either of the following error messages: ```linenums SSL routines:CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure ``` or ```linenums Error: write EPROTO 140434219616616:error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE:../../third_party/boringssl/src/ssl/tls_record.cc:594:SSL alert number 40 140434219616616:error:1000009a:SSL routines:OPENSSL_internal:HANDSHAKE_FAILURE_ON_CLIENT_HELLO:../../third_party/boringssl/src/ssl/handshake.cc:603: ``` Because current DLB configuration permits only one type of SSL certificate and key pair per SSL endpoint, a client using an RSA-based cipher can not connect to an ECDSA-based configuration, and vice versa. ## See Also - [Configure SSL Endpoints and Certificates](https://docs.mulesoft.com/cloudhub/lb-ssl-endpoints) - [Add Certificates to a Dedicated Load Balancer](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Allowlists](https://docs.mulesoft.com/cloudhub/lb-allowlists) - [Mapping Rules](https://docs.mulesoft.com/cloudhub/lb-mapping-rules) - [Create a Load Balancer with Runtime Manager](https://docs.mulesoft.com/cloudhub/lb-create-arm) --- product: CloudHub --- # CloudHub API > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The CloudHub management API (CloudHub API) enables you to programmatically access the functions of Anypoint Runtime Manager, such as: - Manage applications: - Create, deploy, start, stop, list, and delete an application on CloudHub. - Update application metadata, including the number of workers, Mule runtime engine version, and system properties. - Retrieve statistics for an application or worker. - Retrieve application transactions and events for a transaction. - Check for replay data, replay the flow for a transaction, and delete replay data for an application. - Manage static IP addresses and release unused IP addresses associated with an application. - Download the Mule package file for the application. - Update, enable, disable, or run all or some schedules. - Manage logs, notifications, and alerts: - Add, update, or retrieve log levels for an application. - Download the log file for an application or instance. - Create, update, or retrieve a notification. - Mark a notification as read or unread. - Create, update, or delete an alert triggered by an application. - Retrieve an alert and alert history. - Manage load balancers: - Create, update, or delete a load balancer. - List load balancers in an organization. - Test load balancer rules and return the number of the rule applied to the input. - Manage VPCs, VPNs, and TGWs: - Create, update, list, and remove a VPC. - Create or delete a VPN connection. - Add, modify, and remove multiple AWS Transit Gateway attachments to your Anypoint Platform organization. - Manage persistent queues: - Retrieve statistics for persistent queues. - Clear the entries from a persistent queue. - Retrieve additional information about: - Supported Mule versions - The current organization, including usage statistics - Workers, including thread dumps and worker regions - Users, including permissions - Available domain names For an interactive reference that includes supported resources, methods, required properties, and expected responses, see the [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/). The CloudHub API manages only applications deployed to CloudHub, the cloud-based version of Runtime Manager. To manage on-premises applications using the API, see [Runtime Manager REST Services](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/arm-rest-services). ## Use the CloudHub API Before getting started, familiarize yourself with operations for applications. You can use any HTTP client with the CloudHub API. With Java, use the [Jersey client](https://jersey.github.io/) or [HttpClient](https://hc.apache.org/httpclient-legacy/index.html) with [Jackson](https://github.com/codehaus/jackson) for JSON support. To access operations in the CloudHub API, you must: 1. Generate an authorization bearer token (AUTH\_BEARER\_TOKEN) to authenticate with the API. To get the access token, you need the Anypoint Platform username and password of a user assigned the Organization Administrators role. See [Authentication](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/pages/Authentication/) in the [Access Management API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/pages/home/). Your username specifies the environment to access. For example, if your username is `consuela` and the environment is `Development`, your username is `consuela@Development`. If you don’t specify an environment, the API defaults to `Production`. 2. Get the organization ID (ORG\_ID). See the [`/api/me`](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/console/method/%234250/) endpoint in the [Access Management API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/pages/home/). 3. Get the environment ID (ENV\_ID). See the [`/api/organizations/_ORG_ID_/environments`](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/console/method/%234762/) endpoint in the [Access Management API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/minor/1.0/pages/home/). ### Get a List of Applications To get a list of apps deployed to CloudHub, run the following `curl` command: curl -X GET \\ --url https://anypoint.mulesoft.com/cloudhub/api/applications \\ -H 'authorization: Bearer AUTH\_BEARER\_TOKEN' \\ -H 'X-ANYPNT-ENV-ID: ENV\_ID' \\ -H 'X-ANYPNT-ORG-ID: ORG\_ID' ## Data Format Resources and methods that return or accept a type use the JSON data format. Here is an example of data received in JSON format in response to a request to get an application: ```json { "versionId": "xxxxxxxx", "domain": "hello", "fullDomain": "hello.us-e1.cloudhub.io", "properties": { "foo":"bar" }, "propertiesOptions": {}, "status": "STARTED", "workers": { "type": { "name": "Micro", "weight": 0.1, "cpu": "0.1 vCores", "memory": "500 MB memory" }, "amount": 1, "remainingOrgWorkers": 223.7, "totalOrgWorkers": 1000.0 }, "workerStatuses": [ { "id": "i-xxxxxxxx", "host": "xxx.xxx.xxx.xxx", "port": 0, "status": "STARTED", "deployedRegion": "us-east-1", "staticIPEnabled": false } ], "lastUpdateTime": 1589868960908, "fileName": "hello.zip", "muleVersion": { "version": "4.3.0", "updateId": "xxxxxxxx", "latestUpdateId": "xxxxxxxx", "endOfSupportDate": 1633737600000 }, ... } ``` ## JVM Tuning Fields The Application API (v2) accepts two optional JVM tuning fields on `POST /applications` and `PUT /applications/{domain}`, and returns them from `GET /applications/{domain}`: `openJvmPackagesForArrow` and `gcMethod`. Both fields require a worker replacement to take effect, so redeploy or restart the app after you change either value. ### openJvmPackagesForArrow `openJvmPackagesForArrow` is a nullable Boolean that defaults to `false`. When you set it to `true`, the CloudHub worker starts with these additional JVM flags: \--add-opens=java.base/java.nio=ALL-UNNAMED -Dmule.module.tweaking.validation.skip=true Set this field to `true` only for applications that require the Apache Arrow JDBC driver, such as Snowflake Arrow, DuckDB, or any Arrow-backed connector, on Java 17. Without these flags, Java 17’s stricter module system blocks Arrow’s use of `sun.misc.Unsafe` and off-heap NIO buffers, and the application fails at runtime with an `InaccessibleObjectException`. > [!NOTE] Enabling `openJvmPackagesForArrow` widens the JVM’s reflective access surface, because > `java.base/java.nio` becomes open to the unnamed module. Enable it only for apps that need Apache > Arrow, not as a general default. > [!NOTE] `openJvmPackagesForArrow` is a transitional setting. It’s removed after Mule runtime > engine delivers Module Layer Propagation, tracked in ADR-MULE-#072. This table shows how each value behaves:
Value in requestEffect on POST (create)Effect on PUT (update)

true

Worker starts with both flags

Worker starts with both flags

false

Worker starts without the flags (default)

Worker starts without the flags

null or omitted

Treated as false

Leaves the stored value unchanged

Sample request (POST): ```json { "domain": "my-arrow-app", "muleVersion": { "version": "4.7.0" }, "openJvmPackagesForArrow": true } ``` Sample response (GET): ```json { "domain": "my-arrow-app", "openJvmPackagesForArrow": true } ``` ### gcMethod `gcMethod` is a nullable String that selects which garbage collector the CloudHub worker’s JVM uses. It defaults to `null`, which applies the boot-time default. Input is case-insensitive, and CloudHub persists and returns the canonical form:
InputCanonical formJVM flag applied to the worker

Serial, serial, SERIAL

Serial

-XX:+UseSerialGC

Parallel, parallel, PARALLEL

Parallel

-XX:+UseParallelGC

G1, g1

G1

-XX:+UseG1GC

null, "", or omitted

null (no override)

Boot-time default GC applies

Any other value

HTTP 400 with an allow-list error

—

Only these three canonical names match. CloudHub rejects aliases such as `G1GC` or `ParallelOld`, so use only `Serial`, `Parallel`, or `G1`. Choose a collector based on the workload: - Serial GC minimizes the memory footprint on small workers (0.1 or 0.2 vCore). - Parallel GC maximizes throughput for batch and ETL-heavy apps. - G1 delivers lower, more predictable pause times for latency-sensitive request/response apps on 1 vCore or larger. > [!NOTE] When `gcMethod` is unset, the worker uses the baseline collector baked into its CloudHub > AMI’s `wrapper.conf`. On current CloudHub 1.0 AMIs, that baseline is Parallel GC on all Java > versions (8, 11, and 17) and all worker sizes. This baseline is a CloudHub deployment choice, not > a JVM ergonomics outcome, so it applies even on Java 17, where the JVM’s own default would > otherwise be G1. Leaving `gcMethod` unset is the recommended path unless you have a specific > reason to override it. This table shows how each value behaves:
Value in requestEffect on POST (create)Effect on PUT (update)

Serial, Parallel, or G1 (any case)

Stores the canonical form

Updates to the canonical form and audits the change

null or omitted

Leaves the field null (boot default applies)

Leaves the stored value unchanged

"" or whitespace only

Stores null (boot default applies)

Clears any existing override and audits the change

Any other non-empty string

HTTP 400

HTTP 400

Changing `gcMethod` doesn’t hot-restart running workers. The new selector applies on the next worker replacement: a redeploy, restart, or scaling event. Sample request (POST): ```json { "domain": "my-latency-app", "muleVersion": { "version": "4.7.0" }, "gcMethod": "G1" } ``` Sample request (PUT), which clears the override: ```json { "gcMethod": "" } ``` Sample response (GET): ```json { "domain": "my-latency-app", "gcMethod": "G1" } ``` ## Rate Limits The CloudHub management API enforces global usage limits, with some exceptions. ### Global Rate Limits for the CloudHub Management API The following table lists the rate limits for the CloudHub management API endpoints except those listed in [Exceptions to the Global Rate Limits](#exceptions-to-the-global-rate-limits). When the app reaches the rate limit, CloudHub returns a 503 status code.
EndpointsControl PlaneRate Limit Per Client IP AddressStatus Code

All except specified endpoints

U.S.

75 requests per second

503

EU

25 requests per second

Government Cloud

### Exceptions to the Global Rate Limits The following table lists the exceptions to the [Global Rate Limits for the CloudHub Management API](#global-rate-limits-for-the-cloudhub-management-api). When the app reaches the rate limit, CloudHub returns the status codes shown here.
EndpointsControl PlaneRate Limit Per Client IP AddressStatus Code

Endpoints under /api

/notifications

U.S.

75 requests per minute

503

EU

25 requests per minute

Government Cloud

Endpoints under v2/applications/{domain}

/logs

All

10 requests per second

429

/deployments/{deploymentId}/logs

/instances/{instanceId}/logs

/instances/{instanceId}/log-file

1 request per minute

500

## Status Codes and Error Handling When you call the CloudHub API, the following status codes are returned:
Status CodeDescription

200

The operation was successful.

201

The resource (such as an application) was created.

The Location header contains the location of the resource.

404

The resource was not found.

409

When creating a resource (such as a server, server group, or deployment), a resource with that name already exists.

429

The operation was unsuccessful due to reaching the rate limit.

500

The operation was unsuccessful.

See the HTTP body for details.

503

The operation was unsuccessful due to a temporary condition, such as server overload or reaching a rate limit.

Retry the operation.

When errors occur, such as a 500 status code, the HTTP response contains a JSON response with an error message: ```json 500 Content-Type: application/json Server: Apache-Coyote/1.1 Date: Mon, 10 Aug 2015 00:12:55 GMT { message : "Some error message." } ``` ## See Also - [CloudHub API Reference](https://docs.mulesoft.com/cloudhub/cloudhub-api-reference) - [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) - [Access Management API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/access-management-api/) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub) - [Develop Applications for CloudHub](https://docs.mulesoft.com/cloudhub/developing-applications-for-cloudhub) - [Monitor Applications and Servers](https://docs.mulesoft.com/runtime-manager/monitoring) --- product: CloudHub --- # CloudHub API Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt These tables list the most commonly used CloudHub Application Programming Interface (API) endpoints grouped by category. All endpoints use the base URL `https://anypoint.mulesoft.com/cloudhub/api`. For full details on request parameters, payloads, and responses, see the [interactive API reference on Exchange](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/). ## Applications Use these endpoints to deploy, manage, and delete Mule applications running on CloudHub.
MethodEndpointDescription

GET

/applications

List all applications.

POST

/applications

Create and deploy a new application.

GET

/applications/{domain}

Get details for a specific application.

PUT

/applications/{domain}

Update application metadata (workers, runtime version, properties).

DELETE

/applications/{domain}

Delete an application.

For more information, see [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub). ## Logs Use these endpoints to search and download application log entries.
MethodEndpointDescription

POST

/v2/applications/{domain}/logs

Search application log entries.

GET

/v2/applications/{domain}/deployments/{deploymentId}/logs

Retrieve logs for a specific deployment.

GET

/v2/applications/{domain}/instances/{instanceId}/logs

Retrieve logs for a specific instance.

GET

/v2/applications/{domain}/instances/{instanceId}/log-file

Download the log file for a specific instance.

When filtering by time range, the `startTime` and `endTime` parameters require ISO 8601 UTC format with microsecond precision (`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`), for example, `2025-12-25T10:00:00.000000Z`. These parameters don’t accept epoch (Unix) timestamps. ## Notifications and Alerts Use these endpoints to manage notifications and configure alerts for your CloudHub applications.
MethodEndpointDescription

GET

/notifications

List notifications.

POST

/notifications

Create a notification.

PUT

/notifications/{notificationId}

Mark a notification as read or unread.

GET

/v2/alerts

List alerts for an application.

POST

/v2/alerts

Create an alert.

PUT

/v2/alerts/{alertId}

Update an alert.

DELETE

/v2/alerts/{alertId}

Delete an alert.

For more information, see [Custom Application Alerts and Notifications](https://docs.mulesoft.com/cloudhub/custom-application-alerts). ## Schedules Use these endpoints to view and update scheduled jobs for your CloudHub applications. > [!NOTE] These schedules endpoints don’t return scheduler or domain details for CloudHub 2.0 > applications. To manage schedulers for CloudHub 2.0 apps, use the CloudHub 2.0 APIs or the Runtime > Manager **Schedules** tab. See [Managing App Schedules](https://docs.mulesoft.com/cloudhub-2/ch2-manage-schedules).
MethodEndpointDescription

GET

/applications/{domain}/schedules

List all schedules for an application.

PUT

/applications/{domain}/schedules

Update all schedules for an application.

PUT

/applications/{domain}/schedules/{scheduleId}

Update a specific schedule.

For more information, see [Manage Schedules](https://docs.mulesoft.com/cloudhub/managing-schedules). ## Load Balancers Use these endpoints to create, configure, and manage dedicated load balancers (DLBs) for your CloudHub applications.
MethodEndpointDescription

GET

/organizations/{orgId}/loadbalancers

List load balancers in an organization.

POST

/organizations/{orgId}/vpcs/{vpcId}/loadbalancers

Create a load balancer.

GET

/organizations/{orgId}/vpcs/{vpcId}/loadbalancers/{lbId}

Get details for a specific load balancer.

PATCH

/organizations/{orgId}/vpcs/{vpcId}/loadbalancers/{lbId}

Update a load balancer (mapping rules, certificates, cipher suites).

DELETE

/organizations/{orgId}/vpcs/{vpcId}/loadbalancers/{lbId}

Delete a load balancer.

GET

/organizations/{orgId}/loadbalancers/ciphersuites

List available cipher suites.

POST

/organizations/{orgId}/logs/download

Initiate a DLB log download.

GET

/organizations/{orgId}/logs/download/status

Check DLB log download status.

For detailed curl examples, see [Create a Load Balancer with the CloudHub API](https://docs.mulesoft.com/cloudhub/lb-create-api), [Certificate Validation in Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/lb-cert-validation), [Dedicated Load Balancer Mapping Rules](https://docs.mulesoft.com/cloudhub/lb-mapping-rules), and [Download Dedicated Load Balancer Logs](https://docs.mulesoft.com/cloudhub/lb-download-logs). ## VPCs, VPNs, and Transit Gateways Use these endpoints to manage Virtual Private Clouds (VPCs), Virtual Private Networks (VPNs), and transit gateway attachments for your CloudHub network infrastructure.
MethodEndpointDescription

GET

/organizations/{orgId}/vpcs

List VPCs in an organization.

POST

/organizations/{orgId}/vpcs

Create a VPC.

PUT

/organizations/{orgId}/vpcs/{vpcId}

Update a VPC (associated environments, firewall rules).

DELETE

/organizations/{orgId}/vpcs/{vpcId}

Remove a VPC.

POST

/organizations/{orgId}/vpcs/{vpcId}/ipsec

Create a VPN connection.

DELETE

/organizations/{orgId}/vpcs/{vpcId}/ipsec/{vpnId}

Delete a VPN connection.

GET

/organizations/{orgId}/tgws

List Transit Gateway attachments in an organization.

POST

/organizations/{orgId}/tgws

Create a Transit Gateway attachment.

PUT

/organizations/{orgId}/tgws/{tgwId}

Update a Transit Gateway attachment.

DELETE

/organizations/{orgId}/tgws/{tgwId}

Remove a Transit Gateway attachment.

For detailed curl examples, see [Create a VPC with the Anypoint Platform CLI](https://docs.mulesoft.com/cloudhub/create-vpc-cli). ## Diagnostics Use these endpoints to generate, retrieve, and analyze application diagnostics.
MethodEndpointDescription

GET

/v2/applications/{domain}/instances/diagnostics

List diagnostics for an application.

GET

/v2/applications/{domain}/instances/{instanceId}/diagnostics

Get diagnostics for an instance without persisting them.

POST

/v2/applications/{domain}/instances/{instanceId}/diagnostics

Generate and persist diagnostics for an instance.

GET

/v2/applications/{domain}/instances/diagnostics/{diagnosticId}/download

Download a diagnostic.

GET

/v2/applications/{domain}/instances/diagnostics/analysis-readiness

Check if analysis can be triggered.

GET

/v2/applications/{domain}/instances/{instanceId}/diagnostics/analysis/latest

Get the latest analysis for an instance.

POST

/v2/applications/{domain}/instances/{instanceId}/diagnostics/analyze

Trigger an analysis for an instance.

For more information, see [Generate Apps Diagnostics and Analyze with Einstein](https://docs.mulesoft.com/cloudhub/ch-diagnostics-agent). ## See Also - [CloudHub API](https://docs.mulesoft.com/cloudhub/cloudhub-api) --- product: CloudHub --- # CloudHub Architecture > For the full documentation index, see: https://docs.mulesoft.com/llms.txt [CloudHub](https://docs.mulesoft.com/cloudhub/) is designed to provide enterprises with a multitenant, secure, elastic, and highly available integration platform as a service (iPaaS). To maximize your use of CloudHub, you should understand how the underlying mechanisms of the CloudHub platform work to achieve these goals. Manage CloudHub with the Anypoint Runtime Manager console in Anypoint Platform. You can also [deploy](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) to it directly from Anypoint Studio, via the [CloudHub REST API](https://docs.mulesoft.com/cloudhub/cloudhub-api) or via the [Anypoint Platform command-line interface](https://docs.mulesoft.com/anypoint-cli/latest/). > [!NOTE] See [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) for a better > understanding of the different possible deployment scenarios, including on-premises and Anypoint > Platform Private Cloud Edition (Anypoint PCE). To understand CloudHub’s approach to security and availability, it’s important to understand the architecture behind CloudHub. It includes two major components—​Anypoint platform services, and the worker cloud. These two components and the Runtime Manager console through which you access them work together to run your integration applications. ![architecture diagram](/mulesoft/current/en-us/cloudhub/_images/architecture-diagram.png)

1 Integration Applications

Applications that you create and deploy to CloudHub to perform integration logic for your business

2 Runtime Manager

User interface that enables you to deploy and monitor integrations, and configure your account

3 Platform Services

Shared CloudHub platform services and APIs, which includes CloudHub Insight, alerting, logging, account management, virtual private cloud/secure data gateway, and load balancing

4 CloudHub 2.0

An elastic cloud of workers, Mule instances that run integration applications

> [!NOTE] You can view the live status and detailed service history for the Runtime Manager console, > platform services, and the CloudHub worker cloud on > [`status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft) for the default (US > hosted) Control Plane and > [`eu1-status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft) for the EU Control > Plane. ## Integration Applications An integration application is any integration that you’ve built using Anypoint Studio. These applications can do everything from synchronizing data from Salesforce to a database, to publishing a SOAP or REST API, to creating complex orchestrations of business processes. For more about creating and deploying integration applications, see [CloudHub](https://docs.mulesoft.com/cloudhub/) and [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub). ## Runtime Manager The Runtime Manager console is integrated into the [Anypoint Platform](https://anypoint.mulesoft.com). Sign in with your Anypoint Platform credentials to upload and manage your integration applications at runtime. The console surfaces useful monitoring information from the platform services and also works as a comprehensive dashboard for both application-level and account-level management. Through this same console you can [deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) as well as to [other registered servers](https://docs.mulesoft.com/runtime-manager/deploying-to-your-own-servers). You can also [manage deployed applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications). Administrator account holders can use the Anypoint Platform to [add and manage other users in the organization, define user roles](https://docs.mulesoft.com/access-management/managing-permissions), and create and manage sandbox environments. For more general information about CloudHub, see [CloudHub](https://docs.mulesoft.com/cloudhub/). ## Platform Services CloudHub platform services are responsible for coordinating all aspects of the platform. They coordinate deployment of applications, monitor integrations, provide analytics data, store application data, run scheduled jobs, and more. Many of these services are also exposed through the [CloudHub REST API](https://docs.mulesoft.com/cloudhub/cloudhub-api). ## CloudHub Workers _Workers_ are dedicated instances of Mule runtime engine that run your integration applications on CloudHub. Workers have the following characteristics: **Capacity** Each worker has a specific amount of capacity to process data. Select the size of your workers when configuring an application. **Isolation** Each worker runs in a separate container from every other application. **Manageability** Each worker is deployed and monitored independently. **Locality** Each worker runs in a specific worker cloud, such as the US, EU, or Asia-Pacific. The memory capacity and processing power of a worker depends on how you configure it at the application level. Worker sizes have different compute, memory, and storage capacities. You can scale workers vertically by selecting one of the available worker sizes:
Worker SizeWorker MemoryHeap MemoryDisk Storage Size

0.1 vCores

1 GB

500 MB

8 GB

0.2 vCores

2 GB

1 GB

8 GB

1 vCore

4 GB

2 GB

12 GB

2 vCores

8 GB

4 GB

40 GB

4 vCores

16 GB

8 GB

88 GB

8 vCores

32 GB

16 GB

168 GB

16 vCores

64 GB

32 GB

328 GB

Workers with 0.1 vCores and 0.2 vCores: - Provide limited CPU and I/O for apps with smaller workloads - Can burst to higher CPU speeds for a short time This ability helps to improve application startup times and to process infrequent, large workloads. If you need consistent performance, use workers with more vCores. Workers with 1 or more vCores provide performance consistency. Each worker has a minimum of 8 GB of storage allocated, which is used for both system and application storage, with about 3.0 GB used for OS and Mule components. If your application requires more storage (for example, verbose logging), use a worker with two or more vCores, enabling the application to access additional storage. Only running applications count toward worker usage. If your applications require more vCores than are available, CloudHub allows you to create the application, but you cannot start it until the additional vCores become available. To increase vCore allocation, stop another application or contact your account manager to increase your subscription’s vCore allocation. The metaspace limit for apps deployed to CloudHub is currently unlimited, regardless of the worker size. The initial metaspace size is 128 MB; metaspace garbage collection begins after the metaspace reaches that threshold. You can scale your applications horizontally by adding multiple workers and enabling persistent queues to distribute workloads across workers. See [Worker Scaleout](https://docs.mulesoft.com/cloudhub/cloudhub-fabric#worker-scale-out) and [Persistent Queues](https://docs.mulesoft.com/cloudhub/cloudhub-fabric#persistent-queues). CloudHub monitors workers to verify that they are operating correctly. If you enable automatic restarts, CloudHub also automatically restarts applications, if necessary. > [!NOTE] The Limit for the **JVM - Heap Used** graph on Runtime Manager and Anypoint Monitoring can > sometimes dynamically increase. It technically shows JVM property `maxMemory()` under the hood, > which means the max amount of memory that JVM attempts to use for the heap. Due to the nature of > Java, it dynamically changes within the JVM runtime heap size available, depending on a number of > factors such as memory fragmentation, garbage collection, and other memory management used by JVM. ## Global Worker Clouds CloudHub offers worker clouds in different regions of the world: North America, South America, the European Union, and Asia-Pacific. For the complete list of supported regions, see [Regional Services](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide#regional-services). This global distribution enables you to host your integration in the location closest to your services, thus reducing latency. It can also provide for adherence to local laws, such as the EU Data Protection Directive. For the US and US-Gov control planes, MuleSoft hosts the management console and platform services in the United States. For the EU control plane, MuleSoft hosts these services in Europe. The region that you deploy your application to determines the domain provided for your application. For example, if you deploy an application named `myapp` to Canada (Central), the domain used to access the application is `myapp.ca-c1.cloudhub.io`. The load balancer used to route requests resides in the same region as your application. For more information about deploying applications to different regions, refer to [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub). For more information about CloudHub security and compliance, download the [Anypoint Cloud Security & Compliance](https://www.mulesoft.com/api/security) whitepaper. ## Workers and Multitenancy Because different levels of security and isolation are needed depending on the service, the platform provides two different levels of multitenancy. - First, the worker cloud is a multitenant cloud of virtual machines. These VMs provide the security and isolation needed for your integrations to run custom code without affecting others. - Second, the management console and the platform services have a "shared everything" architecture – all tenants share the same web UI, monitoring services, load balancers, etc. These services do not process or transmit your data. ## Availability and Scalability CloudHub is designed to be highly available and scalable through redundancy, intelligent healing, and zero-downtime updates. It also enables customers to scale and benefit from added reliability through [high availability features](https://docs.mulesoft.com/cloudhub/cloudhub-fabric). ### Redundant Platform All of CloudHub platform services, from load balancing to the API layer, have at least one, built-in layer of redundancy and are available in at least two data centers at all times. All data centers are at least 60 miles apart. This redundancy ensures that even if there is a data center outage, the platform remains available. ### Intelligent Healing CloudHub monitors the worker clouds for problems and provides a self-healing mechanism to recover from them. If the underlying hardware suffers a failure, the platform migrates your application to a new worker automatically. In the case of an application crash, whether due to a problem with custom code or a bug in the underlying stack, the platform recognizes the crash and can [restart the worker automatically](https://docs.mulesoft.com/cloudhub/worker-monitoring#enabling-automatic-restarts). For more information about application monitoring and automatic restarts, see [Application Monitoring and Automatic Restarts](https://docs.mulesoft.com/cloudhub/worker-monitoring). ### Zero-Downtime Updates CloudHub supports updating your applications at runtime so end users of your HTTP APIs experience zero downtime. While your application update is deploying, CloudHub keeps the old version of your application running. Your domain points to the old version of your application until the newly uploaded version is fully started. This allows you to keep servicing requests from your old application while the new version of your application is starting. ### High Availability High Availability features provide scalability, workload distribution, and added reliability to applications on CloudHub. These capabilities are powered by the scalable load-balancing service, [worker scaleout](https://docs.mulesoft.com/cloudhub/cloudhub-fabric#worker-scaleout), and [persistent queueing](https://docs.mulesoft.com/cloudhub/cloudhub-fabric#persistent-queues) features. #### Worker Scale Out and Data Center Redundancy With [high availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric), you can add multiple workers to your application to make it horizontally scale. CloudHub automatically distributes multiple workers for the same application across two or more data centers for maximum reliability. When deploying your application to two or more workers, the HTTP load balancing service distributes requests across these workers, allowing you to scale your services horizontally. Requests are distributed on a round-robin basis. #### Persistent Queues Persistent queues ensure zero message loss and allow you to distribute non-HTTP workloads across a set of workers. For example, if your application is deployed to more than one worker, persistent queues allow interworker communication and workload distribution. If a large file is placed in the queue, your workers can divide it up and process it in parallel. Persistent queues also guarantee delivery of your messages; even if one or more workers or datacenters go down, persistent queues facilitate disaster recovery and provide resilience to hardware or application failures. For more details about worker scale out and persistent queues, refer to [High Availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric). ## Security CloudHub architecture provides a secure platform for your integrations. Securing your payload data is critically important. To this end, CloudHub does not inspect, store, or otherwise interact directly with payload data. CloudHub workers provide a secure facility for transmitting and processing data by giving each application its own virtual machine. This ensures complete isolation between tenants for payload security, and isolation from other tenants’ code. CloudHub collects monitoring, analytics, and log data from CloudHub workers and may perform actions on behalf of the user on CloudHub workers. All communication between CloudHub platform services and the worker cloud is secured using SSL with client certificate authentication. This ensures that unauthorized parties cannot read data and that they cannot initiate unauthorized actions. [Secure properties](https://docs.mulesoft.com/cloudhub/secure-application-properties) can also be loaded as part of your application bundle. If a property is flagged as secure, it won’t be viewable even through the Runtime Manager console, in fact, it is never propagated anywhere outside the CloudHub worker running the application. For more information about MuleSoft’s approach to security, please see the [Anypoint Cloud Security & Compliance whitepaper](https://www.mulesoft.com/sites/default/files/security-whitepaper.pdf). ## See Also - [CloudHub Networking Guide](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide) - [CloudHub FAQ](https://docs.mulesoft.com/cloudhub/cloudhub-faq) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [Maintenance and Upgrade Policy](https://docs.mulesoft.com/cloudhub/maintenance-and-upgrade-policy) - [status.mulesoft.com](https://status.salesforce.com/products/Mulesoft) - [eu1-status.mulesoft.com](https://status.salesforce.com/products/Mulesoft) - [High Availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) - [Application Monitoring and Automatic Restarts](https://docs.mulesoft.com/cloudhub/worker-monitoring) - [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/) --- product: CloudHub --- # CloudHub Command-Line Interface > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Platform provides a scripting and command-line tool for CloudHub. The command-line interface (CLI) supports both the interactive shell and standard CLI modes and works with: - [CloudHub Applications](#cloudhub-apps) - [CloudHub Dedicated Load Balancers](#cloudhub-dlb) - [CloudHub Anypoint VPCs](#cloudhub-vpc) ## CloudHub Applications
CommandDescription

Describes the history of the alarm

Lists all alerts in the environment

Copies a CloudHub application

Deletes an application

Deploys a new application

Shows application details

Download application logs to specified directory

Lists all applications in the environment

Modifies an existing application, optionally updating the ZIP file

Restarts a running application

Starts an application

Stops a running application

Tail application logs

Lists all supported regions

Lists all available runtimes

### runtime-mgr:cloudhub-alert-history:describe \> runtime-mgr:cloudhub-alert-history:describe \[flags\] Describes the history of the alarm passed in `` Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-alert:list \> runtime-mgr:cloudhub-alert:list \[flags\] Lists all alerts associated with your current environment Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:copy \> runtime-mgr:cloudhub-application:copy \[flags\] Copies the CloudHub application passed in `source` to the target passed in `target` Arguments `source` and `target` should be formatted as follows: `([group_id]/)/` If `group_id` is not specified, it defaults to the currently selected Organization ID For example: \> runtime-mgr:cloudhub-application:copy Services:QA/application-1 Development:QA/application-2 Copies the application named `application-1` from the QA environment of the Services organization to the QA environment of the Development organization. If the Anypoint Platform CLI is using the QA environment in the Services organization, the command can simply take the application name as a `source`: \> runtime-mgr:cloudhub-application:copy application-1 Development/QA/application-2 > [!NOTE] Running this command requires your user to have read/write access to the `/tmp` directory > of the OS where CLI is installed. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--property

Set a property (name:value).

--property "salesforce.password:qa\=34534"

> [!NOTE] This command has multi-option flags. When using multi-option flags in a command, either > put the parameter before the flags or use a \`-- \` (two dashes followed by a space) before the > parameter. > [!NOTE] When copying an application containing safely hidden application properties, pass the > properties in the `copy` command using the `--property` flag. For information about safely hidden > application properties, see [Safely Hide Application Properties](https://docs.mulesoft.com/cloudhub/secure-application-properties). ### runtime-mgr:cloudhub-application:delete \> runtime-mgr:cloudhub-application:delete \[flags\] Deletes the running application you specify in `` > [!WARNING] This command does not prompt twice before deleting. If you send a delete instruction, > it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:deploy \> runtime-mgr:cloudhub-application:deploy \[flags\] Deploys the Mule deployable archive ZIP file that you specify in `` using the name you set in `` You will have to provide the absolute or relative path to the deployable ZIP file in your local hard drive and the name you give to your application has to be unique. > [!NOTE] If successful, this command’s output includes the deployment status of `UNDEPLOYED`, which > indicates that CloudHub uploaded the application successfully. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--runtime

Name and version of the runtime environment.
Use this flag to specify the name and version of the runtime you want to deploy
If you don’t specify a runtime version, CloudHub API deploys the latest version available considering the values you select for --javaVersion and --releaseChannel.

--runtime 2.1.1-API-Gateway, --runtime 4.6-e-java8 (Edge), --runtime 4.6-e-java17 (Edge), --runtime 4.6-java8 (LTS), --runtime 4.6-java17 (LTS)

--releaseChannel

Set the name of the release channel to be used for the selected Mule version
Supported values are NONE, EDGE, and LTS
If you don’t specify a value, CloudHub API imposes the default value. The default release channel is EDGE
If you don’t specify a Mule version, the default Mule version for the selected release channel is used. If the selected release channel doesn’t exist, you get an error.

--releaseChannel EDGE

--javaVersion

Set the name of the Java version to be used for the selected Mule version
Supported values are 8 and 17
If you don’t specify a value, CloudHub API imposes the default value. The default Java version for Mule 4.6 and earlier versions is '8'.
If you don’t specify a Mule version, the default Mule version for the selected Java version is used. If the Java version you select is not available for the specified Mule version, you get an error.

--javaVersion 8

--workers

Number of workers
Default value is '1'

--workers 3

--workerSize

Size of the workers in vCores
(Default value is '1'

--workerSize 2

--region

Name of the region to deploy to

--region Canada

--property

Set a property (name:value)
Character : is not supported for the property’s name

--property "salesforce.password:qa\=34534"

`--propertiesFile

Overwrite all properties with values from this file
The file format is 1 or more lines in name:value format
Set the absolute path of the properties file in your local hard drive

--propertiesFile exampleFile.JSON

--[no-]persistentQueues

Enable or disable persistent queues
Default value is disabled

--[no-]persistentQueues

`--[no-]persistentQueuesEncrypted `

Enable or disable persistent queue encryption
Default value is disabled

--[no-]persistentQueuesEncrypted

--[no-]staticIPsEnabled

Enable or disable static IPs
Default value is disabled

--[no-]staticIPsEnabled

--[no-]objectStoreV1

Enable or disable Object Store V
objectStoreV2 can’t also be provided when using objectStoreV1 flag

--[no-]objectStoreV1

--[no-]objectStoreV2

Enable or disable Object Store V2
objectStoreV1 can’t also be provided when using objectStoreV2 flag

--[no-]objectStoreV2

--[no-]autoRestart

Automatically restart app when not responding
Default value is enabled

--[no-]autoRestart

--output

Specify the response format
Supported values are table (default) and json

--output json

--timeout

Set the timeout value in miliseconds
Can take values between 60000 and 300000

--timeout 90000

> [!NOTE] You won’t be able to allocate static IPs Anypoint Platform CLI. You can simply enable and > disable them. > [!IMPORTANT] If you deploy without using any flags, your application deploys using all your > default values. > [!NOTE] This command has multi-option flags. When using multi-option flags in a command, either > put the parameter before the flags or use a \`-- \` (two dashes followed by a space) before the > parameter. ### runtime-mgr:cloudhub-application:describe \> runtime-mgr:cloudhub-application:describe \[flags\] Displays information on the application you pass in `` Use the flag `-o json` to get the raw JSON response of the application you specify in ``. The command returns data such as the application’s domain, its status, the last time it was updated, the Mule version, the ZIP file name, the region, monitoring, and workers; as well as `TRUE` or `FALSE` information for persistent queues and static IPs enablement. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:download-logs \> runtime-mgr:cloudhub-application:download-logs \[flags\] Downloads logs the for application specified in `` to the specified directory Contrarily to what you see in the UI, the logs you download from the CLI won’t separate system logs from worker logs. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:list \> runtime-mgr:cloudhub-application:list \[flags\] Lists all applications available in your Anypoint Platform CLI It returns your application name, its status, the number of vCores assigned and the last time it was updated. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:modify \> runtime-mgr:cloudhub-application:modify \[zipfile\] \[flags\] Updates the settings of an existing application Optionally, you can update it by uploading a new ZIP file. This command can take all the same flags as the `deploy` command. > [!NOTE] This command’s output includes `Status`, which is the application’s previous deployment > status state. > [!NOTE] This command has multi-option flags. When using multi-option flags in a command, either > put the parameter before the flags or use a \`-- \` (two dashes followed by a space) before the > parameter. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--runtime

Name and version of the runtime environment.
Use this flag to specify the name and version of the runtime you want to deploy
If you don’t specify a runtime version, CloudHub API deploys the latest version available considering the values you select for --javaVersion and --releaseChannel.

--runtime 2.1.1-API-Gateway, --runtime 4.6-e-java8 (Edge), --runtime 4.6-e-java17 (Edge), --runtime 4.6-java8 (LTS), --runtime 4.6-java17 (LTS)

--releaseChannel

Set the name of the release channel to be used for the selected Mule version
Supported values are NONE, EDGE, and LTS
If you don’t specify a value, CloudHub API imposes the default value. The default release channel is EDGE
If you don’t specify a Mule version, the default Mule version for the selected release channel is used. If the selected release channel doesn’t exist, you get an error.

--releaseChannel EDGE

--javaVersion

Set the name of the Java version to be used for the selected Mule version
Supported values are 8 and 17
If you don’t specify a value, CloudHub API imposes the default value. The default Java version for Mule 4.6 and earlier versions is '8'.
If you don’t specify a Mule version, the default Mule version for the selected Java version is used. If the Java version you select is not available for the specified Mule version, you get an error.

--javaVersion 8

--workers

Number of workers
Default value is '1'

--workers 3

--workerSize

Size of the workers in vCores
(Default value is '1'

--workerSize 2

--region

Name of the region to deploy to

--region Canada

--property

Set a property (name:value)
Character : is not supported for the property’s name

--property "salesforce.password:qa\=34534"

`--propertiesFile

Overwrite all properties with values from this file
The file format is 1 or more lines in name:value format
Set the absolute path of the properties file in your local hard drive

--propertiesFile exampleFile.JSON

--[no-]persistentQueues

Enable or disable persistent queues
Default value is disabled

--[no-]persistentQueues

`--[no-]persistentQueuesEncrypted `

Enable or disable persistent queue encryption
Default value is disabled

--[no-]persistentQueuesEncrypted

--[no-]staticIPsEnabled

Enable or disable static IPs
Default value is disabled

--[no-]staticIPsEnabled

--[no-]objectStoreV1

Enable or disable Object Store V
objectStoreV2 can’t also be provided when using objectStoreV1 flag

--[no-]objectStoreV1

--[no-]objectStoreV2

Enable or disable Object Store V2
objectStoreV1 can’t also be provided when using objectStoreV2 flag

--[no-]objectStoreV2

--[no-]autoRestart

Automatically restart app when not responding
Default value is enabled

--[no-]autoRestart

--output

Specify the response format
Supported values are table (default) and json

--output json

--timeout

Set the timeout value in miliseconds
Can take values between 60000 and 300000

--timeout 90000

### runtime-mgr:cloudhub-application:restart \> runtime-mgr:cloudhub-application:restart \[flags\] Restarts the running application you specify in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:start \> runtime-mgr:cloudhub-application:start \[flags\] Starts the running application you specify in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:stop \> runtime-mgr:cloudhub-application:stop \[flags\] Stops the running application you specify in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### runtime-mgr:cloudhub-application:tail-logs \> runtime-mgr:cloudhub-application:tail-logs \[flags\] Tails application logs This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:region:list \> cloudhub:region:list \[flags\] Lists all supported regions Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:runtime:list \> cloudhub:runtime:list \[flags\] Lists all supported runtimes This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ## CloudHub Dedicated Load Balancers
CommandDescription

Adds an IP or range of IPs to the load balancer allowlist

Removes an IP or range of IPs from the load balancer allowlist

Creates a load balancer

Deletes a load balancer

Shows load balancer details

Disables dynamic IPs

Enables dynamic IPs

Lists all load balancers in an organization

Adds a proxy mapping rule at the specified index

Lists the proxy mapping rules for a load balancer

Removes a proxy mapping rule

Adds an additional certificate to an existing load balancer

Shows the load balancer configuration for a particular certificate

Removes a certificate from a load balancer

Sets the default certificate that the load balancer will serve

Starts a load balancer

Stops a load balancer

Adds an IP or range of IPs to the load balancer allowlist

Removes an IP or range of IPs from the load balancer allowlist

### cloudhub:load-balancer:allowlist:add \> cloudhub:load-balancer:allowlist:add \[flags\] Adds a range of IP addresses specified in `` to the allowlist of the load balancer specified in `` > [!NOTE] The allowlist works at the load balancer level, not at the CN certificate level. Make sure > you only pass IP addresses formatted in > [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks). This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:allowlist:remove \> cloudhub:load-balancer:allowlist:remove Removes an IP or range of IPs addresses specified in `` to the allowlist of the load balancer specified in `` > [!WARNING] This command does not prompt twice before deleting. If you send a delete instruction, > it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:create \> cloudhub:load-balancer:create \[flags\] Creates a load balancer using the specified values in the following variables:
ValueDescriptionExample

vpc

Name of the Anypoint VPC to which this load balancer is bound.
If your Anypoint VPC name contains spaces, you need to pass it between ´"´ characters.

vpc-demo

name

Name for the load balancer.

newtestloadbalancer

certificate

Absolute path to the .pem file of your server certificate in your local hard drive.
Your certificate files need to be PEM encoded and not encrypted.

/Users/mule/Documents/cert.pem

privateKey

Absolute path to the .pem file of your private key of the server certificate in your local hard drive.
Your private key file needs to be passphraseless.

/Users/mule/Documents/privateKey.pem

> [!CAUTION] The name for the load balancer that you pass in `` must be unique. > By default, your load balancer listens external requests on HTTPS and communicates with your > workers internally through HTTP. > If you configured your Mule application within the Anypoint VPC to listen on HTTPS, make sure you > set `upstreamProtocol` to HTTPS when creating the mapping list using the > [load-balancer mappings add](#cloudhub-load-balancer-mappings-add) command. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--clientCertificate

Client certificate file

--clientCertificate /Users/mule/Documents/CertificateFile.pem

--crl

Certificate revocation list file

--crl /Users/mule/Documents/crlFile.pem

--http

Specifies the Load balancer HTTP behavior. It can be set to on (accepts HTTP requests and forwards it to your configured default sslendpoint), off (refuses all HTTP requests), or redirect (redirects to HTTPS).

--http off

--transportDownstreamProtocols

TLS version used for communication between customer and DLB
Supported values: TLSv1.2, TLSv1.3

--transportDownstreamProtocols=TLSv1.2

--transportUpstreamProtocols

TLS version used for communication between DLB and Mule worker
Supported values: TLSv1.2, TLSv1.3

--transportUpstreamProtocols=TLSv1.2

--[no-]dynamic-ips

Uses dynamic IPs, which are not persistent through restarts

--[no-]dynamic-ips

--verificationMode

Specifies the client verification mode. It can be set to on (verify always), off (don’t verify), or optional (verification optional).

--verificationMode optional

> [!NOTE] CloudHub does not implement the Online Certificate Status Protocol (OCSP). To keep your > certification revocation list up to date, it’s recommended to use the > [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) > to update your certificates programmatically. For more configuration information, see [Configure SSL Endpoints and Certificates](https://docs.mulesoft.com/cloudhub/lb-ssl-endpoints). ### cloudhub:load-balancer:delete \> cloudhub:load-balancer:delete \[flags\] Deletes the load balancer specified in ``. > [!WARNING] This command does not prompt twice before deleting. If you send a delete instruction, > it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:describe \> cloudhub:load-balancer:describe \[flags\] Displays information about the load balancer that is specified in `` Use the flag `-o json` to get the raw JSON response of the application you specify in `` It displays load balancer’s name, domain, its state and the Anypoint VPC Id to which the load balancer is bound. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:dynamic-ips:disable \> cloudhub:load-balancer:dynamic-ips:disable \[flags\] Disables dynamic IPs for the load balancer specified in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:dynamic-ips:enable \> cloudhub:load-balancer:dynamic-ips:enable \[flags\] Enables dynamic IPs for the load balancer specified in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:list \> cloudhub:load-balancer:list \[flags\] Lists all load balancers in your Anypoint Platform It displays load balancer’s name, domain, its state, and the Anypoint VPC ID to which the load balancer is bound. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:mappings:add \> cloudhub:load-balancer:mappings:add \[flags\] \[certificateName\] Adds a proxy mapping rule to the load balancer specified in `` in the CN passed under the `certificateName` flag. If no `certificateName` is passed, Anypoint Platform CLI adds the mappings to the default SSL endpoint.
ValueDescriptionExample

name

Name of the load balancer to which this rule is applied.

testloadbalancer

inputUri

Name of the URI of your input URL

example.com

appName

Name of the app of your output URL to which the request is forwarded

{app}-example

appUri

URI of the app of your output URL to which the request is forwarded

/

For the values in the example above, for an input call to `my-superapp.api.example.com/status?limit=10`, the endpoint `my-superapp-example: /status?limit=10` will be called for the application. If no upstream protocol is set, HTTP is used as default.
FlagDescriptionExample

`--certificateName `

Certificate name

--certificateName exampleName

--upstreamProtocol <protocol>

Set the protocol used by your application to communicate internally with your load balancer
Supported Values: http, https

--upstreamProtocol http

### cloudhub:load-balancer:mappings:describe \> cloudhub:load-balancer:mappings:describe \[certificateName\] Lists the mapping rules for the load balancer specified in `` If no `certificateName` is passed, Anypoint Platform CLI returns the mappings for the default SSL endpoint. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:mappings:remove \> cloudhub:load-balancer:mappings:remove \[flags\] \[certificateName\] Removes the proxy mapping rules from the load balancer specified in `` at the priority index specified in `` and the CN specified as the `certificateName` flag If no `certificateName` is passed, Anypoint Platform CLI removes the mappings for the default SSL endpoint. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:ssl-endpoint:add \> cloudhub:load-balancer:ssl-endpoint:add \[flags\] Adds an SSL endpoint to the load balancer specified in ``, using the certificate and private key passed:
ValueDescriptionExample

name

Name for the load balancer.

newtestloadbalancer

certificate

Absolute path to the .pem file of your certificate in your local hard drive.
Your certificate files need to be PEM encoded and not encrypted.

/Users/mule/Documents/cert.pem

privateKey

Absolute path to the .pem file of your private key in your local hard drive.
Your private key file needs to be passphraseless.

/Users/mule/Documents/privateKey.pem

> [!NOTE] CloudHub does not implement the Online Certificate Status Protocol (OCSP). To keep your > certification revocation list up to date, it’s recommended to use the > [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) > to update your certificates programmatically. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--clientCertificate

Client certificate file

--clientCertificate /Users/mule/Documents/CertificateFile.pem

--crl

Certificate Revocation List file

--clientCertificate /Users/mule/Documents/crlFile.pem

--verificationMode

Specifies the client verification mode. It can be set to on (verify always) off (don’t verify) or optional (Verification optional).

--verificationMode on

For more configuration information, see [Configure SSL Endpoints and Certificates](https://docs.mulesoft.com/cloudhub/lb-ssl-endpoints). ### cloudhub:load-balancer:ssl-endpoint:describe \> cloudhub:load-balancer:ssl-endpoint:set-describe \[flags\] Shows information about the configuration of the load balancer passed in `` for the certificate specified in `` Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:ssl-endpoint:remove \> cloudhub:load-balancer:ssl-endpoint:remove \[flags\] Removes the ssl certificate specified in `` from the load balancer specified in `` > [!WARNING] This command does not prompt twice before deleting. If you send a delete instruction, > it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:ssl-endpoint:set-default \> cloudhub:load-balancer:ssl-endpoint:set-default \[flags\] Sets the certificate specified in `` as the default certificate for the load balancer passed in `` In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--http

Specifies the Load balancer HTTP behavior
It can be set to on (accepts HTTP requests and forwards it to your configured default sslendpoint), off (refuses all HTTP requests), or redirect (redirects to HTTPS)

--http redirect

### cloudhub:load-balancer:start \> cloudhub:load-balancer:start \[flags\] Starts the load balancer specified in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:stop \> cloudhub:load-balancer:stop \[flags\] Stops the load balancer specified in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:whitelist:add \> cloudhub:load-balancer:whitelist:add \[flags\] Adds a range of IP addresses specified in `` to the allowlist of the load balancer specified in ``. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:load-balancer:whitelist:remove \> cloudhub:load-balancer:whitelist:remove \[flags\] Removes an IP or range of IPs specified in `` from the allowlist of the load balancer specified in ``. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ## CloudHub Anypoint VPCs
CommandDescription

Shares an Anypoint VPC with a list of Business Groups

Shares an Anypoint VPC with a list of Business Groups

Creates a new Anypoint VPC

Deletes an existing Anypoint VPC

Show Anypoint VPC details

Sets the domain names that are resolved using your internal DNS servers

Clears the list domain names that are resolved using your internal DNS servers

Modifies the Anypoint VPC association to Runtime Manager environments

Modifies the Anypoint VPC association to Runtime Manager environments

Adds a firewall rule for Mule applications in this Anypoint VPC

Shows firewall rule for Mule applications in this Anypoint VPC

Removes a firewall rule for Mule applications in this Anypoint VPC

Lists all Anypoint VPCs

### cloudhub:vpc:business-groups:add \> cloudhub:vpc:business-groups:add \[flags\] Assigns the Anypoint VPC defined in `` to the business group(s) passed as argument(s) thereafter This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:business-groups:remove \> cloudhub:vpc:business-groups:remove \[flags\] Removes the Anypoint VPC defined in `` from the business group(s) passed as argument(s) thereafter > [!WARNING] This command does not prompt twice before removing the Anypoint VPC from the specified > resource. If you send a remove instruction, it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:create \> cloudhub:vpc:create \[flags\] \[environments...\] Creates an Anypoint VPC using the name in ``, in the region specified in ``, with the [size](https://docs.mulesoft.com/cloudhub/vpc-provisioning-concept#faq_how_to_size_vpc) passed in `` in the form of a Classless Inter-Domain Routing (CIDR) block, using [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks) and associates it to the [environments](https://docs.mulesoft.com/access-management/environments) passed as argument(s) thereafter. > [!NOTE] An Anypoint VPC needs to be bound to a business group within your organization. When > creating an Anypoint VPC, make sure to assign it a business group using the > [business-groups add](#cloudhub-vpc-business-groups-add) command. This command accepts the `--default` flag. When passed, the Anypoint VPC is created as the default Anypoint VPC for the selected environment. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:delete \> cloudhub:vpc:delete Deletes the Anypoint VPC specified in `` > [!WARNING] This command does not prompt twice before deleting. If you send a delete instruction, > it does not ask for confirmation. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:describe \> cloudhub:vpc:describe \[flags\] Displays information about the Anypoint VPC that is specified in `` Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:dns-servers:set \> cloudhub:vpc:dns-servers:set \[flags\] Sets a list of local host names (internal domain names) to be resolved using your DNS servers for which you need to provide their IP addresses (whether private or public addresses). Whenever those private domains are provided, your worker resolves them using your private DNS, so you can still use the internal host names of your private network. > [!NOTE] This feature is supported by workers running Mule versions 3.5.x, 3.6.x, 3.7.4, 3.8.0-HF1, > 3.8.1 and 3.8.2. In addition to the [default flags](https://docs.mulesoft.com/cloudhub/#default-options), this command accepts the following flags:
FlagDescriptionExample

--domain

A domain to resolve on the special DNS server list
Can be specified multiple times

--domain example.com

--server

IP address for a DNS server to resolve special domains on
Can be specified up to 3 times

--server 192.168.1.10

Every time you run this command, you overwrite your previous DNS set command. To remove a DNS set, you need to use the [vpc dns-servers unset](#cloudhub-vpc-dns-servers-unset) command. ### cloudhub:vpc:dns-servers:unset \> cloudhub:vpc:dns-servers:unset \[flags\] Clears the list of local host names (internal domain names) to be resolved using your DNS servers from the Anypoint VPC passed in `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:environments:add \> cloudhub:vpc:environments:add \[flags\] \[environments...\] Assigns the Anypoint VPC defined in `` to the environment(s) passed as argument(s) thereafter The `--default` flag allows setting an Anypoint VPC as the default for the organization, which applies to all environments which don’t have an Anypoint VPC explicitly associated. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:environments:remove \> cloudhub:vpc:environments:remove \[flag\] \[environments...\] Removes the Anypoint VPC defined in `` from the environment(s) passed as argument(s) thereafter This command accepts the `--default` flag, that removes this Anypoint VPC as the default Anypoint VPC for the environment. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:firewall-rules:add \> cloudhub:vpc:firewall-rules:add \[flags\] \[toPort\] Adds a firewall rule to the Anypoint VPC defined in `` using the values set in the variables:
ValueDescriptionExample

vpc

Name of the Anypoint VPC to which this load balancer is bound
If your Anypoint VPC name contains spaces, you need to pass it between ´"´ characters

vpc-demo

cidrBlock

IP address in CIDR notation for the firewall to allow

192.0.1.0/27

protocol

The protocol to use in the rules. It can be tcp or udp

tcp

fromPort

The port from which the firewall will allow requests. It can go from 0 to 65535

8888

toPort

optional In case a port range is needed, the fromPort and toPort variables define such range

8090

> [!CAUTION] When creating an Anypoint VPC, make sure to allow your outbound address. > By default, all IP addresses are blocked, and you need to authorize IP addresses or range of > addresses to your Anypoint VPC firewall rule. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:firewall-rules:describe \> cloudhub:vpc:firewall-rules:describe Describes all the firewall rules for the Anypoint VPC defined in `` Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:firewall-rules:remove \> cloudhub:vpc:firewall-rules:remove Removes the firewall rule from the workers inside the Anypoint VPC specified in `` at the index passed in the `` This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ### cloudhub:vpc:list \> cloudhub:vpc:list \[flags\] Lists all available Anypoint VPCs It returns ID, region, and environment of the network and whether it is the default Anypoint VPC or not. Use the `--output` flag to specify the response format. Supported values are `table` (default) and `json`. This command accepts the [default flags](https://docs.mulesoft.com/cloudhub/#default-options). ## See Also - [Anypoint Platform CLI 3.x](https://docs.mulesoft.com/anypoint-cli/latest/) --- product: CloudHub --- # CloudHub FAQ > For the full documentation index, see: https://docs.mulesoft.com/llms.txt ## What is CloudHub? CloudHub is a cloud-based integration platform as a service (iPaaS) that enables developers to integrate and orchestrate applications and services while giving operations the control and visibility they require for mission-critical demands, all without the need to install or manage middleware or hardware infrastructure. You can deploy applications to CloudHub through Anypoint Runtime Manager, found on [Anypoint Platform](https://anypoint.mulesoft.com). Read more about the CloudHub [architecture](https://docs.mulesoft.com/cloudhub/cloudhub-architecture). ## What is iPaaS? As the name suggests, iPaaS (integration platform as a service) is a development platform for building integration applications. It provides a set of services and capabilities for integrating applications in the cloud and within the enterprise. The core tenets of iPaaS are the same as PaaS, except the services on the platform are geared towards integration. In addition to some base expectations, such as multi-tenancy, elasticity and reliability, iPaaS also provides intermediation of data and events, orchestration, a service container for publishing REST and SOAP services, strong security capabilities, and monitoring and developer tooling. For more information, see [Introducing integration PaaS (iPaaS)](https://blogs.mulesoft.com/api-integration/cloud/introducing-integration-paas-ipaas/). ## How can I create a CloudHub account? As of November 2014, accounts in both CloudHub and Anypoint Platform for APIs have been merged into a single platform. An [Anypoint Platform account](https://anypoint.mulesoft.com/home/) gives you access to both the **Runtime Manager** – for deploying and managing applications both on **CloudHub** and on other servers – and to the Anypoint Platform for APIs – for creating and managing APIs through their entire lifecycle. - [Creating an Account](https://docs.mulesoft.com/access-management/managing-your-account) - [Managing Accounts Roles and Permissions](https://docs.mulesoft.com/access-management/managing-permissions) ## Where can I get Anypoint Studio? Anypoint Studio can be downloaded [here](https://www.mulesoft.com/lp/dl/anypoint-mule-studio). From Studio, you can deploy directly to CloudHub or run your applications locally on an embedded Mule runtime engine (Mule). ## How much does CloudHub cost? For specific pricing, reach out to either your account executive or your account development representative. ## How do I get support? The CloudHub team is committed to providing the best customer experience possible. Contact the CloudHub team in the [Salesforce Help](https://help.salesforce.com). You can browse and search the online [MuleSoft Trailblazer Community](https://trailhead.salesforce.com/trailblazer-community/neighborhoods/mulesoft) to find answers. Or post a question and start a new thread. If you have a paid plan, you can access the Support portal. To file a case through the Support portal: 1. Sign in to Anypoint Platform. 2. From the **?** menu, select **Support Center**. 3. Click the **Support** tile. You can browse open cases or click **Contact Support** to open a new case. 4. When you create a new case, complete the required fields (marked in red). Provide a detailed description of your issue and any supporting information. Hover over the information (**i**) icon for field-specific guidelines or instructions. 5. When finished, click **Submit**. The portal generates a unique case number and refers you to possibly relevant areas of the knowledge base that you can browse while you await a response to your case. ## What happens when my subscription expires? Seven days before your Anypoint Platform account subscription expires, you receive an email notifying you that your account is about to expire and prompting you to contact your account representative to retain your account. When your subscription expires, you can’t restart existing apps or create new apps. Running apps might stop without notice at the discretion of MuleSoft. To renew your subscription, contact your account representative. ## What is a worker? Applications that expose real-time services or APIs run on one or more "workers." Each worker is an instance of Mule that runs your integration applications. See [High Availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) for details of how workers can be shared or doubled to scale your application and provide high availability. ## What is an integration application? An integration application is one that integrates two or more applications or services. This might be as simple as synchronizing Salesforce data to a local database, or as complicated as creating a mashup using Google Apps, Facebook, and Salesforce. These applications perform functions by grabbing data from different sources and publishing it to a new location or as a REST or web service. In the traditional three-tier application model an integration app represents the data tier through connectivity to application data and the service tier through logic used to combine, transform, and route this data to consumers. ## What are Anypoint Connectors? Anypoint Connectors provide an easy way to integrate with SaaS and Cloud APIs, such as Salesforce, Facebook, AWS, PayPal, and then to use them as services within Mule. With these connectors you are then able to create orchestration that spans both SaaS and on-premises applications, using Mule. ## What is a Mule flow? A Mule flow defines how Mule processes messages between different applications. A flow defines a series of processors that act on a message triggered by an event in an application, a request to a web or REST service, or a scheduled trigger. ## What Java version are you using? - Workers that use Mule 4.6.x and later run on JDK 8 or JDK 17. - Workers that use Mule 4.5.x and later run on JDK 8 or JDK 11. - Workers that use Mule 4.4.x and later run on JDK 8 or JDK 11. - Workers that use Mule 4.3.x and later run on JDK 8 or JDK 11. - Workers that use Mule 4.2.x and later run on JDK 8 or JDK 11. ## How much storage does each worker have? The amount of storage each worker has depends on the worker size. For information about worker sizes, see [CloudHub Workers](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#cloudhub-workers). ## What are environment variables? Environment variables are properties you can set to pass in configuration to your Mule application. For example, you can create a JDBC connector with a username is set to `${db.username}`. In the environment variables, you can then set the name to `db.username` and the value to the actual username when you add or update your application. ## Can I deploy my application to a different region? Yes! Visit [Salesforce Help](https://help.salesforce.com) to file a support case to enable global deployments for your account. Applications can be deployed to: US East (N. Virginia, Ohio), US West (N. California, Oregon), Canada, South America (Brazil - Sao Paulo), Europe (Ireland, Frankfurt), UK (London), and Asia-Pacific (Sydney, Tokyo, Singapore). Administrators can [set the default region](https://docs.mulesoft.com/cloudhub/managing-cloudhub-specific-settings) on the **Organization** tab in Account Settings, but that region can be adjusted when the application is deployed, if necessary. Note that the domains of applications deployed to different regions are automatically updated to reflect the region. ## Why do I get "Failed to bind to uri" when my application starts? If you’re seeing messages like this, it’s because you’re trying to bind to a specific host instead of 0.0.0.0: ```console INFO 11-04-06 20:13:50 [DefaultSystemExceptionStrategy] Failed to bind to uri `+http://foo.cloudhub.io:8081/+` ``` Change your HTTP Connector to use 0.0.0.0 instead of your CloudHub domain name, and redeploy. ## How do I stop my application? In the Runtime Manager console, select your application, and click **Deployment** in the left navigation bar. Then, click **Stop application**. ## Can the platform restart my Mule app running on CloudHub? Yes. The following scenarios can result in the platform restarting your application (all restarts are [zero-downtime](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#zero-downtime-updates), unless the initial state of the app was down): - **Underlying infrastructure issues** If the underlying infrastructure suffers a failure, the platform migrates your application to a new worker. - **Infrastructure impairment** Any applications running on hardware marked as impaired or end-of-life are restarted to preemptively migrate the app to a new worker to prevent a possible outage. - **Security patching** If any security vulnerabilities are identified, the relevant applications are patched and restarted. See the [Critical Security Vulnerabilities](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf) policy. - **Application crash** The platform recognizes an application crash (due to a problem with custom code or a bug in the underlying stack) and restarts the worker automatically if the automatic restart option is selected. ## Why can’t I deploy more than one application? MuleSoft is limiting the free accounts to one worker, which allows you to deploy one application. You can upgrade to a [paid subscription](https://www.mulesoft.com/platform/saas/cloudhub-ipaas-cloud-based-integration) to deploy more applications, or you can scale your single application across more than one worker. ## My application has deployed successfully, so why do I see "you need to change the configuration of your docroot" when I go to mysubdomain.cloudhub.io? If you are seeing this message, your application’s endpoint might be configured to show up in a different path. If you want to make it show up at mysubdomain.cloudhub.io, reconfigure your endpoint to remove the path variable. If you are using generic endpoints, change the address (not the path). ## How long is the HTTP read timeout? Our load balancers time out after 300 seconds if no data is read. ## Can I get a static IP for my application? You can assign a static IP to your application by using the **Static IPs** application settings tab. For details, see [Static IPs Tab Settings](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub#static-ips-tab-settings). By default, you are allocated a number of static IPs equal to twice the number of production vCores in your subscription. To increase the number of static IPs allocated to your organization, reach out directly to your Account Team. Your Account Team can start the request process with you. ## How do I know what my static IP is? The static IPs assigned to your application are displayed in the **Static IPs** tab in the application settings page. ## Can I modify my application after it has been assigned a static IP? Yes, you can stop and start the application, upload a new project zip file, change its settings, and redeploy it. ## In what situations could my static IP change? Your static IP might be removed or reassigned in a couple of specific situations: - Deleting an application also removes its static IP. If you create a new application with the same name, it has a new dynamically assigned IP address. - Adding a new application by moving it from Sandbox to Production This requires a new application name and a new static IP. - If [Anypoint Virtual Private Cloud (Anypoint VPC)](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) is built for your organization, any existing application that is not already in Anypoint VPC receives a new IP address when it restarts inside Anypoint VPC. - An application is redeployed to a different geographic region. You can preallocate a static IP in the new region in the **Static IPs** tab in the application settings page. ## Can I request a specific static IP address? No. CloudHub uses a pool of static IP addresses that are assigned to a CloudHub application only upon first deployment. If that application releases that static IP, then that IP address returns to the pool and is available to other applications. ## If I am running in a CloudHub VPC, how do I assign a static IP to my internal private IP? CloudHub can set the worker’s public IP address to be static. However, the internal private IP address always remains dynamic. The private IP address is assigned from the range specified in the CloudHub worker’s address space, which was determined when your [Anypoint VPC](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) was created. ## What are the possible IP ranges that can be assigned to static IP addresses? Because CloudHub deploys on Amazon EC2, IP addresses are chosen from the Amazon EC2 IP pool. For a list of these ranges, see [Amazon EC2 Public IP Ranges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html). ## How can I change the timezone for my app? Customers with an Enterprise account can choose any global region in which to deploy their app. The actual worker is always running in the UTC timezone. ## Proactive Monitoring The CloudHub platform is monitored 24 hours a day, 7 days a week, by automated systems. Should any issue affect the health of the CloudHub infrastructure, the operations team is notified and responds immediately to diagnose and correct it. This 24x7 monitoring covers the entire CloudHub platform, benefiting all CloudHub users. You can view the current status of CloudHub services and upcoming maintenance at [`status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft) and [`eu1-status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft). ## Can I request access to heap dumps for troubleshooting purposes? No. Heap dumps cannot be shared. Instead, our **Support Center** representatives can analyze the dumps and share the required information with you. ## See Also - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) - [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub) - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [CloudHub](https://docs.mulesoft.com/cloudhub/) - [Develop Applications for CloudHub](https://docs.mulesoft.com/cloudhub/developing-applications-for-cloudhub) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [CloudHub Architecture](https://docs.mulesoft.com/cloudhub/cloudhub-architecture) - [Monitor Applications](https://docs.mulesoft.com/runtime-manager/monitoring) - [High Availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) - [Manage Queues](https://docs.mulesoft.com/cloudhub/managing-queues) - [Manage Schedules](https://docs.mulesoft.com/cloudhub/managing-schedules) - [Manage Application Data with Object Stores](https://docs.mulesoft.com/cloudhub/managing-application-data-with-object-stores) - [Anypoint Platform Command-Line Interface](https://docs.mulesoft.com/anypoint-cli/latest/) - [Safely Hide Application Properties](https://docs.mulesoft.com/cloudhub/secure-application-properties) - [Anypoint Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [Penetration Testing Policies](https://docs.mulesoft.com/cloudhub/penetration-testing-policies) --- product: CloudHub --- # CloudHub High Availability and Disaster Recovery > For the full documentation index, see: https://docs.mulesoft.com/llms.txt CloudHub provides high availability (HA) and disaster recovery (DR) that protect your applications from application and hardware failures. For an overview of HA and DR across all Mule deployment models, and to compare CloudHub with other options, see [High Availability and Disaster Recovery](https://docs.mulesoft.com/hosting-home/hadr-guide). CloudHub runs on Amazon AWS, so its availability depends on Amazon. CloudHub maps each deployment region to an Amazon region. If an Amazon region goes down, applications in that region become unavailable, and CloudHub doesn’t replicate them to other regions. ## High Availability Versus Disaster Recovery High availability (HA) measures a system’s ability to remain accessible when a component fails. You implement HA by building multiple levels of fault tolerance and load balancing into a system. On CloudHub, you achieve HA by deploying your application with multiple workers and by enabling persistent queues where appropriate. Disaster recovery (DR) restores a system to an acceptable previous state after a natural or man-made disaster, such as flooding, fires, power failures, server failures, or misconfigurations. Both strategies increase availability but differ in scope: on CloudHub, HA keeps your application serving requests through worker and availability-zone failures with no loss of service, whereas DR restores service and data after a region-level disruption but usually incurs a brief loss of service while the DR plan runs. Two measurable objectives drive your DR plan: Recovery Time Objective (RTO) The maximum downtime a business tolerates. RTO is the time the system takes to recover after a disruption. Recovery Point Objective (RPO) The maximum data loss a business accepts after a disaster. RPO drives how often you back up data. ## High Availability in CloudHub CloudHub builds high availability into its default deployment model, and MuleSoft manages it for you. When your application uses multiple workers, CloudHub deploys the workers in separate availability zones by default, which provides HA across availability zones. The distance between availability zones varies and generally stays under 350 miles. ![CloudHub deploying an application’s workers across separate availability zones within a single region](/mulesoft/current/en-us/cloudhub/_images/hadr-am-web-services.png) When your application uses a single worker and that availability zone goes down, CloudHub restarts the application in a different availability zone. The application can experience downtime during the restart. To receive alerts when a failure occurs in an availability zone or region, set up `status.mulesoft.com`. ## Disaster Recovery in CloudHub MuleSoft manages the CloudHub control plane and worker infrastructure within each region. You own the cross-region strategy, application-level failover, and data synchronization. Disaster recovery responsibilities on CloudHub divide between MuleSoft and you:
PartyResponsibility

MuleSoft

Keeps the control plane available, including the Anypoint Platform UI, deployment APIs, and platform services within the provisioned region.

MuleSoft

Patches infrastructure, applies security updates, and maintains the worker cloud.

MuleSoft

Distributes workers across two or more availability zones within the same region when you use multiple workers.

MuleSoft

Restarts applications automatically in a different availability zone when a worker or availability zone fails.

You

Define and implement a cross-region DR strategy for your primary and backup regions.

You

Decide when to trigger a regional failover, for example, based on health checks or business criteria.

You

Configure Global Server Load Balancing (GSLB) or a Dedicated Load Balancer (DLB), and set routing rules that direct traffic to a backup region during a disaster.

You

Deploy and maintain applications in more than one region when you need cross-region DR.

You

Replicate and back up the external data stores that your applications use across regions, such as databases and object stores.

You

Set up Anypoint VPC in each region where you need network connectivity for DR.

MuleSoft keeps the platform and workers resilient within a region, and you own everything that spans regions: when to fail over, how to route traffic, which applications to run in a backup region, and how to replicate data. ### Your Responsibilities for Disaster Recovery If your organization needs cross-region DR, design and operate your applications for it. MuleSoft doesn’t automatically replicate applications or fail over traffic to another region. You own these areas: - **Regional failover strategy** - Decide when to switch traffic to a backup region, for example, after a region outage or based on health checks. - **Traffic management** - Route traffic across regions with a cloud-based or on-premises load balancer, such as a Dedicated Load Balancer (DLB) or an external GSLB, and switch to the backup region as part of your DR plan. - **Application deployment** - Deploy the same or equivalent applications in a backup region, and keep their configuration and code in sync. - **Data and state** - Replicate or back up the external data stores that your integrations use, such as databases, caches, and object stores, so that applications in a DR region access the data they need. Anypoint Object Store v1 and v2 are regional and don’t provide cross-region failover. For guidance on designing HA and DR topologies, including active-active, warm standby, and cold standby, see [High Availability and Disaster Recovery](https://docs.mulesoft.com/hosting-home/hadr-guide). ### Restoring After a Disaster Your restoration steps depend on the DR strategy you put in place. After you confirm that the primary region or application is unavailable, generally follow these steps: 1. Switch traffic to the backup region. Use your load balancer, such as a GSLB or a Dedicated Load Balancer (DLB), to route traffic to the backup region. The health checks you configured mark the primary as unhealthy and direct traffic to the backup endpoints. 2. Bring backup applications online when you use cold or warm standby. If the control plane is available, use Anypoint Runtime Manager or the CloudHub API to start or scale up the backup application. If the control plane sits in the same region as the failed primary, it’s unavailable, and you can’t start or scale applications until the control plane recovers, unless you use automation that doesn’t depend on the control plane. 3. Verify that the backup region serves traffic and that dependent systems use the correct endpoints and data stores. 4. Fail back when the primary region recovers, switching traffic from the backup region to the primary and resyncing data as needed. Your RTO depends on how quickly you complete these steps and, for cold or warm standby, on how long the backup application takes to start or scale. For active-active setups, traffic continues on the remaining region without a switch. For more on recovery types and topologies, see [High Availability and Disaster Recovery Across Deployment Models](https://docs.mulesoft.com/hosting-home/hadr-guide) and [CloudHub 2.0 High Availability and Disaster Recovery](https://docs.mulesoft.com/cloudhub-2/ch2-ha-dr). ## Considerations and Limitations Account for these CloudHub behaviors when you plan HA and DR: Control plane availability When the US East region goes down, the CloudHub management UI and the REST services that enable deployments stay unavailable until the region recovers, and you can’t deploy new applications during that time. Log and telemetry buffering While the control plane is unavailable, the runtime plane sends log and telemetry data, and the worker buffers up to 1 GB of data until the control plane recovers. Persistent queues Within a region, persistent queues stay highly available. When the region or part of it goes down, usually for seconds or minutes, the queues become inaccessible and you might lose some data. CloudHub resumes communication with the queues after the region recovers. Object stores Anypoint Object Store v1, application settings, and insight-related information reside in the US East region for all applications, and Anypoint Object Store v2 resides in the same region as the deployed application. For both versions, data persists during a region outage and becomes available again when the region returns to service. Neither version provides cross-region failover. Anypoint VPC Anypoint Virtual Private Cloud (Anypoint VPC) applies at the region level. When a region goes down, that region’s VPC goes down unless you set up a VPC instance in another region. ### Suggested Alternative Deployment Model To strengthen your DR strategy, route traffic across regions with a cloud-based or on-premises load balancer. Configure the load balancer to run health checks and to route traffic to your backup region when the primary region goes down. For CloudHub-specific options, see [CloudHub Load Balancers](https://docs.mulesoft.com/cloudhub/dedicated-load-balancer-tutorial) and [Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer). ![A load balancer running health checks and routing traffic to a backup region when the primary region goes down](/mulesoft/current/en-us/cloudhub/_images/hadr-load-balancer.png) ## Best Practices - Keep your integrations stateless. - Don’t share transactional information between client invocations or scheduled runs. - When the middleware must retain data because of a system limitation, store it in an external store, such as a database or a messaging queue, rather than in the middleware infrastructure or memory. - As you scale, especially in the cloud, keep each worker’s state and resources independent of the other workers to deliver better performance, scalability, and reliability. ## See Also - [High Availability and Disaster Recovery](https://docs.mulesoft.com/hosting-home/hadr-guide) - [Anypoint Object Store v2](https://docs.mulesoft.com/object-store/) - [CloudHub 2.0 High Availability and Disaster Recovery](https://docs.mulesoft.com/cloudhub-2/ch2-ha-dr) - [Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer) --- product: CloudHub --- # CloudHub High Availability Features > For the full documentation index, see: https://docs.mulesoft.com/llms.txt CloudHub High Availability (HA) features provide scalability, workload distribution, and added reliability to your applications on CloudHub. This functionality is powered by CloudHub’s scalable load-balancing service, worker scale-out, and persistent queues features. You can enable HA features on a per-application basis using the Anypoint Runtime Manager console when either deploying a new application or redeploying an existing application. ## Prerequisites CloudHub HA requires: - A CloudHub Enterprise or Partner account type that allows you to use this feature. - Familiarity with deploying applications using the Runtime Manager console. ## Worker Scale-out CloudHub allows you to select an amount and a size for the workers of your application, providing horizontal scalability. This fine-grained control over computing capacity provisioning gives you the flexibility to scale up your application to handle higher loads (or scale down during low-load periods) at any time. Use the drop-down menus next to **workers** to select the number and size of workers of your application and to configure the computing power that you need. Depending on your subscription, you can deploy your application with up to 8 workers of any kind, up to a maximum of 128 vCores per application. To ensure that you have sufficient resources, see [CloudHub Workers](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#cloudhub-workers). Worker scale out also adds additional reliability. Mule runtime engine (Mule) automatically distributes multiple workers for the same application across two or more data centers for maximum reliability. When deploying your application to two or more workers, you can distribute workloads across these instances of Mule. CloudHub provides the following: 1. The HTTP load balancing service automatically distributes HTTP requests among your assigned workers. 2. Persistent message queues (see below) Batch jobs only run on a single worker at a time, and cannot be distributed across multiple workers. If mule restarts in the same deployment, the status will persist and batch will continue processing. If the entire application is updated or redeploying while batch is running, the rest of the batch job will not continue. The main solution for persistent batch jobs in CloudHub is to use Cloud Object Store. ## Persistent Queues Persistent queues ensure zero message loss and let you distribute workloads across a set of workers. - If your application is deployed to more than one worker, persistent queues allow communication between workers and workload distribution. For example, if a large file is placed in the queue, your workers can divide it up and process it in parallel. - Persistent queues guarantees delivery of your messages, even if one or more workers or data centers go down, providing additional message security for high-stakes processing. - With persistent queues enabled on your application, you have runtime visibility into your queues on the **Queues** tab in the Runtime Manager console. - You can enable data-at-rest encryption for all your persistent queues. By enabling this feature, you ensure that any shared application data written out to a persistent queue is encrypted, allowing you to meet your security and compliance needs. - Retention time for messages in a persistent queue is up to 4 days. There is no limit on message size or the number of messages in a persistent queue. - The worker’s persistent queue is located in the same region as the worker Note that persistent queues do not guarantee one-time-only message delivery. Duplicate messages may be sent. If one-time-only message delivery is critical for your use case, do not enable persistent queues. To learn more about how to work with persistent queues in your application, see [Manage Queues](https://docs.mulesoft.com/cloudhub/managing-queues). ## Enable CloudHub HA Features You can enable and disable either or both features of CloudHub HA in one of two ways: - When you deploy an application to CloudHub for the first time using the Runtime Manager console - By accessing the **Deployment** tab in the Runtime Manager console for a previously deployed application 1. Next to **Workers**, select options from the drop-down menus to define the number and type of workers assigned to your application. See [CloudHub Workers](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#cloudhub-workers) for more information about deploying to multiple workers. Click an application to see the overview and click **Manage Application**. Click **Settings** and click the **Persistent Queues** checkbox to enable queue persistence. If your application is already deployed, you must redeploy it for your new settings to take effect. ## How HA is Implemented HTTP load balancing is implemented by an internal reverse proxy server. Requests to the application (domain) URL `http://appname.cloudhub.io` are automatically load balanced between all the application’s worker URLs. Clients can bypass an application’s load balancer by using a worker’s direct URL. See: [CloudHub Networking Guide](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide) for more information on how to access an application in a specific CloudHub worker. ## Use Cases You can use either, both, or no HA features in a single application. - To take advantage of persistent queueing, set your Mule application to support this feature. See [Building Mule Applications to Support Persistent Queues](#building-mule-applications-to-support-persistent-queues) for more information. - Enabling persistent queues has a performance implication: Putting a small message (50KB or less) on a queue can take 10-20 milliseconds (ms); taking the same message off a queue can take 70-100 milliseconds. - Adding additional workers increases the cost of service.
Use CaseSuggested HA ConfigurationImplications

You want to scale out your application, but you are satisfied with the existing highly available CloudHub architecture in terms of preventing service interruption or message loss.

Persistent queues are not enabled.

Number of Workers: 2 or more

  • Application performance is not affected by queue latency.

  • No need to configure your application to support queue persistence.

  • If one data center experiences an outage, your workers are available in a different data center.

You have a high-stakes process for which you need to protect against message loss, but you are not experiencing issues with handling processing load and are OK with some service interruption in the case of a data center outage.

Persistent queues are enabled.

Number of Workers: 1

  • Application may experience some queue latency.

  • You need to configure your application to support queue persistence before deploying.

  • If the data center in which your worker operates experiences an outage, CloudHub automatically migrates your application to another availability zone. You may experience downtime during the migration; however, your persistent queue ensures zero message loss.

You have a high-stakes process for which you need to protect against message loss, avoid any chance of service interruption, and handle large processing loads.

Persistent queues are enabled.

Number of Workers: 2 or more

  • Application may experience some queue latency.

  • You need to configure your application to support queue persistence before deploying.

  • If one data center experiences an outage, your workers are automatically distributed to ensure redundancy.

You have an application that does not have any special requirements regarding either processing load or message loss.

Persistent queues are not enabled.

Number of Workers: 1

  • Application performance is not affected by queue latency.

  • No need to configure your application to support queue persistence.

  • If the data center in which your worker operates experiences an outage, CloudHub automatically migrates your application to another availability zone, but you may experience some downtime and message loss during the migration.

## Persistent Queues for Applications Containing Batch Jobs When you deploy an application containing batch jobs to CloudHub with persistent queues enabled, the batch jobs use CloudHub persistent queuing for the batch queuing functionality. If you enable persistent queues, note the following limitations: - Batch jobs using CloudHub persistent queues experience additional latency. For better performance, disable persistent queues. - CloudHub persistent queues occasionally process a message more than once. To ensure that messages are processed only once, disable persistent queues. - When an application restarts, message loss can occur. Because of these limitations, Mulesoft recommends that you disable persistent queues for batch jobs. To disable a persistent queue for a batch job, add the following property to the application: ```xml batch.persistent.queue.disable=true ``` By default, the value of this property is `false`. When set to true, the application doesn’t use the persistent queue for the batch job, but the persistent queue remains enabled for other Mule components. ## Building Mule Applications to Support Persistent Queues For your application to benefit from persistent queuing, implement reliability patterns in your application code, separating individual XA transactions from VM transports. See [Reliability Patterns](https://docs.mulesoft.com/mule-runtime/latest/reliability-patterns) for more information. ![Reliability Pattern](/mulesoft/current/en-us/cloudhub/_images/ch-fabric.png) The reliable acquisition flow reliably delivers a message from an inbound HTTP connector to an outbound VM endpoint. If the reliable acquisition flow cannot put the message into the VM queue, it ensures that the message is not lost by returning an "unsuccessful request" response to the client so that the client can retry the request. The application logic flow delivers the message from an inbound VM endpoint to the business logic processing in your application. This flow represents one transaction. (Your business logic may involve several other transactions, not shown.) In between these two flows, a persistent VM queue holds the messages committed by the reliable acquisition flow until they are ready for processing by the application logic flow. In case of a processing error within the transaction or in case of a transaction timeout (the time allotted for the transaction is exceeded), Mule triggers a rollback. This rollback erases any partial processing that has occurred on the message and places the message back on the queue. If your Mule instance experiences an outage and is unable to explicitly roll back a transaction, the transaction automatically rolls back once the time allotted for the transaction is exceeded. The allotted time is determined by the `timeout` attribute of the transaction element. You can configure the timeout yourself, or accept the default. It is helpful to think of each transaction in terms of three steps: 1. Begin. Mule kicks off the processing of all subcomponents within the transaction. 2. Commit. Mule sends the result of the completed transaction on to the next step. (For XA transactions, the commit step has two phases: a _commit-request phase_ and a _commit phase_. During the commit-request phase, Mule coordinates the results of the multiple resources within the scope of the transaction and confirms that all processing executed successfully and is ready to commit. The commit phase then calls each resource to commit its processing.) 3. Rollback. If an error occurs in either the Begin or Commit steps, Mule rolls back the operations within the transaction so that no one part results in partial completion. The following code snippet provides an example of an application set up in a reliability pattern using VM transports for queue persistence on CloudHub. ```xml .... ``` ### Differences Between Hybrid VM Queues and CloudHub VM Queues The following table describes key differences between hybrid VM queues and CloudHub VM queues.
VM Queues in On-Premises ApplicationsVM Queues in Applications deployed to CloudHub

You can configure the maximum number of outstanding messages using the queue-profile element.

There is no limit to the number of outstanding messages in CloudHub. Even if you have a queue-profile element coded in your application with a maximum number of outstanding messages, CloudHub allows unlimited outstanding messages if you deploy the application to CloudHub with the Persistent Queues checkbox checked.

You can toggle the persistence of the queue using the queue-profile element.

The persistence of your queue is managed using the Persistent Queues checkbox in the Advanced Details section of the deployment dialog. Even if you have a queue-profile element coded in your application, CloudHub overrides these settings when you deploy the application to CloudHub with the Persistent Queues checkbox checked.

You can define a queue store for your VM queue to use.

CloudHub manages the queue store for you, so there is no need to define a queue store.

Transaction commits and rollbacks for XA transactions operate according to the two-phase commit algorithm.

In CloudHub, there is an important exception to the way the two-phase commit algorithm works for XA transactions when a message is being added to a queue. See the known issue described below for details. Note: when CloudHub consumes messages from a persistent queue, this exception to the two-phase commit algorithm does not apply.

## Considerations When messages are added to a VM queue in CloudHub, the two-phase commit protocol for XA transactions can fail to roll back a complete transaction if the following conditions are true: - The commit-request phase has completed successfully. All participating processes within the transaction execute successfully, so the message is ready to commit to the queue. - During the commit phase, an error occurs that causes a subprocess within the transaction to fail to commit, triggering a rollback of the transaction. - The VM outbound endpoint completes its commit before the rollback occurs. If all three above conditions are true, the message is added to the queue instead of being rolled back as intended by the transaction rollback process. No message loss occurs, and the transaction can still repeat, but the outbound VM queue contains an unintended message. > [!NOTE] This issue occurs only when a flow produces messages that need to be added to a VM queue. > There is no effect on the process of consuming messages from queues. ## See Also - [CloudHub Workers](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#cloudhub-workers) - [Manage Queues](https://docs.mulesoft.com/cloudhub/managing-queues) - [CloudHub architecture](https://docs.mulesoft.com/cloudhub/cloudhub-architecture) - [Transaction Management](https://docs.mulesoft.com/mule-runtime/latest/transaction-management) - [VM Connector](https://docs.mulesoft.com/vm-connector/latest/) - [Reliability Patterns](https://docs.mulesoft.com/mule-runtime/latest/reliability-patterns) --- product: CloudHub --- # CloudHub Load Balancers > For the full documentation index, see: https://docs.mulesoft.com/llms.txt 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’re deploying an application to workers in multiple regions, the rate limit for each region can 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 only TLS 1.2. It doesn’t support TLS 1.3. > [!IMPORTANT] If your application uses only TLS 1.3, for example > `jdk.tls.client.protocols=TLSv1.3`, connectivity to internal MuleSoft subsystems that use TLS 1.2 > fails. Handshake exceptions or connection failures can occur. > > Keep TLS 1.2 enabled in your application configuration. For compatibility with the shared load > balancer and platform services, set `jdk.tls.client.protocols=TLSv1.2,TLSv1.3`. ## 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. > [!NOTE] The uploaded file size can’t be over 1000MB. Dedicated load balancers are an optional component of Anypoint Platform. For information about dedicated load balancers, see [Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer). > [!NOTE] 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 - [CloudHub](https://docs.mulesoft.com/cloudhub/) - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [Dedicated Load Balancer Architecture](https://docs.mulesoft.com/cloudhub/lb-architecture) - [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) - [How to Enable DLB Streaming Feature via the API in CloudHub](https://help.salesforce.com/s/articleView?id=001116458&type=1) --- product: CloudHub --- # CloudHub Networking Guide > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This guide is for cloud deployments using the cloud-based version of Runtime Manager. See [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) for information about different deployment scenarios. ## Overview CloudHub provides a variety of tools to architect your integrations and APIs so they are maintainable, secure, and scalable. This guide covers the basic network architecture, DNS, and firewall rules. ![CloudHub Network Overview](/mulesoft/current/en-us/cloudhub/_images/ch-networking-guide.png) Figure 1. The image shows the CloudHub components: Load Balancer, Virtual Private Cloud, and the DNS records of the Mule workers. See the sections below for information about load balancing and DNS records. For information about VPC, see [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud). ## Load Balancing CloudHub provides a load balancing service for all integrations. You can use the default load balancing service or obtain a [dedicated load balancer](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer). For TLS version requirements and JVM TLS configuration when using the shared load balancer, see [Shared Load Balancers](https://docs.mulesoft.com/cloudhub/dedicated-load-balancer-tutorial#shared-load-balancers). The CloudHub load balancing service does round robin load distribution across workers, which allows workers to scale linearly as they receive more requests. The load balancing service also provides transparent switchover when an application is upgraded. See [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub). Each application deployed on CloudHub has a `CNAME` record that refers to the load balancer, for example `myapp.region.cloudhub.io`. Mule apps deployed in CloudHub must listen on host `0.0.0.0` and to either the HTTP port (`8081`) or to the HTTPS port (`8082`). The following ports are assigned on the Mule worker: - `http.port` is set to `8081` - `https.port` is set to `8082` The load balancer then forwards requests to the assigned ports on the Mule worker. Forwarded traffic still uses HTTP and HTTPS protocols, which means it can’t listen for HTTPS on `${http.port}` or plain HTTP on `${https.port}`. You must reference these ports using the reserved properties `${http.port}` and `${https.port}` respectively. CloudHub services can then dynamically allocate a port at deployment time. Here is an example of a Mule configuration that exposes an HTTPS endpoint: ```xml ``` > [!IMPORTANT] On the Mule worker, the CloudHub load balancer automatically proxies the `http.port` > `:80` to port `:8081` for HTTP and the `https.port` `:443` to `:8082` for HTTPS. > If other values for `http.port` and `https.port` are specified in the `mule-app.properties` file, > these are overwritten at deployment time. > [!NOTE] For each request a client makes through CloudHub’s load balancer > (`myapp.region.cloudhub.io`), the load balancer maintains two connections. One connection ​is > from​ the client and one is to your worker. For each connection, the load balancer manages an idle > timeout of 300 seconds that is triggered when no data is sent over ​either​ connection. If no data > is sent or received during this time period, the load balancer closes ​both connections. > > For connections that take longer than 300 seconds to process from either side, consider handling > the processing asynchronously. ## DNS Records The following DNS records for your applications are exposed when they are deployed to CloudHub:

myapp.region.cloudhub.io

Load balancer. Ports 80 and 443 forward to ${http.port} and ${https.port} respectively.

mule-worker-myapp.region.cloudhub.io

The external IP address of the Mule workers. Public HTTP services are exposed on: ${http.port} and ${https.port}

mule-worker-internal-myapp.region.cloudhub.io

The internal IP address of the Mule workers. The IP addresses for this DNS record are accessible only within a customer’s private Anypoint VPC. These IP addresses are not accessible for workers running in the MuleSoft shared VPC. Internal HTTP services are exposed on: ${http.private.port} and ${https.private.port}. The default assigned ports are 8091 and 8092 respectively, and cannot be changed.

In certain situations, you may want to know an application’s internal IP addresses, for example: - When communicating with the worker directly within the customer’s [Anypoint VPC](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) without sending data over the public internet - When setting up your own load balancer You can access these IP addresses through the `mule-worker-internal-myapp.region.cloudhub.io` record from within the Anypoint VPC. If you access the workers directly, any load distribution benefits from the CloudHub load balancing layer are lost. ## IP Ranges and Static IPs CloudHub IP addresses are chosen from the Salesforce EC2 IP pool or the Amazon EC2 IP pool, depending on availability. For a list of AWS ranges, see [Amazon AWS IP Address Ranges API](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html). The download link on that page retrieves a dynamically generated JSON representation of all ranges that include the region. This table summarizes the Salesforce IP pool ranges available for your application in each region:
AWS RegionCIDR

ca-central-1

149.60.32.0/21, 149.60.40.0/21, 149.60.48.0/21, 149.60.56.0/21

us-west-1

149.60.64.0/20, 149.60.80.0/20, 149.60.96.0/20, 31.67.56.0/23

us-west-2

149.60.128.0/18, 149.60.192.0/19, 149.60.112.0/20, 149.60.4.0/22, 149.60.1.0/24, 31.67.52.0/23, 31.67.54.0/24

us-east-2

157.232.0.0/18, 157.232.64.0/18, 149.60.224.0/19, 149.60.12.0/22, 149.60.8.0/23, 149.60.11.0/24, 31.67.48.0/22, 31.67.47.0/24

us-east-1

157.232.128.0/18, 157.232.192.0/18, 170.139.0.0/18, 170.139.64.0/18, 170.139.128.0/18, 170.139.192.0/19, 170.139.224.0/20, 149.60.24.0/21, 31.67.0.0/19, 31.67.32.0/21, 31.67.40.0/22, 31.67.44.0/23, 31.67.46.0/24

ap-northeast-1

31.69.224.0/20, 31.69.240.0/21, 31.69.27.0/24, 31.69.30.0/23

ap-southeast-1

31.69.0.0/20, 31.69.16.0/21, 31.69.24.0/23, 31.69.26.0/24, 31.69.248.0/23

ap-southeast-2

31.69.64.0/18, 31.69.32.0/19, 31.69.28.0/23, 31.69.250.0/23, 31.69.252.0/24

eu-central-1

31.68.192.0/18, 31.69.128.0/18, 31.68.86.0/23

eu-central-1 (EU Control Plane)

31.68.96.0/19, 31.69.192.0/19, 31.68.88.0/21, 31.68.85.0/24, 31.68.18.0/24, 31.68.17.0/24, 31.67.55.0/24, 31.67.58.0/23, 31.67.128.0/21, 31.67.80.0/20, 31.67.96.0/19

eu-west-1

31.68.128.0/18, 31.68.24.0/21, 31.68.80.0/22, 31.68.84.0/24

eu-west-1 (EU Control Plane)

31.68.0.0/20, 31.68.16.0/24

eu-west-2

31.68.32.0/19, 31.68.64.0/20, 31.68.20.0/22, 31.68.19.0/24

sa-east-1

31.67.64.0/20, 31.67.60.0/22

us-gov-west-1

31.66.160.0/19, 31.66.144.0/20

> [!NOTE] This information is subject to change. Check back regularly for new regions, IP ranges, > and a download link for Salesforce IP ranges. For business or compliance requirements involving IP allowlisting, use static IPs in CloudHub. Otherwise, refer to this page for the latest IP ranges and ensure your security team updates allowlists in advance of any infrastructure changes. CloudHub supports allocating a static IP for applications so that they can be allowlisted for other services. To enable a static IP for your application, go to the **Static IPs** tab in the application settings page on the Runtime Manager UI, then enable the **Use Static IP** checkbox. By default, you are allocated a number of static IPs equal to twice the number of Production vCores in your subscription. To increase this limit, contact [Salesforce Help](https://help.salesforce.com). After a static IP has been allocated for your application, the IP address is visible in the **Static IPs** tab in the application settings. For more information about static IPs, see [Static IPs Tab Settings](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub#static-ips-tab-settings). > [!NOTE] Static IP addresses are not supported for private IP addresses inside an Anypoint VPC. Sometimes firewalls or infrastructure settings don’t let Mule runtime engines reach the Runtime Manager’s public services. This might be an issue when registering a Mule, or when starting it and registering it to work with Runtime Manager. If you need to allow the IP addresses for the communication between the [Runtime Manager Agent](https://docs.mulesoft.com/runtime-manager/runtime-manager-agent) and the Runtime Manager console, see [Ports, IP Addresses, and Hostnames to Allow](https://docs.mulesoft.com/runtime-manager/rtm-agent-allowlists). > [!NOTE] You can assign Static IP to applications with multiple workers. However, it is not > possible to pre-allocate static IPs for multiple workers. In case of multiple workers, IP > addresses are automatically allocated. ## Regional Services Depending on what region you deploy your application in, the DNS record and the load balancer for your integration may change. The following table summarizes what DNS records are available for your application in each region:
Region NameRegionExample DNS Record

US Control Plane Regions

US East (N. Virginia)

us-e1

myapp.us-e1.cloudhub.io

US East (Ohio)

us-e2

myapp.us-e2.cloudhub.io

US West (N. California)

us-w1

myapp.us-w1.cloudhub.io

US West (Oregon)

us-w2

myapp.us-w2.cloudhub.io

Canada (Central)

ca-c1

myapp.ca-c1.cloudhub.io

South America (Sao Paulo)

br-s1

myapp.br-s1.cloudhub.io

Asia Pacific (Singapore)

sg-s1

myapp.sg-s1.cloudhub.io

Asia Pacific (Sydney)

au-s1

myapp.au-s1.cloudhub.io

Asia Pacific (Tokyo)

jp-e1

myapp.jp-e1.cloudhub.io

EU (Ireland)

ir-e1

myapp.ir-e1.cloudhub.io

EU (Frankfurt)

de-c1

myapp.de-c1.cloudhub.io

UK (London)

uk-e1

myapp.uk-e1.cloudhub.io

MuleSoft Government Cloud

US Gov West

usg-w1.gov

myapp.usg-w1.gov.cloudhub.io

EU Control Plane Regions

EU (Ireland)

ir-e1.eu1

myapp.ir-e1.eu1.cloudhub.io

EU (Frankfurt)

de-c1.eu1

myapp.de-c1.eu1.cloudhub.io

Note that DNS records are unique to each control plane. Though the EU control plane supports some of the same regions that the U.S. control plane supports, the DNS records are different. Deploying to a region also affects your internal and external worker DNS address. For example, if you are using the US control plane and deploy to the Ireland region, the DNS records for internal and external IP addresses are `mule-worker-myapp.ir-e1.cloudhub.io` and `mule-worker-internal-myapp.ir-e1.cloudhub.io`. ## Firewall Rules and Port Access The only two ports exposed externally are `${http.port}` and `${https.port}` (by default 8081 and 8082 respectively). If you want to access other ports, you can do so through the [Anypoint Virtual Private Cloud (Anypoint VPC)](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) offering. Additional ports can be opened inside the Anypoint VPC, for example, for JMX based monitoring. Refer to the Firewall Rules section in [Anypoint VPC documentation](https://docs.mulesoft.com/cloudhub/virtual-private-cloud#firewall-rules). ## Dedicated Load Balancing Configurations In some cases, you may want to set up a custom load balancing layer for your Mule workers, for example, if you want to provide a custom domain name or SSL certificates. Traffic can be routed from your load balancer to CloudHub workers through the internal or external DNS record for your workers. This record contains an IP address for every worker in the application. It is recommended that you set your DNS timeout to between 20-60 seconds so that any DNS changes are propagated quickly and minimize impact. You can set your own [dedicated load balancer](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer) after configuring your own [Anypoint VPC](https://docs.mulesoft.com/cloudhub/virtual-private-cloud). ## Avoid Public Discoverability for Applications on CloudHub If you have [Anypoint VPC](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) and a [CloudHub dedicated load balancer](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer), you can prevent your applications hosted in CloudHub from being publicly accessible: 1. Remove the [Anypoint VPC firewall rule](https://docs.mulesoft.com/cloudhub/virtual-private-cloud#firewall-rules) for ports 8081 and 8082 using: 1. The **Firewall Rules** tab in your Anypoint VPC management center. Remove both rules with **source** `Anywhere (0.0.0.0/0)` and ports 8081 and 8082. 2. The Anypoint Platform CLI. Run the [`cloudhub vpc firewall-rules remove`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-firewall-rules-remove) command with the index `1` and `3`. 2. Create an [allowlist](https://docs.mulesoft.com/cloudhub/lb-allowlists) in your dedicated load balancer with the IP addresses you want to authorize. > [!IMPORTANT] If you don’t have a > [CloudHub dedicated load balancer](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer), performing the first step is > sufficient to ensure that applications deployed in your Anypoint VPCs are not publicly accessible. ## See Also - [Providing an External HTTP/HTTPS Port when deploying to CloudHub](https://docs.mulesoft.com/cloudhub/developing-applications-for-cloudhub#providing-an-external-http-https-port) - [CloudHub architecture](https://docs.mulesoft.com/cloudhub/cloudhub-architecture) - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) --- product: CloudHub --- # CloudHub Notifications on Runtime Manager > For the full documentation index, see: https://docs.mulesoft.com/llms.txt ## Overview **Notifications** are standard messages that appear in the Runtime Manager console to provide status information about your applications. You can access them via the bell icon on the top-right corner of the console. When you have new notifications, the bell turns red. > [!TIP] You can also set up email [alerts](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager) that can > be sent to any email address to warn whenever a certain event has occurred. Notifications are > currently only produced by applications deployed to CloudHub, for applications deployed > on-premises, you should use Alerts. ## Manage Notifications Each notification has a priority level and a message associated with it. If the notification is associated with a specific application, the application name is also provided. ![AlertMessage](/mulesoft/current/en-us/cloudhub/_images/alertmessage.png) Click **Show All Notifications** to view all notifications including those that have already been read. ## Standard Notifications For applications deployed to CloudHub, certain events that may occur to one of your applications automatically produces a notification:
EventMessage

Worker will restart

A worker <ip> has become unresponsive. Restarting the worker.

Worker has restarted

Restart SUCCEEDED for worker <ip>.

Worker restart failed

Restart FAILED for worker <ip>.

Maximum Restarts attempted for a worker

We’ve reached the maximum amount of restart attempts.

Worker needs restarting, but restarts are disabled

A worker <ip> has become unresponsive. Restarts are disabled.

## Custom Notifications On applications that are deployed to CloudHub, you can create custom notifications using the CloudHub connector that must exist in your application. 1. Download the CloudHub connector from [Anypoint Exchange](https://docs.mulesoft.com/exchange/). ![cloudhub connector](/mulesoft/current/en-us/cloudhub/_images/cloudhub-connector.png) 2. Place an instance of the CloudHub connector in one of your project’s flows, to be triggered when something meaningful happens. 3. Configure the connector. In the **Operation** field select **Create Notification** and then set the **Domain**, **Message** and **Priority** for it. You should now be receiving notifications. 4. Optionally, set up email alerts to inform you when one of these custom events occurs. To set up email alerts, see [Alerts on Runtime Manager](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager). You must create an alert of type **Custom Notification Alert** that matches your custom notification. See the tutorial. ## Notification Retention Notifications are retained by Anypoint Platform within the bounds of the following limits, whatever happens first: - for 30 days - up to 1000 notifications per application ## See Also - [Custom Application Alerts](https://docs.mulesoft.com/cloudhub/custom-application-alerts) tutorial. - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [CloudHub Overview](https://docs.mulesoft.com/cloudhub/) - [Develop Applications for CloudHub](https://docs.mulesoft.com/cloudhub/developing-applications-for-cloudhub) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [Clustering](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) - [Monitor Applications](https://docs.mulesoft.com/runtime-manager/monitoring) - [Manage Queues](https://docs.mulesoft.com/cloudhub/managing-queues) - [Manage Schedules](https://docs.mulesoft.com/cloudhub/managing-schedules) - [Manage Application Data with Object Stores](https://docs.mulesoft.com/cloudhub/managing-application-data-with-object-stores) - [Anypoint Platform Command-Line Interface](https://docs.mulesoft.com/anypoint-cli/latest/) - [Secure Application Properties](https://docs.mulesoft.com/cloudhub/secure-application-properties) - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [Penetration Testing Policies](https://docs.mulesoft.com/cloudhub/penetration-testing-policies) --- product: CloudHub --- # CloudHub Overview > For the full documentation index, see: https://docs.mulesoft.com/llms.txt [CloudHub](https://www.mulesoft.com/platform/saas/cloudhub-ipaas-cloud-based-integration) is an integration platform as a service (iPaaS) where you can deploy sophisticated cross-cloud integration applications in the cloud, create new APIs on top of existing data sources, integrate on-premises applications with cloud services, and much more. ## Create an Application for CloudHub ![app](/mulesoft/current/en-us/cloudhub/_images/logo-app.png) - See [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub). - See [Build an HTTPS Service](https://docs.mulesoft.com/mule-runtime/latest/build-an-https-service) to include HTTPS support in this application. > [!TIP] For examples of more applications, see [Anypoint Exchange](https://docs.mulesoft.com/exchange/). You can deploy the same Mule applications to CloudHub or to an [on-premises server](https://docs.mulesoft.com/runtime-manager/deploying-to-your-own-servers). There are some differences in how features work between the environments, which you need to consider when you plan your deployment strategy. See [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies). ## Deploy your Application to CloudHub ![deploy](/mulesoft/current/en-us/cloudhub/_images/logo-deploy.png) Learn how you can deploy your applications to CloudHub: - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [Anypoint Platform Command-Line Interface (CLI)](https://docs.mulesoft.com/anypoint-cli/latest/) ### Easy Scalability CloudHub is an elastic cloud, meaning it scales on demand. You can start small and scale up as your needs grow, without changing your applications or experiencing downtime. CloudHub provides a scalable architecture – one on which you can build integration applications, publish REST APIs, or Web services, and much more. ### Integration with Anypoint Studio Using [Anypoint Studio (Studio)](https://docs.mulesoft.com/studio/), you can build integration applications and deploy them to CloudHub with just a few clicks. You can then access them like any other application deployed through the platform, by [signing in to](https://anypoint.mulesoft.com/home/) Anypoint Platform and then navigating to Runtime Manager. See [Deploy an Application from Studio](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub#from-anypoint-platform). ### Integrate Cloud and Enterprise Applications The CloudHub [Anypoint Virtual Private Cloud (Anypoint VPC)](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) enables you to construct a secure pipe to on-premises applications through an IPsec VPN tunnel, Anypoint VPC peering, a transit gateway, or AWS Direct Connect. ### CloudHub API To automate tasks or automatically deploy to CloudHub, use the [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api). This enables you to perform tasks such as manage and monitor your applications, and scale your applications. ## Manage your Application ![manage](/mulesoft/current/en-us/cloudhub/_images/logo-manage.png) Learn how you can manage an application that is currently running in CloudHub: - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) has information about settings that are general to all applications—both those deployed to CloudHub and to on-premises servers. - [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub) has information about settings that are specific to applications on CloudHub. ### Manage Applications in Runtime Manager Maintain your applications on CloudHub through the [Runtime Manager](https://docs.mulesoft.com/runtime-manager/), an intuitive cloud console where you can [manage](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) and [monitor](https://docs.mulesoft.com/runtime-manager/monitoring) every aspect of your applications in a centralized location. > [!NOTE] You can view the live status and detailed service history for the Runtime Manager console, > platform services, and the CloudHub worker cloud on > [`status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft) for the US platform. For > the EU platform, visit > [`eu1-status.mulesoft.com`](https://status.salesforce.com/products/Mulesoft). ## Monitor your Applications ![monitor](/mulesoft/current/en-us/cloudhub/_images/logo-monitor.png) Through various tools, Runtime Manager enables you to triage problems, view logs, set up alerts, view dashboards, and more. See [Monitor Applications](https://docs.mulesoft.com/runtime-manager/monitoring) for an overview on the different ways that Runtime Manager enables you to monitor your running applications. > [!NOTE] Heap dumps cannot be shared. Instead, our **Support Center** representatives can analyze > the dumps and share the required information with you. ## Limitations When deploying to CloudHub, keep in mind the following limitation: - CloudHub blocks outbound SMTP traffic when more than 20 emails are sent in one hour. ## See Also - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) - [Develop Applications for CloudHub](https://docs.mulesoft.com/cloudhub/developing-applications-for-cloudhub) - [CloudHub FAQ](https://docs.mulesoft.com/cloudhub/cloudhub-faq) - [CloudHub Architecture](https://docs.mulesoft.com/cloudhub/cloudhub-architecture) - [High Availability](https://docs.mulesoft.com/cloudhub/cloudhub-fabric) - [CloudHub Networking Guide](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide) - [Manage Deployed Applications](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications) - [Manage Applications on CloudHub](https://docs.mulesoft.com/cloudhub/managing-applications-on-cloudhub) - [Penetration Testing Policies](https://docs.mulesoft.com/cloudhub/penetration-testing-policies) - [Cloud Security and Compliance Whitepaper](https://www.mulesoft.com/api/security) - [CloudHub Overview](https://www.mulesoft.com/platform/saas/cloudhub-ipaas-cloud-based-integration) --- product: CloudHub --- # CloudHub Release Notes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt - [CloudHub Release Notes](https://docs.mulesoft.com/release-notes/cloudhub/cloudhub-release-notes) - [CloudHub Runtime and OS Release Notes](https://docs.mulesoft.com/release-notes/cloudhub/cloudhub-runtimes-release-notes) - [CloudHub Dedicated Load Balancer Release Notes](https://docs.mulesoft.com/release-notes/cloudhub/cloudhub-dedicated-load-balancer-release-notes) - [Anypoint VPN Updates Release Notes](https://docs.mulesoft.com/release-notes/cloudhub/anypoint-vpn-release-notes) --- product: CloudHub --- # CloudHub Runtime Continuous Updates > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Because CloudHub is an integration platform as a service (iPaaS), it manages operating system and Mule runtime engine patching, enabling you to focus on developing and updating your applications. CloudHub applies security patches as needed to ensure that your application is secure and, once per month, it updates Mule to maintain the stability of your application. Patch updates use blue-green deployment, which ensures zero downtime. CloudHub applies continuous updates to all three MuleSoft-managed deployment platforms: - US cloud - EU cloud - MuleSoft Government Cloud ## Security Updates MuleSoft regularly runs scans to identify security vulnerabilities in Mule runtime engine, JVM, and the underlying operating system, and then automatically applies security patches based on the following SLA:
Severity LevelSeverity DefinitionPatch Applied Within

P0

Critical

7 days

P1

High

30 days

## Monthly Date-Patch Updates Once per month, MuleSoft releases a _date-patch update_, which includes backward-compatible bug fixes to address any issues discovered in Mule runtime engine. The monthly date-patch update might include security patches if the scheduled date is within the security SLA. The format of the version number for these updates is: _Major_._Minor_._Patch_ - _Date_ Here’s an example version number, including the patch date: `4.2.2 - 05-04-2020` The monthly patches update applications only to the latest date patch for the patch version. They do not change the patch version number. Starting with Mule 4.5, MuleSoft introduces two new release channels, Edge and Long-term Support (LTS). The Mule runtime versioning schema for the new release channels is: _Major\[numeric\] . Minor\[numeric\] . Patch\[numeric\] : Build\[numeric\] Channel\[e for edge, nothing for LTS\]_ Some examples of these values are: `4.5.0:1e` for Edge, and `4.6.0:1` for LTS. ### Update Schedule The schedule for date-patch updates is: - In the first full week of the month, MuleSoft releases the date patch. - In the third full week of the month, MuleSoft automatically applies the date patch that was released in the first week of the month. Applications in environments other than production are updated during the week. Production applications are updated on the weekend. > [!NOTE] All releases occur in GMT-3 time. All automatic updates occur in the local time zone of > the app’s deployment region. For example, CloudHub applies updates to apps deployed in the > Asia-Pacific (Sydney) region in the AEST time zone and to apps deployed in the US West region in > the PST time zone. When an automatic update occurs, the audit log for your app contains an entry by user `Anypoint Staff`, which shows the date and time an update occurred and whether it was successful. If the update is successful, no action is required. See [Zero-Downtime Restart Limitations](#zero-downtime-restart-limitations). If your application does not support zero-downtime updates or requires a manual update, you can apply the date patch released in the first full week of the month in week 1 or week 2. See [Update the Runtime Version Manually](#update-the-runtime-version-manually). To update multiple applications, use the CloudHub API. See [Update Multiple Apps to the Latest Runtime Release](#update-multiple-apps-to-the-latest-runtime-release). ## Live Patching CloudHub uses kernel live patching in the underlying VMs to apply the latest security and critical bug patches to the OS. You do not have to restart the CloudHub application between the monthly patching cycles. > [!IMPORTANT] CloudHub applications must be running 90-day-old or newer releases to be > live-patched. > > The CloudHub live patching process checks the application to ensure that it has enough memory and > CPU available to live patch. If there is not enough capacity, it skips the patching and retries at > a later time. ### Determine if an Application Has Been Live-patched You can check your [application logs](https://docs.mulesoft.com/cloudhub/viewing-log-data#view-logs) to determine if an application has been live patched. ![Application live patching log](/mulesoft/current/en-us/cloudhub/_images/live-patching-log.png) ## Edge and LTS Releases for Mule Starting with Mule 4.5, MuleSoft introduces two new release channels, Edge and Long-Term Support (LTS). Both release channels are available in all our deployment models: Anypoint Runtime Fabric, CloudHub, CloudHub 2.0, and Hybrid Standalone. Release cadence refers to new Mule runtime versions. Patch updates for supported versions continue to follow the monthly patch update schedule. Consider these factors to determine the approach that best suits your requirements ahead of the Mule 4.4 End of Standard Support.
Channel TypeRelease CadenceDifferentiatorsSupport Coverage

Edge

Up to three times per year

  • Includes new features on a frequent release cadence with shorter maintenance coverage.

  • Versions aren’t FedRAMP approved.

For versions 4.9 and later:

  • Standard Support until one month after the next Edge version is released

  • 3 months of Extended Support

For version 4.8:

  • 5 months of Standard Support

  • 3 months of Extended Support

For versions 4.5 to 4.7:

  • 4 months of Standard Support

  • 4 months of Extended Support

LTS

Periodic (Scheduled for February)

  • Includes new features introduced in prior Edge releases, along with new features introduced in the February Edge release. This release is maintained for an extended period over being the first to adopt new capabilities.

For version 4.6 and later:

  • A minimum of 18 months of Standard Support

  • A minimum of 6 months of Extended Support

If an LTS version is released in February, both Edge and LTS share the same underlying version, including the same minor Mule runtime version and new features. To review the new support policy that aligns with the new release periods and types of releases, see [MuleSoft Support Policy](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/versioning-back-support-policy.pdf). > [!NOTE] For information about the monthly patch update process, see > [Update Patches to Mule](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions). ## Edge Channel Starting with Mule 4.5, MuleSoft releases Edge versions up to three times a year. Use the Edge channel if you want to stay on top of the latest features and feel comfortable with a more frequent release cycle and auto-app upgrade cycle. The Edge channel includes the latest features and innovations available on the MuleSoft platform. ## LTS Channel Starting with Mule 4.6, MuleSoft releases Long-Term Support (LTS) versions periodically, scheduled for February. If you’re on Mule 4.4, you aren’t required to upgrade to Mule 4.6. However, because Mule 4.5 was released in October 2023, Standard Support for Mule 4.4 ends in October 2024, followed by the end of Extended Support in October 2025. For CloudHub and CloudHub 2.0 customers, once Standard Support for Mule 4.4 ends, if you want to deploy new apps, you must do so on Mule 4.6 LTS or Mule 4.8 Edge. Use the LTS channel if you want to avoid maintaining new versions frequently. The LTS channel adopts new capabilities after they have been introduced via Edge releases. ## Switch from an Edge Version to an LTS Version You can switch from an Edge version to an LTS version and vice versa. However, when moving from Edge to LTS, you must choose a later LTS version. For example, if you choose Mule 4.6 LTS and you want to implement a specific new feature released on Mule 4.7 Edge, you can opt into that Edge release, then merge into Mule 4.9 LTS once it is available. MuleSoft does not support apps that are switched from Edge to an older LTS version. For example, switching an app from Mule 4.7 Edge to Mule 4.6 LTS might result in losing some of the new features in the older LTS version. ## Mule Runtime Release Cadence Support The following table shows the Mule runtime release cadence support for CloudHub:
Mule VersionRelease DateJava VersionEnd of Standard SupportEnd of Extended Support

4.13 Edge

October 2026

17

March 2027

June 2027

4.12 Edge

June 2026

17

November 2026

February 2027

4.11 Edge

February 2026

17

July 2026

October 2026

4.10 Edge

October 2025

17

March 2026

June 2026

4.9 LTS

February 2025

17

August 2027

February 2028

4.9 Edge

February 2025

17

November 2025

February 2026

4.8 Edge

October 2024

8, 11, and 17

March 2025

June 2025

4.7 Edge

June 2024

8, 11, and 17

October 2024

February 2025

4.6 LTS

February 2024

8, 11, and 17

August 2026

February 2027

4.6 Edge

February 2024

8, 11, and 17

June 2024

October 2024

4.5 Edge

October 2023

8 and 11

February 2024

June 2024

> [!NOTE] MuleSoft provides an extended support window for version 4.6 LTS due to its compatibility > with Java 8, 11, and 17. > [!NOTE] If you are a CloudHub or a CloudHub 2.0 customer and you want to create or test Mule 4.6 > applications in Anypoint Studio, the Studio version required is the next upcoming release in > March. Meanwhile, MuleSoft enables you to deploy new apps in Mule runtime 4.5e version via API, > Mule Maven plugin, and Anypoint Platform CLI starting February 14 until April 19. Auto-upgrade > from Mule 4.5 Edge to Mule 4.6 Edge for CloudHub and CloudHub 2.0 applications will be performed > in April instead of February. See > [Temporary changes to auto-upgrade and new app deployment for Mule 4.5 Edge](https://help.salesforce.com/s/articleView?id=001117251&type=1). ## Deployment Models and Application Lifecycle Management Application lifecycle management depends on the deployment model.
ActionCloudHub

Deploy net new apps

Deploy to the latest minor-patch version available under Standard Support of each channel.

Auto-upgrade

MuleSoft applies two distinct types of automatic updates:

  • Auto-patching (within the same minor version): Every month, apps in both the Edge and LTS channels are automatically updated to the latest available patch of their current minor version, as long as the app’s TLS version is compatible with the new patch. For example, an app can be updated from Mule 4.9.19 to 4.9.20. Monthly auto-patching doesn’t change the minor version. Patches are backward compatible and include bug fixes and security updates. Security updates can also be applied outside the regular schedule to address critical vulnerabilities. See the patching schedule for CloudHub and CloudHub 2.0.

  • Auto-upgrade (to a new minor version): When a minor version reaches End of Standard Support, apps are handled differently depending on the release channel:

    • Edge: Apps are automatically upgraded to the latest minor version in the Edge channel. The auto-upgrade occurs six weeks after the version reaches End of Standard Support, during that month’s patching schedule. Before the auto-upgrade, you have a self-upgrade window to move to the new minor version yourself.

    • LTS: Apps aren’t automatically upgraded to a new minor version when the version reaches End of Standard Support. To move to a later LTS minor version, upgrade your application manually. Apps that remain on a version through End of Extended Support are subject to the forced-upgrade behavior described in End of Extended Support.

Runtime version compatibility: Apps running Mule runtime 4.9 or earlier aren’t auto-upgraded to Mule runtime 4.10 or later. Mule 4.10 removes support for TLS 1.0 and 1.1, which can cause compatibility issues and break existing applications if upgraded automatically. Apps running earlier versions, such as Mule 4.6, can be auto-upgraded only as far as the Mule 4.9 release line and are moved to the latest available Mule 4.9 patch. To use Mule runtime 4.10 or later, upgrade your application manually.

Self-upgrade

For apps in the Edge channel, you can manually upgrade during the fixed window after the runtime version reaches End of Standard Support. See patching schedule for CloudHub and CloudHub 2.0.

  • Edge: Six weeks

  • LTS: Manual upgrade only (no automatic minor upgrade schedule)

Rollback

Available to the previously used version

Restart apps

Always

Keep running applications

Until End of Extended Support

End of Extended Support

Shutdown running apps.
Starting with Mule 4.7, CloudHub and CloudHub 2.0 applications in the Edge or LTS channels that are still running End of Life versions will undergo a forced upgrade to the latest version during the monthly upgrade window (See upgrade window for CloudHub and CloudHub 2.0).

Retirement

Mule apps don’t reach End of Life because they’re always auto-upgraded.

Supportability

All Mule apps are under Standard Support.

## Mule Runtime Version Naming Changes The version naming convention depends on the deployment model you’re using. A version increments: - MAJOR when a release includes features that introduce breaking changes and backward incompatibility. - MINOR when a release includes all new features keeping backward compatibility with previous minors. - PATCH when a release includes bug fixes and security updates that include upgrades to libraries with reported vulnerabilities. We build a new runtime and do a full validation test. - BUILD when a release includes changes related to Image/AMI, including OS changes, OS security updates, and changes in products outside the runtime. It doesn’t include any runtime changes. ### CloudHub The Mule runtime versioning schema for the new release channels is: _Major\[numeric\] . Minor\[numeric\] . Patch\[numeric\] : Build\[numeric\] Channel\[e for edge, nothing for LTS\]_ Each February, MuleSoft releases both an Edge and an LTS release with the same _Major.Minor_ version. To distinguish the versions, they’re represented as: - Edge: 4.6.0:1e - LTS: 4.6.0:1 CloudHub requires regular OS updates, hence the addition of the build enumeration in the full runtime version schema. Here are examples of the version numbers: - Edge: 4.5.0:1e - Edge: 4.6.0:1e - LTS: 4.6.0:1 Mule runtime does not introduce a semVer increment if there is a month with no fixes. Here is an example of the versioning schema using different patch and builds:
Hybrid StandaloneCloudHub - AMI / CloudHub 2.0 / Runtime Fabric - Docker image

Case

Release Date

Description

Patch/Build

Mule Runtime

Runtime Manager/Maven/API Tag for New Deployment

1

Oct 3, 2023

First release of 4.5.0

0th patch and 1st build

4.5.0

4.5.0:1e

2

Nov 7, 2023

Second release of 4.5

1st patch and 1st build

4.5.1

4.5.1:1e

3

Nov 7, 2023

Another build on same day for CloudHub, CloudHub 2.0, and Runtime Fabric

1st patch and 2nd build

Not Available

4.5.1:2e

4

Nov 7, 2023

OS updates only for CloudHub, CloudHub 2.0, and Runtime Fabric

1st patch and 3rd build

Not Available

4.5.1:3e

5

Dec 5, 2023

Second patch version of 4.5

2nd patch and 1st build

4.5.2

4.5.2:1e

6

Jan 2, 2024

Hot fix for a Mule runtime regression

3rd patch & 1st build

4.5.3

4.5.3:1e

7

Feb 6, 2024

Release of new minor

0th patch and 1st build

4.6.0

4.6.0:1e (Edge) / 4.6.0:1 (LTS)

The Mule runtime versioning schema uses these conventions: - Patch number in schema - In the schema `4.5.X:2e`, the patch number is the X. - The patch number starts from `0`, introducing a new minor version. - The patch number increments when the release introduces new code changes, including hotfixes to regressions or other bug fixes. - Build number in schema - In the schema `4.5.1:Ye`, the build number is Y. - The build number starts from `1`, introducing the first AMI or Docker image build of the patch. - The build number increments whenever the release introduces a new build of the AMI or Docker image for the same Mule runtime version. This increment does not indicate code changes to Mule runtime. ## Update the Runtime Version Manually The **Update Available** column indicates which apps require a runtime version update. You can schedule the update to occur at your convenience. Before updating apps in the production environment, update them in the sandbox environment and run the required tests. ### Update a Single App to the Latest Runtime Release To update an app to the latest date patch: 1. In the Runtime Manager navigation menu, click **Applications**. 2. Click the name of the application you want to update to display the details pane. 3. Access the **Settings** page for the application. 4. Click the **Runtime** tab. If the app requires an update, **Update available** appears in the **Runtime version** menu: ![Update available and the Runtime version menu on the application Settings page](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-update-available-setting.png) 5. Select the latest version from the **Runtime version** drop-down menu. 6. If you want to see details about the version, click the **Read release notes** link. 7. Click the **Apply Changes** button to update the app. CloudHub updates the app with the version you selected and displays a message indicating success or failure. If the app update is unsuccessful, the app remains in the **Update Available** tab. In this case, the app continues to run correctly on the previous runtime version and no action is required. If you select the Edge release channel, a banner appears indicating the date of the next automatic update. ![Banner indicating the date of automatic update for Edge release channel.](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-edge-auto-update.png) ### Update Multiple Apps to the Latest Runtime Release Although the Runtime Manager UI doesn’t support updating multiple apps to the latest runtime version, you can use the CloudHub API to perform a bulk update. See [How to Perform a Bulk CloudHub Application Update to the Latest Runtime Releases](https://help.salesforce.com/s/articleView?id=001116902&type=1). > [!NOTE] Applications updated using the Bulk Update API are processed with a lower priority and may > take slightly longer to update. ## Update Notification When a new runtime version is available: - The **Applications** page displays an **Update Available** column that indicates if there is an update available for the application: ![Applications page with banner and Update Available tab](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-update-req-page.png) - **Update available** and the new available updates appear in the **Runtime version** tab of the **Settings** page for the application: ![Runtime update version and Update available in the Runtime version menu.](/mulesoft/current/en-us/cloudhub/_images/cloudhub-app-update-versions.png) MuleSoft applies the updates automatically, based on the published schedules. If you want, you can update them manually at your convenience. ## Zero-Downtime Restart Limitations Zero-downtime restarts don’t work in the following cases: - The CloudHub application is a durable subscriber. In this case, only one unique subscriber can be active at a time. For these applications, you must manually stop and start the application to apply the latest update. - The CloudHub application connects to an external dependency that is unavailable, unresponsive, or requires warmup. In this case, CloudHub waits up to three minutes for the application to connect to any dependencies before assigning the application domain and related static IP addresses (if used) to the new version of the application. If either case applies to your application, contact Support and your CSM account representative for information about updating the application to be cloud-ready. ## Check Your Application Status After an Update After a new update occurs, you can check your [application status state](https://docs.mulesoft.com/runtime-manager/managing-deployed-applications#application_status_states) in the **Status** column in Runtime Manager’s **Applications** tab. You can also check your application logs to verify if your application was deployed correctly and take any remediation actions in the event of some auto-minor update-related issue. For more information, visit [View Logs](https://docs.mulesoft.com/cloudhub/viewing-log-data#view-logs). To be notified by e-mail when an error occurs after an automated update, you can [create an alert](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager#create-an-alert). ## Failed Automated Updates With blue-green deployments, when an automated update fails to be deployed to a new worker, the application continues to run the non-latest patch version on the currently running worker. Possible failure reasons include but are not limited to: - Removing one of the application properties from the Anypoint Runtime Manager UI after deployment. - Incompatibility of a custom module with the latest patch version release. > [!IMPORTANT] To avoid introducing security vulnerabilities, if your application doesn’t receive > any patches for two consecutive months, the application is stopped and force-updated to the latest > patch version. Applications that fail to start require your action to address patches. ## See Also - [Edge and LTS Releases for Mule](https://docs.mulesoft.com/release-notes/mule-runtime/lts-edge-release-cadence). - [CloudHub API Portal](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) - [Zero-Downtime Updates](https://docs.mulesoft.com/cloudhub/cloudhub-architecture#zero-downtime-updates) - [Regional Services](https://docs.mulesoft.com/cloudhub/cloudhub-networking-guide#regional-services) --- product: CloudHub --- # CloudHub to CloudHub 2.0 Application Migration > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After your Anypoint Virtual Private Cloud (VPC) upgrade is complete, you can migrate all associated applications. Migration involves creating an equivalent CloudHub 2.0 application for every CloudHub application, and linking them. The current CloudHub application runs without disruption until the upgrade completes. Then, you can use the same CloudHub URL for your CloudHub 2.0 application. > [!NOTE] During the application upgrade process, MuleSoft doesn’t provide any out-of-the-box > entitlements. Work with your account representative to remain compliant with entitlements and > finish the upgrade on time. ## Eligibility To link a CloudHub application with a CloudHub 2.0 application and gradually switch traffic using the application migration tool, first upgrade the CloudHub VPC to a CloudHub 2.0 private space by using the [VPC upgrade tool](https://docs.mulesoft.com/cloudhub/vpc-upgrade). You can use the application upgrade tool only in CloudHub 2.0 private spaces that were upgraded from a CloudHub VPC. ## Upgrade Your CloudHub Application to CloudHub 2.0 via Anypoint Platform 1. From **Anypoint Platform**, select **Runtime Manager** > **Applications**. 2. Select the CloudHub application to upgrade and go to **Settings**. If your application is eligible for the upgrade, the upgrade tooling is available on the **Settings** page. 3. Click **Upgrade to CloudHub 2.0**, then click **Start Upgrade**. ![CloudHub to CloudHub 2.0 upgrade window summarizing the application migration process and containing the Start Upgrade button.](/mulesoft/current/en-us/cloudhub/_images/upgrade-application-window.png) The **Upgrade Application to CloudHub 2.0** page opens. - The **Application Name** field shows the inherited CloudHub application name by default. To use a different name for your CloudHub 2.0 application, change it by editing the field. - The **Upgrading From** field shows the name of the CloudHub application the new application is migrated from. You can’t edit this field. The **Deployment Target** field shows the preselected private space for the application deployment based on the upgraded CloudHub VPC. You can’t edit this field. 4. For **Application File**, you can either: - Upload your application file: Download the application asset from the link under **Application File**, make the necessary changes, and upload it to deploy your new application to the CloudHub 2.0 private space. - Import file from Exchange: Import the CloudHub application you want to upgrade. 5. In the **Ingress** tab, specify the **Endpoint** configuration: 1. Select a **Host** from the dropdown list. > [!NOTE] If you’re using the `anypoint.dns.net` endpoint without a TLS context, the > **Ingress** tab doesn’t show it as a possible endpoint. 2. Select a specific subdomain from the dropdown list. 3. Add a specific path. 4. Optionally, provide a specific path rewrite. 5. Select whether you want to provide internal or external access to your endpoint. 6. Follow the steps to [deploy an application to CloudHub 2.0](https://docs.mulesoft.com/cloudhub-2/ch2-deploy). > [!WARNING] If you use a different name for the CloudHub 2.0 application, make sure you put the > CloudHub application name in the **Ingress** tab settings in the subdomain field of the endpoint > configuration. If you configure URLs incorrectly, traffic doesn’t reach the CloudHub 2.0 > application during [traffic switching](#next-steps-after-application-upgrade). > > In applications with inbound traffic, the Shared Load Balancer (SLB) handles traffic switching if > your Ingress configuration includes the default CloudHub application endpoint in the format: > `..cloudhub.io`. However, if that default endpoint is missing, and you have > configured a vanity domain or an `anypointdns.net endpoint` instead, the Dedicated Load Balancer > (DLB) switches the traffic. For more information about SLB and DLB traffic switching, see > [Understanding the Traffic Source](#understanding-the-traffic-source). > [!NOTE] The **Host** dropdown list shows only the domains initially added under the certificates > of the underlying VPC’s DLB configuration. If you add a new certificate to the original VPC’s DLB > after the application upgrade starts, add it manually under the **Domain & TLS** tab of your newly > created private space for that domain to appear on the **Host** dropdown list. ### Considerations and Limitations The upgrade process doesn’t automatically map some configuration settings to the new CloudHub 2.0 application. #### Application Properties The upgrade process doesn’t carry over application properties to CloudHub 2.0. Reconfigure these properties manually for a successful upgrade: - The upgrade process copies your CloudHub app’s properties during the CloudHub 2.0 application configuration. These properties don’t persist unless you edit at least one property or add a new property. Editing a single property, or adding a new one, causes the edited or new property and all other copied properties to persist. - The upgrade process copies the protected properties added during CloudHub 1.0 with `******` as their displayed value. Change this displayed value manually to the correct protected value within your CloudHub 2.0 application settings. #### Managing Migrated Apps via Mule Maven Plugin (MMP) To manage a migrated app using the Mule Maven plugin (MMP), copy the public URL configured in Runtime Manager during the migration. If the endpoints specified in the `publicUrl` field of your `pom.xml` file don’t match the ones configured in the UI, the Ingress configuration is lost. #### CloudHub Application Default Domain When deploying a new CloudHub 2.0 application during migration, don’t configure it to use the inherited CloudHub default domain (the shared `*.cloudhub.io` endpoint in the format `..cloudhub.io`). This domain is automatically carried over to the CloudHub 2.0 private space, but it’s globally shared and can’t be managed by you. Route traffic through your vanity domain or `anypointdns.net` endpoint instead. Using the default domain interferes with how traffic switching determines the traffic source (SLB versus DLB) and can cause traffic outages. #### Scheduler Concurrent Execution Before you migrate the application, review Scheduler configurations for the [known Scheduler concurrent-execution issue](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-configuration#scheduler-concurrent-execution). ## Next Steps After Application Upgrade After the upgrade process deploys your CloudHub 2.0 application, test the app by directing traffic to it and verifying network connectivity and the app behavior. To avoid updating your client applications that connect to CloudHub, retain the domains from CloudHub on CloudHub 2.0. To link your applications, apply either of these options: > [!NOTE] You can also use APIs for > [application linking](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/amc-application-manager/minor/4.1/console/method/%231340/) > using the `upgradeData` object while creating CloudHub 2.0 deployments, and for > [traffic switching](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/amc-application-manager/minor/4.1/console/method/%231736/) > using the newly introduced endpoint. Customer-Managed Switch the application’s [DNS](https://docs.mulesoft.com/cloudhub-2/ch2-config-endpoints-paths) to point to CloudHub 2.0. MuleSoft-Managed Carry over vanity URLs while incrementally switching percentage of traffic from CloudHub to CloudHub 2.0. > [!IMPORTANT] Restart your DLB before initiating the traffic switching. > [!NOTE] To switch application traffic, you must have the CloudHub Network Administrator > permission. Without this permission, the traffic switching fails. For more information about > assigning permissions, see > [Permissions by Product in Anypoint Platform](https://docs.mulesoft.com/access-management/permissions-by-product). > [!IMPORTANT] The CloudHub application must remain in STARTED state until the link between CloudHub > and CloudHub 2.0 is successfully established. Stopping the CloudHub application before the link is > established can cause traffic disruptions. To gradually switch traffic from CloudHub to CloudHub 2.0: 1. In **Runtime Manager**, go to **Finish Upgrade**. 2. Select the percentage of traffic to direct from CloudHub to CloudHub 2.0, and click **Save Changes**. ![Traffic switching window showing the percentage slider to gradually redirect traffic from CloudHub to CloudHub 2.0 and the Save Changes button](/mulesoft/current/en-us/cloudhub/_images/traffic-switching.png) > [!NOTE] You can roll back to CloudHub if there are failures during this stage. ### Understanding the Traffic Source The traffic source determines which type of DNS record the process updates to manage the traffic flow between your CloudHub and CloudHub 2.0 applications during the migration process. Understanding this concept helps you anticipate how the system manages traffic based on your application’s existing and new endpoint configurations. CloudHub receives traffic from two main sources: - Shared Load Balancer (SLB): This source is typically associated with the default endpoints of your CloudHub application. In applications with inbound traffic, the SLB handles traffic switching if your Ingress configuration includes the default CloudHub application endpoint in the format: `..cloudhub.io`. - Dedicated Load Balancer (DLB): This source is usually associated with vanity domains configured for your CloudHub application. If the default CloudHub endpoint is missing, and you have configured a vanity domain or an `anypointdns.net` endpoint, the DLB switches the traffic. During traffic switching, CloudHub needs to know the traffic source to correctly switch traffic between CloudHub and CloudHub 2.0. If you change your application’s endpoint configuration, the inferred traffic source also changes. For example, if you initially have only vanity domains (DLB) and then add a CloudHub default endpoint, CloudHub infers the traffic source as the SLB. > [!NOTE] If your CloudHub 1.0 application has the default endpoint configured, traffic switches at > the SLB. To switch traffic from the DLB instead, remove the CloudHub 1.0 default endpoint, apply > changes, and then change the traffic switch percentage. To ensure successful traffic switching, follow specific configurations depending on the type of load balancer you want to use and the type of traffic you expect. #### DLB with HTTPS Traffic Switching For applications using a DLB and expecting HTTPS traffic: 1. Enable the **Last-Mile Security** setting in the **Ingress** tab of the deployment settings for the CloudHub 2.0 application. 2. Enable **Upstream TLS 1.2** or higher in your DLB settings. 3. Make sure that vanity domains on CloudHub 2.0 match those on the CloudHub application to prevent dropped traffic. #### DLB with HTTP Traffic Switching For applications using a DLB and expecting HTTP traffic: 1. Add a firewall rule allowing HTTP from the local private network. > [!WARNING] The CloudHub DLB routes requests from clients to Mule apps deployed within the VPC. The > DLB sends requests to a Mule application and uses the HTTP Host header to find the certificate > endpoint that matches the request. Then, the DLB uses the URL mapping rules for that endpoint to > send the request to the Mule application. If the request doesn’t match any certificate configured > on the DLB, the DLB uses the "default" certificate endpoint to match the request against its URL > mapping rules. During traffic switching, CloudHub 2.0 doesn’t contain mapping rules for this > unmatched host within the default certificate. #### SLB with HTTPS Traffic Switching For applications using an SLB and expecting HTTPS traffic: - Enable the **Last-Mile Security** setting in the **Ingress** tab of the deployment settings for the CloudHub 2.0 application. #### SLB with HTTP Traffic Switching For applications using an SLB and expecting HTTP traffic: 1. Enable the **Accept HTTP** option within the **Advanced** tab of your private space settings. 2. Add a firewall rule allowing HTTP from any source. ### Managing API Policies During Traffic Switching When you apply API policies to your new application, they begin with a clean internal status. #### Policies Unchanged by the App Migration These policies don’t rely on internal status and their behavior remains consistent: - http-basic-authentication - cors - client id enforcement - Header injection - Header removal - ip-allowlist - ip-blocklist - ldap-authentication - message-logging - json-threat-protection - xml-threat-protection #### Policies Affected by Internal Status (Caching) These policies rely on internal status to cache data: - external-oauth2-access-token-enforcement - openam-access-token-enforcement - openidconnect-access-token-enforcement - pingfederate-access-token-enforcement - mule-http-caching-policy - jwt-validation When transitioning to the new application, these policies can either trigger additional requests to the origin servers or have different cached values depending on which application receives the requests. #### Policies Affected by Internal Status (Request Counting) These policies track the number of processed requests and can sometimes exhibit unexpected behavior during the transition to the new application: - rate-limiting - rate-limiting-sla-based - spike-control If there’s a hard change in traffic from one application to the other, policy counters behave as if they were reset. In a balanced round-robin traffic distribution, the effective number of requests can sometimes double because each application maintains an independent counting mechanism. During the CloudHub to CloudHub 2.0 application migration, traffic gradually shifts, and both applications are active simultaneously. If your API Manager policies are integrated with your original CloudHub application, the system can’t share or migrate these configurations in real time. To maintain consistent policy enforcement, configure equivalent policies on your CloudHub 2.0 application’s API instance during traffic switching. Autodiscovery connects a deployed Mule application with an API defined in API Manager. Throughout the migration, both your CloudHub and CloudHub 2.0 applications link to the same API. ## Complete the Application Upgrade After traffic fully redirects to the CloudHub 2.0 application, stop your CloudHub application within 30 days and mark the upgrade as complete. If you change your CloudHub application after it stops, the changes aren’t replicated in your new CloudHub 2.0 application. Make any required changes to the CloudHub 2.0 application settings. After your CloudHub application stops, delete it within 30 days. > [!NOTE] After the CloudHub application stops, traffic switches to the linked CloudHub 2.0 > application. To roll back the application upgrade, restart your CloudHub application and configure > the traffic switching percentage. After you delete the CloudHub application, the migration is > complete. You then can’t create another CloudHub application with the same application name. Complete or delete all CloudHub applications in a given upgraded VPC to release entitlements. ## Perform DLB Failover After the VPC upgrade and CloudHub application migration to CloudHub 2.0, perform a DLB failover to retain domains during the transition from CloudHub to CloudHub 2.0. This ensures client application compatibility. To perform a DLB failover: 1. For each DLB linked to your upgraded VPC, go to the DLB settings page and click **Failover to CloudHub 2.0**. This fails over the `anypointdns.net` domain to CloudHub 2.0, removes any additional DLB hop, and redirects traffic to your new CloudHub 2.0 private space URL. 2. After the traffic failover completes, stop and delete the CloudHub DLB linked to the VPC. > [!NOTE] If there are failures during this stage, restart the DLB to point `anypointdns.net` to > CloudHub while the DLB is in a stopped state. After you delete the DLB, you can’t roll back to > CloudHub. For the final steps after VPC upgrade and CloudHub application migration, see [CloudHub to CloudHub 2.0 Migration Completion](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-completion). ## See Also - [CloudHub VPC to CloudHub 2.0 Private Space Upgrade](https://docs.mulesoft.com/cloudhub/vpc-upgrade) - [CloudHub to CloudHub 2.0 Migration Completion](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-completion) - [Deploying Apps to Private Spaces](https://docs.mulesoft.com/cloudhub-2/ch2-deploy-private-space) --- product: CloudHub --- # CloudHub to CloudHub 2.0 Migration Completion > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After completing the VPC upgrade and application migration phases, complete the CloudHub to CloudHub 2.0 migration process and release associated entitlements within the recommended time frame: ## Mark Upgrade as Complete > [!WARNING] Marking the upgrade as complete is an irreversible action. This action deletes the > original VPC, stopped DLBs, and all CloudHub 1.0 applications marked as upgraded. All traffic then > flows through the CloudHub 2.0 private space. Marking the upgrade as complete finishes the entire VPC upgrade process. Go to the **Upgrade** tab and click **Mark Upgrade Complete**. ![\*Mark Upgrade Complete\* button within the Upgrade tab](/mulesoft/current/en-us/cloudhub/_images/mark-upgrade-complete.png) After you mark the upgrade complete, CloudHub 2.0 replaces all CloudHub resources and CloudHub assets become immutable. Perform any required changes on CloudHub 2.0. ## Entitlements for VPCs, Private Spaces, and Network Connections (VPNs/TGW) After you complete the VPC upgrade and bring over any existing TGW and VPN network connections, your old and new infrastructure count separately against your usage. Therefore, if your organization uses all purchased quota, your usage can exceed the allowed quota until you move all your applications to CloudHub 2.0 and decommission your old VPC. Work with your account representative to plan for additional entitlements, and decommission your CloudHub infrastructure (VPCs and associated DLBs) within six months after the upgrade to avoid interruptions when trying to create or edit VPCs, private spaces, or network connections. > [!NOTE] Deleting the upgraded VPC after all applications and their associated DLBs are removed > doesn’t affect your CloudHub 2.0 Private Spaces or CloudHub 2.0 applications. ## See Also - [CloudHub VPC to CloudHub 2.0 Private Space Upgrade](https://docs.mulesoft.com/cloudhub/vpc-upgrade) - [CloudHub to CloudHub 2.0 Application Migration](https://docs.mulesoft.com/cloudhub/app-migration) --- product: CloudHub --- # CloudHub to CloudHub 2.0 Migration Configuration > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Migrate your CloudHub configurations to CloudHub 2.0 by following critical steps, handling customizations, and ensuring all configuration dependencies resolve correctly. This process reduces risks and keeps your systems compliant and efficient. ## Understand the Differences Identify critical architectural differences and configuration gaps between ClouHub and CloudHub 2.0. Review deployment models and environmental dependencies that affect custom configurations. Use this information to accurately scope the migration effort and reduce incompatibility risk during upgrade planning. ### Infrastructure and Networking Differences Architecture
CloudHubCloudHub 2.0

The CloudHub architecture includes two major components: Anypoint Platform services and a multitenant cloud of virtual machines distributed across global regions where your applications run. Individual instances of an application are called workers. CloudHub uses a VM-based infrastructure.

The CloudHub 2.0 architecture includes two major components: Anypoint Platform services and a multitenant cloud of containerized replicas distributed across global regions where your applications run. Individual instances of an application are called replicas. CloudHub 2.0 uses a container-based infrastructure.

Diagram showing CloudHub architecture

Diagram showing CloudHub 2.0 architecture

Private Network The Private Network extends your corporate network and helps CloudHub workers and CloudHub 2.0 replicas to access resources behind the corporate firewall. Creating a private network differs between CloudHub and CloudHub 2.0.
CloudHubCloudHub 2.0

A Virtual Private Cloud (VPC) is a virtual, private, and isolated cloud network segment for hosting CloudHub workers.

A private space is a virtual, private, and isolated logical space in CloudHub 2.0 for running Mule apps.

Static IPs are managed per application, not at the VPC level. Turn on Static IPs for individual apps to receive their own set of egress static IPs.

Static IPs are provisioned at the private space level. All applications in the same private space share these outbound static IPs.

CloudHub provides a Shared Load Balancer (SLB) by default for all apps. The Dedicated Load Balancer (DLB) is optional, and you create and configure it within the VPC.

CloudHub 2.0 automatically provisions a fully managed ingress load balancer for the private space.

TLS/SSL certificates require manual configuration. The SLB uses the platform’s wildcard certificate. For custom domains, create a DLB and upload PEM-encoded certificates and private keys.

CloudHub 2.0 automatically creates a default TLS context for the private space with wildcard certificates for both internal and public endpoints. You can configure custom vanity domains with your own TLS context for both internal and external endpoints.

Connectivity Methods The private network connects to the corporate network using these connectivity methods:
CloudHubCloudHub 2.0
  • VPC peering (AWS VPC to Mule VPC)

    Requires configuration. Contact the MuleSoft Support team to enable.

  • AWS Direct Connect + Requires configuration. Contact the MuleSoft Support team to enable.

  • Transit Gateway Attachments

  • VPN tunnel/IPsec tunnel

  • VPN tunnel

  • Transit Gateway Attachments

Contact the MuleSoft Support team to enable VPC peering and AWS Direct Connect.

CloudHub 2.0 supports Transit Gateway or VPN tunnel.

Firewall Rules
CloudHub Ingress (Inbound) RulesCloudHub 2.0 Ingress (Inbound) Rules

CloudHub adds firewall rules automatically when you create a VPC.

CloudHub 2.0 adds firewall rules automatically when you create a private space.

By default, all traffic to a VPC is blocked unless explicitly allowed by a firewall rule. However, CloudHub automatically creates four default inbound firewall rules when you create a VPC.

Traffic to a private space is blocked unless explicitly allowed by a firewall rule.

CloudHub creates four default inbound rules automatically:

  • Two rules to allow inbound connections from within your local Anypoint VPC through ports 8091 and 8092.

    • Specifically for DLB interactions.

  • Two rules allow inbound connections from anywhere through ports 8081 and 8082.

    • Specifically for SLB interactions.

CloudHub 2.0 creates two default inbound rules automatically:

  • Two rules to allow inbound connections from any host:

    • HTTPS: port 443

    • HTTP: port 80

CloudHub supports HTTP, HTTPS, and TCP protocols. The Dedicated Load Balancer (DLB) also supports WebSockets (ws and wss).

CloudHub 2.0 supports HTTP, HTTPS, and TCP protocols. The upgrade tooling does not support TCP traffic migration yet.

The maximum number of firewall rules is approximately 35 per VPC, depending on the number of rules CloudHub requires.

The maximum number of inbound firewall rules is 300.

Egress (Outbound) Rules

CloudHub doesn’t support egress firewall rules. It allows all outbound traffic by default.

CloudHub 2.0 creates two default outbound rules automatically. You can configure additional rules and application-level egress rules for granular control. The maximum number of outbound firewall rules is 300.

CloudHub 2.0 adds two egress rules by default. You can delete these rules if you want to block all outbound traffic for security reasons:

  • TCP: All ports (to anywhere)

  • HTTPS: 443 (to anywhere)

CloudHub 2.0 Application-Level Egress Rules

CloudHub 2.0 supports egress firewall rules at the application level. Application-level egress rules are independent of private-space-level firewall rules. See Configuring Application-Level Egress Rules.

Turn on application-level egress rules in Runtime Manager.

In CloudHub 2.0, egress traffic passes through both application-level control (enforced first) and private-space-level control (enforced after application-level control).

Apply application-level egress rules when you deploy your application. See Apply Application-Level Egress Rules.

You can configure application-level egress connections, such as:

  • Anypoint MQ

  • Object Store v2

  • API Manager

Static IP Addresses
CloudHubCloudHub 2.0

CloudHub supports static IP addresses at the application level.

CloudHub 2.0 supports static IP addresses at the private space level.

If you turn on Static IPs for an application, CloudHub provides outbound static IPs.

CloudHub 2.0 provides inbound and outbound static IPs at the private space level.

Applications deployed to the same VPC don’t automatically share static IPs. If you turn on Static IPs for an application, it receives its own set of outbound static IPs. Inbound static IPs are available only through a DLB, and all applications behind the same DLB share them.

Applications deployed to the same private space use the same set of inbound and outbound static IPs. To have unique static IPs per application, use a different private space.

Load Balancing
CloudHubCloudHub 2.0

CloudHub provides two types of load balancing:

  • Shared Load Balancer (SLB): CloudHub provides it by default for all apps.

  • Dedicated Load Balancer (DLB): You create it within the VPC.

CloudHub 2.0 automatically provides a fully managed ingress load balancer for each private space with a simplified architecture that removes the need to select or create load balancers.

CloudHub load balancers provide round-robin load distribution across workers.

CloudHub 2.0 provides a fully managed ingress load balancer for each private space that automatically balances inbound traffic across multiple application replicas. The ingress load balancer auto-scales to accommodate traffic. You can configure this load balancer to meet your specific requirements.

CloudHub doesn’t support load balancer logs for the DLB. The SLB has no log access.

Download ingress traffic logs from Runtime Manager for full visibility into ingress traffic and troubleshooting.

You can assign up to four load balancer units (up to eight workers total) to a Dedicated Load Balancer (DLB) for high availability and load distribution. The Shared Load Balancer (SLB) provides fully managed high availability with no customer configuration required.

CloudHub 2.0 automatically distributes application replicas across two or more availability zones (AZs) for built-in high availability and fault tolerance. If you use the VPC upgrade tool, the private space inherits the same number of AZs as the original CloudHub VPC.

URL decoding is enabled by default at the ingress layer for both SLB and DLB:

  • SLB: URL decoding is always enabled.

  • DLB: URL decoding is enabled by default, but you can disable it by enabling the Keep URL encoding option.

URL encoding is enabled by default at the ingress layer for both Shared Space (SS) and Private Space (PS). CloudHub 2.0 does not support URL decoding at the ingress layer. URLs remain encoded as received from the client.

Domains and TLS Context
CloudHubCloudHub 2.0

SSL termination happens at the DLB layer.

SSL termination happens at the ingress load balancer layer.

The communication between the DLB and the Mule application is internal to the VPC.

Applications inside a private space communicate using the ingress load balancer via the internal endpoint. This depends on the application protocol.

Supported protocols:

Supported protocols:

  • TLS 1.2

  • TLS 1.3

An application can have multiple endpoints, depending on ‌the domain and TLS context configuration.

Mutual TLS
CloudHubCloudHub 2.0

CloudHub doesn’t provide native mutual TLS (mTLS) capability. The Dedicated Load Balancer (DLB) handles mTLS at the infrastructure level, performing client certificate validation and forwarding certificate information to applications via HTTP headers.

CloudHub 2.0 provides native mTLS with TLS contexts and truststores. Configure mTLS at the private space level with centralized management. CloudHub 2.0 also supports forward SSL, which forwards client certificate information to applications via HTTP headers.

CloudHub supports limited Certificate Authority (CA) certificates through the DLB. It accepts certificate files in PEM format only.

CloudHub 2.0 provides dynamic certificate management, application-level truststore access, and in-place updates without redeployment. Upload truststore files in PEM and JKS formats.

URL Rewriting
CloudHubCloudHub 2.0

Implement URL rewriting at the DLB level using mapping rules. Configure a DLB to use this feature.

Implement URL rewrite at the application level using domains and endpoints for a more flexible, per-app configuration.

Internal Application Communication
CloudHubCloudHub 2.0

The internal worker hostname mule-worker-internal-<app>.<region>.cloudhub.io resolves to the Mule worker’s internal IP address for VPC-internal communication.

Use one of these three options:

  • Internal endpoint: internal-<app>-<uniq-id>.<space-id>.<region>.cloudhub.io.

  • Custom internal endpoint: CNAME pointing to the internal endpoint. You can configure custom TLS contexts for internal endpoints that are only accessible via the private network.

  • Kubernetes service address: Direct pod-to-pod communication. This works only for applications in the same namespace (environment).

### Application Differences Persistent VM Queues Vs. Anypoint MQ
CloudHubCloudHub 2.0

CloudHub persistent queues store VM queue messages externally to the application. Use this feature mainly with VM components. Turn on CloudHub persistent queues on a per-application basis.

Anypoint MQ provides persistent message storage in cloud infrastructure, eliminating VM-dependent queue management. Anypoint MQ provides asynchronous message processing, event-driven architectures, and cross-application communication. Configure Anypoint MQ on a per-application basis with automatic scaling and high availability.

Logging
CloudHubCloudHub 2.0

During deployment, CloudHub automatically replaces the application archive’s log4j2.xml file with a predefined template. CloudHub uses the original log4j2.xml file only when you disable CloudHub logs.

CloudHub 2.0 merges the log4j2.xml configuration file from the application archive with predefined appenders. These appenders send logs directly to Runtime Manager and Anypoint Monitoring, preserving custom appenders while enabling platform integration.

Download the application and runtime logs separately.

CloudHub 2.0 merges application and runtime logs into a single log stream. To find runtime logs, download the application log and check for runtime-related messages.

CloudHub stores logs in the region where it was first deployed. If you move the app to another region, the logs remain stored in the initial deployment region. To reset this log retention configuration, delete and re-create the app.

CloudHub 2.0 stores logs in the region where the application is currently deployed. You can’t move the app to a different region once deployed. To reset this log retention configuration, delete and re-create the app.

CloudHub has limited control over log forwarding.

If you deselect Forward application logs to Anypoint Platform within the app configuration in Runtime Manager:

  • CloudHub 2.0 doesn’t forward application logs to Runtime Manager or Anypoint Monitoring.

  • The custom log appenders configured in your application continue to function normally (excluding file-based appenders).

This provides more granular control over platform log forwarding.

For more information, see CloudHub 1.0 Logging FAQ

For more information, see CloudHub 2.0 Logging FAQ

Known Issue: Scheduler Concurrent Execution
CloudHubCloudHub 2.0

For affected applications, CloudHub prevents overlapping executions of the same Scheduler even when the Scheduler source’s disallowConcurrentExecution setting is false or omitted.

CloudHub 2.0 honors the disallowConcurrentExecution setting. If the setting is false or omitted, another execution can start before the previous execution finishes.

This issue applies only when you migrate an application from CloudHub to CloudHub 2.0. Review each Scheduler that has a small interval, such as less than one second, and can run longer than its configured interval, when `disallowConcurrentExecution` is `false` or omitted. CloudHub 2.0 can start overlapping executions that consume the application thread pool shared by all flows. Excessive queued executions can delay or prevent other flows from running. To prevent overlapping executions after migration, explicitly set `disallowConcurrentExecution="true"`. If a trigger becomes due while the previous execution is still running, CloudHub 2.0 skips that trigger and tries again at the next configured interval. When an affected Scheduler has a very short interval, skipped triggers can generate excessive INFO-level log messages. To suppress INFO-level messages from `org.mule.runtime.core.internal.source.scheduler.DefaultSchedulerMessageSource`, including the repeated `Execution skipped` message, set its log level to **WARNING** in the application’s **Monitoring** tab. Applying the log-level change restarts the application. For instructions, see [Configure Log Levels and Categories](https://docs.mulesoft.com/cloudhub-2/ch2-manage-app-logs#configure-log-levels-and-categories). For more information about the Scheduler source setting, see [Scheduler](https://docs.mulesoft.com/mule-runtime/latest/scheduler-concept#props_scheduler). Deployment Configuration
CloudHubCloudHub 2.0

Use maven and pom.xml configuration to deploy applications to CloudHub. See Deploy Applications to CloudHub Using the Mule Maven Plugin.

App deployment with maven and pom.xml configuration takes two steps:

  1. Publish the artifact to Anypoint Exchange (mvn clean deploy).

  2. Deploy the artifact to CloudHub 2.0 (mvn clean deploy, -DmuleDeploy).

The maximum size of a Mule application (ZIP or JAR) file is 200 MB.

The maximum size of a Mule application JAR file is 350 MB.

Names are unique per control plane.

Names are unique per private space. CloudHub 2.0 adds a six-character unique ID to the application name that you specify in the public endpoint URL: Myapp-uniq-id.shard.region.cloudhub.io

  • uniq-id: is a six-digit value appended to the app name to ensure uniqueness.

  • shard: is a six-digit value associated with the space (private or shared) the app is deployed to.

The DLB supports a maximum HTTP POST (payload) size of 200 MB.

The maximum HTTP request size is 1 GB.

vCore Sizes
CloudHubCloudHub 2.0

See CloudHub Workers.

See CloudHub 2.0 Replicas.

CloudHub 2.0 provides a more granular resource capacity for applications. You can assign specific vCore increments (including 0.5, 1.5, 2.5, 3, 3.5, and 4). This granularity helps match processing needs precisely and avoids forcing a jump from 0.2 to 1 vCores. Replicas with fewer than 1.0 vCores offer limited CPU and I/O suitable for smaller workloads, while those with one or more vCores provide performance consistency. Worker Vs. Replica
CloudHubCloudHub 2.0

A worker in CloudHub is a dedicated Amazon Elastic Compute Cloud (EC2) virtual machine instance that runs your Mule application. It functions as a full, independent virtual server with its own operating system, memory, CPU resources, and isolated runtime environment.

A replica in CloudHub 2.0 is a dedicated, containerized instance of Mule runtime engine that runs your integration application. Each replica provides complete isolation between applications with its own isolated environment, allocated memory (heap and total), CPU resources (vCores), and storage capacity.

If you select Automatically restart application when not responding, CloudHub monitors the worker and automatically restarts the application if necessary.

CloudHub 2.0 provides self-healing capabilities that automatically recover applications from both Mule process failures and underlying infrastructure failures. If either the Mule process or the infrastructure fails, CloudHub 2.0 automatically restarts the application on healthy infrastructure without your intervention. Application crash recovery is enabled by default.

Diagram showing the logic of a worker

Diagram showing the logic of a replica

High Availability with Clustering
CloudHubCloudHub 2.0

CloudHub doesn’t support Mule clustering. You can run multiple workers for scale and High Availability (HA), but they’re independent runtimes without cluster semantics. There’s no distributed in-memory state or cluster-aware components.

CloudHub 2.0 supports Mule clustering. Multiple replicas of the same app form a managed cluster, enabling cluster-aware runtime behavior. This includes shared memory and distributed locking across runtime replicas, with a single primary replica running the application logic and secondary replica(s) available for high-availability if the primary goes down.

CloudHub scales applications by deploying multiple workers (up to eight) for each application. The SLB automatically distributes traffic across these workers. For applications that need shared state, store that state externally (for example, in a database or Object Store). Workers can’t share in-memory state.

CloudHub 2.0 scales applications by deploying multiple replicas (up to sixteen) for each application. The platform’s cluster mode coordinates behavior across these replicas automatically. For applications with stateful requirements, use Mule’s native clustered features (such as clustered object stores and clustered caches) to maintain state across replicas.

CloudHub achieves HA with two or more workers. It supports availability across AZs, and the platform handles failover.

CloudHub 2.0 provides fully managed HA. The platform automatically spreads replicas across two or more AZs, with round-robin HTTP load balancing and cluster-aware recovery. If you use the VPC upgrade tool, the private space inherits the same number of AZs as the original CloudHub VPC.

CloudHub monitors workers and automatically performs restarts. Blue-green deployment at the DLB or SLB layer provides seamless cutover, but this process lacks cluster draining and coordination within the runtime.

CloudHub 2.0 provides orchestrated restarts and rolling updates across replicas. Cluster-aware coordination minimizes impact during upgrades and failures.

You manage worker counts and rely on external stores for shared state.

CloudHub 2.0 provides fully managed clustering. Select replica counts, and the platform handles cluster formation, health, placement, and recovery.

### Runtime Manager Differences Alerts
CloudHubCloudHub 2.0

CloudHub triggers custom alerts when your application sends notifications to Runtime Manager using Anypoint Connector for CloudHub (CloudHub Connector). For more information, see Custom Application Alerts.

CloudHub 2.0 enables application deployment success and failure alerts. For custom alerting, CloudHub 2.0 leverages Anypoint Monitoring Alerts For more information, see Configuring Application Alerts.

## Migrate Your CloudHub Applications to CloudHub 2.0 Migrate your CloudHub applications to CloudHub 2.0 by gathering reusable artifacts, creating private spaces, and updating application configurations. Collect CIDR blocks, VPN connections, SSL certificates, and firewall rules from your existing CloudHub environment. Update Mule runtime versions to a supported runtime version. If you are using persistent queues and CloudHub connectors, modify application code to remove them. Deploy applications using the two-step process through Anypoint Exchange and configure egress firewall rules for Mule services access. ### Before You Begin Gather the required information to set up a private space and use your CloudHub reusable artifacts to configure the CloudHub 2.0 environment: - CIDR block information If you require both CloudHub and CloudHub 2.0 to exist at the same time on the same network, use a new CIDR block for CloudHub 2.0. - VPN connection information - SSL certificates - DNS server information - Ingress firewall rules - Mule application code For more information, see [Information Required to Set Up a Private Space](https://docs.mulesoft.com/cloudhub-2/ps-gather-setup-info#setup-info-private-space). ### Create Your Private Space - If you’re using DLB, configure custom TLS certificates in your private space. - Create and configure your CloudHub 2.0 private space using one of these methods: - [CloudHub 2.0 API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-20-api/) - Anypoint Runtime Manager See [Create a Private Space via Runtime Manager](https://docs.mulesoft.com/cloudhub-2/ps-create-configure). ### Update the Mule Runtime Version CloudHub 2.0 supports Mule runtime versions 4.3.x and later. Upgrade to a supported Mule runtime version. ### Update the Mule Application Code - Update the application’s `pom.xml` with CloudHub 2.0 deployment configuration. See [Deploy to CloudHub 2.0](https://docs.mulesoft.com/mule-runtime/latest/deploy-to-cloudhub-2). - Update the application’s `log4j2.xml` with log forwarding options if needed. See [Integrate with Your Logging System Using Log4j](https://docs.mulesoft.com/cloudhub-2/ch2-integrate-log-system). - Review Scheduler configurations for the [known Scheduler concurrent-execution issue](#scheduler-concurrent-execution). - Remove persistent queues and implement AnypointMQ. - Remove CloudHub Connector and replace with custom logic. ### Deploy your Application - If you’reusing DLB, configure application mapping rules via path and path rewrite configurations for endpoints in the application deployment. - Publish your application to [Anypoint Exchange](https://docs.mulesoft.com/exchange/). - Deploy your application to your CloudHub 2.0 private space. See [Deploy to a Private Space](https://docs.mulesoft.com/cloudhub-2/ch2-deploy-private-space). - Configure required egress firewall rules to access other Mule services, such as API Manager, ObjectStore, and Anypoint MQ. See [Configure an Application-Level Egress](https://docs.mulesoft.com/cloudhub-2/ps-config-app-level-egress#apply-application-level-egress-rules-when-deploying-your-applications). - Update CI/CD scripts to support the two-step deployment process. ### Review CloudHub 2.0 Limitations Before finalizing the migration, review the [CloudHub 2.0 Limitations](https://docs.mulesoft.com/cloudhub-2/ch2-limits). ## See Also - [CloudHub 2.0 Overview](https://docs.mulesoft.com/cloudhub-2/) - [CloudHub 2.0 for CloudHub 1.0 Users](https://docs.mulesoft.com/cloudhub-2/ch2-comparison) - [Features of CloudHub 2.0](https://docs.mulesoft.com/cloudhub-2/ch2-features) - [Limits in CloudHub 2.0](https://docs.mulesoft.com/cloudhub-2/ch2-limits) - [CloudHub VPC to CloudHub 2.0 Private Space Upgrade](https://docs.mulesoft.com/cloudhub/vpc-upgrade) - [CloudHub to CloudHub 2.0 Application Migration](https://docs.mulesoft.com/cloudhub/app-migration) - [CloudHub to CloudHub 2.0 Migration Completion](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-completion) - [CloudHub 2.0 Architecture](https://docs.mulesoft.com/cloudhub-2/ch2-architecture) - [CloudHub 2.0 Networking Architecture](https://docs.mulesoft.com/cloudhub-2/ch2-networking-guide) --- product: CloudHub --- # CloudHub VPC to CloudHub 2.0 Private Space Upgrade > For the full documentation index, see: https://docs.mulesoft.com/llms.txt To migrate your workloads from CloudHub to CloudHub 2.0, you must set up your CloudHub 2.0 infrastructure and network connections. One approach is to create new CloudHub 2.0 private spaces with configurations that differ from your existing CloudHub setup. To retain your infrastructure configuration, use the in-product VPC upgrade tool to easily migrate your CloudHub dedicated Virtual Private Cloud (VPC) to a CloudHub 2.0 private space. When your new private space is ready, you can gradually migrate your applications from the CloudHub VPC to the CloudHub 2.0 private space. After moving all your applications, you can decommission your old VPC. Using the in-product VPC upgrade tool saves you time because you don’t need to acquire new CIDR blocks, set up new network connections, and configure the private space from the ground up. The tool provisions the infrastructure for a CloudHub 2.0 private space by cloning the existing configurations of your eligible CloudHub dedicated VPC, using the same CIDR block. If your VPC has existing Transit Gateways (TGW) or Virtual Private Networks (VPN) connections, they transfer seamlessly to the new CloudHub 2.0 private space. This migration ensures that any new applications deployed to the new private space can communicate effectively. The upgrade tool doesn’t migrate or delete VPC peering connections. If a VPC with peering completes the upgrade, those connections remain on the CloudHub VPC. CloudHub apps can keep using them. Apps in the new CloudHub 2.0 private space can’t use those peering connections. The default CloudHub certificates are configured as part of the private space’s default certificates. The DLB custom domains of the migrated VPC are created as part of the private space’s custom TLS certificates. The VPC upgrade tool migrates the DLB certificates to the new private space on a best-effort basis only. If the migration excludes certificates or your apps require specific TLS configurations, manually add TLS contexts to the private space. In the new private space, use the **Domains & TLS** tab to ceate DLB certificates. > [!IMPORTANT] The VPC upgrade tool reuses the same underlying CloudHub VPC, so the new CloudHub 2.0 > private space inherits the same number of availability zones (AZs) as the original VPC. The > upgrade process does not add or change availability zones. For example, if your CloudHub VPC has > only two AZs, the upgraded CloudHub 2.0 private space also has two AZs. > [!NOTE] During the VPC upgrade process, you use doubled entitlements for your VPC and network > connections. Work with your account representative to remain compliant with entitlements and > finish the upgrade on time. ## Understand Eligibility Due to their architectural differences and distinct interfaces, CloudHub 2.0 supports some features differently than CloudHub. Follow this eligibility checklist to confirm which VPCs are eligible for the upgrade: Availability of IPs Your VPC must have at least 25% free space, and 100 or more available IP addresses per subnet to be eligible for the upgrade. Legacy VPNs VPCs with legacy VPNs configured aren’t eligible for the upgrade. Direct Connect or VPC Peering If your VPC has Direct Connect or VPC Peering configured, migrate to Transit Gateway or VPN before upgrading. TLS 1.1 ciphers These ciphers can’t be carried over from CloudHub to CloudHub 2.0: - ECDHE-ECDSA-AES128-SHA1 - ECDHE-ECDSA-AES256-SHA1 - ECDHE-RSA-AES128-SHA1 - ECDHE-RSA-AES256-SHA1 Limitation for Restricting Outbound Egress Traffic CloudHub VPC doesn’t restrict outbound egress traffic, so removing the default firewall rule that allows this traffic can cause failures in your migrated private space. Non-HTTP/S TCP Traffic HTTP and HTTPS traffic can be sent to applications in the migrated Private Space. TCP traffic is not supported. ## Understand Environment Association During the upgrade process from CloudHub VPC to CloudHub 2.0 Private Space, the environments associated with your VPC stay in sync with the environments associated with the upgraded CloudHub 2.0 Private Space to avoid configuration drift. Environment association works differently in [CloudHub 2.0](https://docs.mulesoft.com/cloudhub-2/ps-config-env) and [CloudHub 1.0](https://docs.mulesoft.com/cloudhub/vpc-tutorial#update-an-existing-anypoint-vpc). In CloudHub 2.0, an environment can be associated with multiple private spaces, whereas, in CloudHub, one environment can only be associated with one VPC in a given region. Additionally, doing bulk environment association for an upgraded private space can result in all environments in the same region to get associated with the underlying VPC. If those environments were previously associated with other CloudHub 1.0 VPCs, they get disassociated. > [!WARNING] The upgrade tooling doesn’t support the upgrade of a default VPC. To proceed with the > upgrade, disable the default VPC configuration. ## Upgrade your VPC via Anypoint Platform 1. From **Anypoint Platform**, select **Runtime Manager** > **Upgrade**. Alternatively, from **Runtime Manager**, open the VPC upgrade entry point when it appears in the console, then click **Continue to Upgrade** to start upgrading your VPCs. 2. Click **Upgrade Now** in the **Upgrade Status** column for the VPC to upgrade. The **Upgrade to CloudHub 2.0** review page displays the configurations currently available in your VPC, as well as the configurations created during the upgrade. ![VPC upgrade review page showing available configurations.](/mulesoft/current/en-us/cloudhub/_images/upgrade-ch2-review-conf.png) 3. Click **Next** to continue. 4. Provide a name for the new private space. Optionally, you can specify [reserved CIDRs](https://docs.mulesoft.com/cloudhub-2/ps-gather-setup-info#cidr-block) to connect to your new private space. 5. Click **Create** to create the new private space. The **Upgrade to CloudHub 2.0** review page shows the progress of the VPC upgrade process, which takes about 15 to 30 minutes. > [!NOTE] If you create a VPN to provision your CloudHub VPC, wait until the newly created VPN > status shows as available before migrating your VPC to a CloudHub 2.0 private space. As soon as the upgrade process starts, the upgraded VPC is locked for any further updates. You can cancel the upgrade process to revert to your VPC at any time by clicking **Cancel Upgrade**. In that case, the system deletes the newly created private space, and your VPC is unlocked. After you provision the private space, the **Cancel Upgrade** button no longer shows. However, you can still roll back the upgrade by deleting the private space. ## Next Steps After VPC Upgrade Following the VPC upgrade, the CloudHub 2.0 private space is fully provisioned, and you can deploy applications to it. > [!IMPORTANT] Access new apps in the private space via the private space’s public ingress. CloudHub > DLB and SLBs can’t route traffic to these apps. You have two options for migrating your applications: Self-Service Create new versions in the CloudHub 2.0 private space. Then, delete the corresponding application in the CloudHub VPC. Runtime Manager Tool Migrate your applications using the application migration tool. See [CloudHub to CloudHub 2.0 Application Migration](https://docs.mulesoft.com/cloudhub/app-migration). After you migrate all the applications in a VPC, delete the VPC and any associated DLBs to release your CloudHub entitlements. This action doesn’t affect your CloudHub 2.0 private space. For the final steps after VPC upgrade and CloudHub application migration, see [CloudHub to CloudHub 2.0 Migration Completion](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-completion). > [!NOTE] When deploying a new CloudHub 2.0 application during migration, don’t configure it to use > the inherited CloudHub default domain (the shared `*.cloudhub.io` endpoint in the format > `..cloudhub.io`). This domain is automatically carried over to the CloudHub 2.0 > private space, but it’s globally shared and can’t be managed by you. Route traffic through your > vanity domain or `anypointdns.net` endpoint instead. Using the default domain interferes with how > traffic switching determines the traffic source (SLB versus DLB) and can cause traffic outages. During the migration, you can continue to deploy and manage applications in your VPC to maintain business continuity. To prevent configuration drift, after the upgrade, your CloudHub dedicated VPC is locked for any changes to the infrastructure, including environment or business group associations, network connections, and internal DNS. Make any required changes to the newly created private space. The upgrade process applies any CloudHub 2.0 configuration changes to the CloudHub VPC. If your CloudHub VPC doesn’t have any network connections, and you create new ones in your new CloudHub 2.0 private space after the upgrade, these new connections aren’t reflected in your CloudHub VPC. The firewall rules configured in your VPC are copied to the private space. After that, you can make additional changes to the firewall rules in the VPC and the private space. To avoid configuration drift, apply any firewall rule changes in both places throughout the migration. > [!WARNING] VPC firewall rules that have ports other than `80`, `443`, and `30500` to `32500` drop > during the migration. ### Enable CloudHub 2.0 Apps to Communicate with CloudHub Apps via DLB During a partial migration, a CloudHub 2.0 app may need to communicate with a CloudHub app through the CloudHub Dedicated Load Balancer (DLB). Because CloudHub 2.0 uses a separate infrastructure CIDR pool, the DLB doesn’t allow this traffic by default. To allow a CloudHub 2.0 app to reach a CloudHub app via the DLB, add the following CloudHub 2.0 infrastructure CIDR ranges to the DLB allowlist: - `100.64.0.0/16` - `100.66.0.0/16` - `100.67.0.0/16` - `100.68.0.0/16` For more information about CloudHub 2.0 infrastructure CIDR ranges, see [Infrastructure CIDR Pool](https://docs.mulesoft.com/cloudhub-2/ps-gather-setup-info#infra-cidr-pool). ## See Also - [CloudHub to CloudHub 2.0 Application Migration](https://docs.mulesoft.com/cloudhub/app-migration) - [CloudHub to CloudHub 2.0 Migration Completion](https://docs.mulesoft.com/cloudhub/ch-ch2-migration-completion) - [CloudHub 2.0 Overview](https://docs.mulesoft.com/cloudhub-2/) - [Features of CloudHub 2.0](https://docs.mulesoft.com/cloudhub-2/ch2-features) - [CloudHub 2.0 for CloudHub 1.0 Users](https://docs.mulesoft.com/cloudhub-2/ch2-comparison) - [Private Spaces](https://docs.mulesoft.com/cloudhub-2/ch2-private-space-about) - [Deploying Apps to Private Spaces](https://docs.mulesoft.com/cloudhub-2/ch2-deploy-private-space) --- product: CloudHub --- # Configure SSL Endpoints and Certificates > For the full documentation index, see: https://docs.mulesoft.com/llms.txt A dedicated load balancer must have at least one certificate associated with it. To configure an SSL endpoint for your load balancer to serve to clients, provide a certificate and private key pair for your load balancer. A load balancer can have multiple and independent SSL endpoints, each identified by its server certificate common name. ## Requirements To associate an SSL endpoint, you must provide: - An unencrypted, PEM-encoded (Privacy-Enhanced Mail) certificate file. - A second file containing the private key of your PEM certificate. The private key file must be _passphraseless_. ## Create a Certificate File and Private Key with the openssl Command You can create both an unencrypted, PEM-encoded certificate file and a private key using `openssl`. For example, to create a self-signed certificate and corresponding private key: 1. Enter: openssl req -newkey rsa:2048 -nodes -keyout example-com-private.pem -x509 -days 3000 -out example-com-crt.pem 2. When prompted, enter the certificate information. This command creates two `.pem` files: example-com-crt.pem example-com-private.pem You upload these `.pem` files in Runtime Manager or pass them on the command line when you add an SSL endpoint to the load balancer. Alternatively, you can pass a certificate information configuration file to the `openssl` command using the `-config` option. For example, this certificate configuration file named `example-com.cfg` defines the DNS domain `example.com` that includes some SANs (Subject Alternate Names) for Mule applications `app1.example.com` and `app2.example.com`. \[ req \] default\_bits = 2048 distinguished\_name = req\_distinguished\_name req\_extensions = req\_ext prompt = no \[ req\_distinguished\_name \] countryName = US stateOrProvinceName = California localityName = San Francisco organizationName = MuleSoft commonName = example.com \[ req\_ext \] subjectAltName = @alt\_names \[alt\_names\] DNS.1 = app1.example.com DNS.2 = app2.example.com Run the following command: openssl req -newkey rsa:2048 -nodes -keyout example-com-private.pem -x509 -days 3000 -out example-com-crt.pem -config example-com.cfg ### Create a Wildcard Certificate You might want to create a wildcard certificate to support subdomain requests, for example, to support `example.com` and include `app1.example.com` and `app2.example.com`, as well as any future subdomain names. To create a wildcard certificate that maps any subdomain name to `example.com`: 1. Create a file that includes this configuration: \[ req \] default\_bits = 2048 distinguished\_name = req\_distinguished\_name prompt = no \[ req\_distinguished\_name \] countryName = US stateOrProvinceName = California localityName = San Francisco organizationName = MuleSoft commonName = \*.example.com 2. Pass the certificate configuration file in an `openssl` command: openssl req -newkey rsa:2048 -nodes -keyout example-com-private.pem -x509 -days 3000 -out example-com-crt.pem -config example-com.cfg 3. Decrypt the private key using `openssl`: openssl rsa -in example-com-private.pem -out example-com-private-decrypted.pem ## Configure Certificates for Production Typically, in a production environment, your certificate is signed by a valid Certificate Authority (CA). Each SSL endpoint can have multiple CA certificates and CRLs (Certificate Revocation Lists). You must provide each of these certificates in a single unencrypted, PEM-encoded file. Ordering is not important for independent CA certificates, but certificates in a chain of trust must be concatenated. ## See Also - [Add Certificates](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Certificate Validation](https://docs.mulesoft.com/cloudhub/lb-cert-validation) - [Allowlists](https://docs.mulesoft.com/cloudhub/lb-allowlists) - [Mapping Rules](https://docs.mulesoft.com/cloudhub/lb-mapping-rules) --- product: CloudHub --- # Create a Load Balancer with Runtime Manager > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can use Runtime Manager to create a dedicated load balancer (DLB) in your CloudHub environment. ## Prerequisites Before creating a load balancer, perform the following: - Ensure that your profile is authorized to perform this action by adding the **CloudHub Network Administrator** permission to the profile of the organization where you are creating the load balancer. Similarly, the administrator role of the same organization also provides the authorization required. - Create an Anypoint Virtual Private Cloud (Anypoint VPC) in the organization where you want to create a load balancer. - Create at least one certificate and private key for your certificate. ## Create a Load Balancer 1. From Anypoint Platform, click **Runtime Manager**. 2. Click **Load Balancers** > **Create Load Balancer**. 3. Enter a name for your load balancer. The CloudHub DLB name must be unique across all DLBs defined in Anypoint Platform (by all MuleSoft customers). For this reason, you might want to append your organization name to your DLB name. > [!IMPORTANT] You cannot change the name of a DLB after you create it. To change the name, > delete and re-create it using the new name. Each dedicated load balancer exposes an external domain `_lb-name_.lb.anypointdns.net` name where `_lb-name_` is the name you provide. The CloudHub DLB name cannot start with `internal-`. 4. Select a target Anypoint VPC from the drop-down list. 5. Specify the amount of time the DLB waits for a response from the Mule application in the **Timeout in Seconds** field. The default value is 300 seconds. 6. Add any allowlisted classless inter-domain routing (CIDR) as required. The IP addresses you specify here are the only IP addresses that can access the load balancer. The default value is `0.0.0.0/0`. 7. Select the inbound HTTP mode for the load balancer. This property specifies the behavior of the load balancer when receiving an HTTP request. Valid values are: - **Off** Causes the load balancer to silently drop the request. - **On** Accepts the inbound request on the default SSL endpoint using the HTTP protocol. - **Redirect** Redirects the request to the same URL using the HTTPS protocol. 8. Specify options: - **Enable Static IPs** specifies to use static IPs, which persist when the DLB restarts. For more information about static IP addresses, see [Static IP Addresses](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer#static-ip-addresses). - **Keep URL encoding** specifies that the DLB passes only the `%20` and `%23` characters as is. If you deselect this option, the DLB decodes the encoded part of the request URI before passing it to the CloudHub worker. - **Transport Downstream Protocols** specifies the list of enabled TLS protocols for connections from the client to the DLB. Use the dropdown to add or remove protocols. - **Transport Upstream Protocols** specifies the list of enabled TLS protocols for connections from the DLB to the Mule application. Use the dropdown to add or remove protocols. - **Forward Client Certificate** specifies that the DLB forwards the client certificate to the CloudHub worker. 9. Add a certificate. 1. Click **Add certificate**: 2. On the **Create Load Balancer | Add certificate** page, select **Choose File** to upload both public key and private key files. 3. If you want to add a trusted CA certificate, click **Choose File** to upload the file. The trusted CA certificate is used to verify client certificates. 4. If you want to add URL mapping rules, click the **\>** icon to display the options: If you add more than one URL mapping rule, order the rules in the list according to the priority in which they should be applied. Click **Add New Rule**, and then specify the input path, target app, output path, and protocol. 5. Click **Save Certificate**. 10. Click **Create Load Balancer**. ## See Also - [Access Management](https://docs.mulesoft.com/access-management/) - [Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer) - [Add Certificates to a Dedicated Load Balancer](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Certificate Validation in Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/lb-cert-validation) - [Allowlists](https://docs.mulesoft.com/cloudhub/lb-allowlists) - [Mapping Rules](https://docs.mulesoft.com/cloudhub/lb-mapping-rules) --- product: CloudHub --- # Create a Load Balancer with the Anypoint Platform CLI > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can create a dedicated load balancer (DLB) using the Anypoint Platform CLI. ## Prerequisites Before you create a load balancer: - Ensure that you are an administrator in the organization where you are creating the DLB. - Create an Anypoint Virtual Private Cloud (Anypoint VPC) instance in the organization where you want to create a DLB. - Create at least one certificate and private key for your certificate. ## Create a Load Balancer Using the CLI Use this command to create a DLB from the CLI: ```linenums cloudhub load-balancer create myVPC myLB_name certificateName privateKey ``` This command specifies the Anypoint VPC instance _myVPC_ in which to create the DLB and the _certificateName_ and _privateKey_ that the DLB uses. > [!IMPORTANT] You cannot change the name of a DLB after you create it. To change the name, delete > and re-create it using the new name. The CloudHub DLB name cannot start with `internal-`. ## See Also - [cloudhub load-balancer create](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-create) - [cloudhub load-balancer ssl-endpoint add](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-ssl-endpoint-add) - [cloudhub load-balancer ssl-endpoint set-default](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-ssl-endpoint-set-default) - [Add Certificates to a Dedicated Load Balancer](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Access Management](https://docs.mulesoft.com/access-management/) --- product: CloudHub --- # Create a Load Balancer with the CloudHub API > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can create a dedicated load balancer (DLB) using the CloudHub API. ## Prerequisites To create a load balancer using the CloudHub API, ensure that you perform the following: - Ensure that you are an administrator in the organization where you are creating the load balancer. - Create an Anypoint Virtual Private Cloud (Anypoint VPC) in the organization where you want to create a load balancer. - Create at least one certificate and private key for your certificate. ## Create a Load Balancer To create a load balancer using the CloudHub API, use the following endpoints: - `anypoint.mulesoft.com/cloudhub/api/organizations/_orgid_/loadbalancers` - `anypoint.mulesoft.com/cloudhub/api/organizations/_orgid_/vpcs` > [!IMPORTANT] You cannot change the name of a DLB after you create it. To change the name, delete > and re-create it using the new name. The CloudHub DLB name cannot start with `internal-`. Starting the DLB name with `internal-` results in error message: `LB name=internal-dlb-name cannot start with -internal`. ## See Also - [CloudHub API Create New Load Balancer](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/1.0.13/console/method/%233964/) - [Access Management](https://docs.mulesoft.com/access-management/) - [Add Certificates to a Dedicated Load Balancer](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Certificate Validation in Dedicated Load Balancers](https://docs.mulesoft.com/cloudhub/lb-cert-validation) --- product: CloudHub --- # Create a VPC with the Anypoint Platform CLI > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This section shows you how to create and configure an Anypoint Virtual Private Cloud (Anypoint VPC) using the Anypoint Platform CLI. Log in to your organization and use the `vpc create` command to create the Anypoint VPC: cloudhub vpc create **(1)** vpc-tutorial **(2)** us-east-1 **(3)** 10.111.0.0/24 **(4)** --default In this example: - The Anypoint VPC is called `vpc-tutorial`. - The Anypoint VPC is bound to the `us-east-1` region. > [!NOTE] All Anypoint VPCs need to be associated to a CloudHub region. - The Anypoint VPC size is `10.111.0.0/24`. In CIDR notation, this grants 256 IP addresses from 10.111.0.0 to 10.111.0.255. - It is not possible to resize an Anypoint VPC once created. - Understanding how to size your Anypoint VPC is crucial at this point. If you are not sure how to configure this, make sure to follow our [VPC sizing](https://docs.mulesoft.com/cloudhub/virtual-private-cloud#size-your-vpc) guide. - The CIDR blocks chosen for the Anypoint VPC should ideally come from a private IP space, and should not overlap with any other Anypoint VPC’s CIDR Blocks or any CIDR Blocks in use in your corporate network. - The Anypoint VPC is set as default. This means that all environments in this region that are not associated to an Anypoint VPC will be, by default, associated to this Anypoint VPC. > [!CAUTION] In this example, we are not passing: > > - Environment information: > Not setting a specific environment makes that every application deployed to US-EAST is > associated to this Anypoint VPC disregarding the environment to which it is being deployed. > > - Business group information: > By doing so, we are associating this Anypoint VPC to the main organization. When the operation succeeds, Anypoint Platform CLI displays the details of the newly created Anypoint VPC. ```text ┌──────────────────────────────┬───────────────────┐ │ Name │ vpc-tutorial │ ├──────────────────────────────┼───────────────────┤ │ Region │ us-east-1 │ ├──────────────────────────────┼───────────────────┤ │ CIDR Block │ 10.111.0.0/24 │ ├──────────────────────────────┼───────────────────┤ │ Inherited │ No │ ├──────────────────────────────┼───────────────────┤ │ Organization default │ Yes │ ├──────────────────────────────┼───────────────────┤ │ Special domains │ │ ├──────────────────────────────┼───────────────────┤ │ DNS Servers │ │ ├──────────────────────────────┼───────────────────┤ │ Firewall rules │ │ ├──────────────────────────────┼───────────────────┤ │ Environments │ │ ├──────────────────────────────┼───────────────────┤ │ Business groups │ │ ├──────────────────────────────┼───────────────────┤ │ Load balancers │ │ └──────────────────────────────┴───────────────────┘ ``` ## Create Firewall Rules When the Anypoint VPC is created, four firewall rules are set by default. You can review them using the [vpc firewall-rules describe](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-firewall-rules-describe) command: cloudhub vpc firewall-rules describe vpc-tutorial This command returns: ```text ┌───────┬────────────────────┬──────────┬────────────┬──────────┐ │ Index │ CIDR Block │ Protocol │ From port │ To port │ ├───────┼────────────────────┼──────────┼────────────┼──────────┤ │ 0 │ 10.111.0.0/24 │ TCP │ 8091 │ 8092 │ ├───────┼────────────────────┼──────────┼────────────┼──────────┤ │ 1 │ 0.0.0.0/0 │ TCP │ 8081 │ 8082 │ └───────┴────────────────────┴──────────┴────────────┴──────────┘ ``` > [!TIP] Rule `0` allows inbound connections from your local Anypoint VPC from ports 8091 and 8092, > while rule `1` allows traffic from any host to reach your workers through ports 8081 and 8082. You can use the [`vpc firewall-rules remove`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-firewall-rules-remove) command to remove any of the default rules or you can add new ones using the [`vpc firewall-rules add`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-firewall-rules-add) command. Assume you want to enable TCP traffic through port 8090 inside your Anypoint VPC. You need to run the following: cloudhub vpc firewall-rules add **(1)** vpc-tutorial **(2)** 10.111.0.0/24 **(3)** tcp **(4)** 8090 1. Set `vpc-tutorial` as the target Anypoint VPC for this new firewall rule. 2. Set the IP range to allow only hosts from inside your Anypoint VPC by setting `10.111.0.0/24`. In CIDR notation, this allows the range `10.111.0.0` to `10.111.0.255`. 3. Set the allowlisted protocol to `tcp` 4. Allow the port number `8090` When you create a new firewall rule, the Anypoint Platform CLI shows you a success message: VPC firewall modified successfully ## Update an Existing Anypoint VPC Although it is not possible to update certain values from your Anypoint VPC through the Anypoint Platform CLI, you can use the [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) to programmatically manage and update your Anypoint VPC: 1. Log into the CloudHub services passing your credentials through the `https://anypoint.mulesoft.com/accounts/login` endpoint. 2. Use the `organizations/{orgid}/vpcs/{vpcId}` endpoint to update your Anypoint VPC. > [!NOTE] You can use the > [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/) > to understand how to interact with the API’s resources. For example, to update the environments of your Anypoint VPC you need to send a `PUT` request to the `anypoint.mulesoft.com/cloudhub/api/organizations/{orgid}/vpcs/{vpcId}` endpoint with a JSON payload: > [!TIP] You can query your `{orgid}` using the > [account business-group describe](https://docs.mulesoft.com/anypoint-cli/latest/anypoint-platform-cli-commands#account-business-group-list) > command. > > Your `{vpcId}` value is listed by running a > [cloudhub vpc describe-json](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-vpc-describe-json) command. ```json { "associatedEnvironments": [""] } ``` > [!NOTE] `` needs to be replaced by the Id of the environment to which you want to > associate this Anypoint VPC. > You can get the Ids for your environments running a > [account environment list](https://docs.mulesoft.com/anypoint-cli/latest/anypoint-platform-cli-commands#account-environment-list) > command. ## See Also - [CloudHub Load Balancers](https://docs.mulesoft.com/cloudhub/dedicated-load-balancer-tutorial) - [Anypoint Platform CLI](https://docs.mulesoft.com/anypoint-cli/latest/) --- product: CloudHub --- # Create an Anypoint VPN Connection > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can create an Anypoint VPN connection using Runtime Manager. ## Prerequisites Before you can create an Anypoint VPN: - You must create an Anypoint Virtual Private Cloud (Anypoint VPC). See [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) for more information. One Anypoint VPC can accommodate up to 10 Anypoint VPNs. - You must have either the CloudHub Network Administrator or the CloudHub Network Viewer user permission to access the VPN page. - Your default environment (defined in your profile) must have Read Application permissions. ![vpn permissions](/mulesoft/current/en-us/cloudhub/_images/vpn-permissions.png) See [Grant Permissions and Roles to Users](https://docs.mulesoft.com/access-management/users#grant-permissions-and-roles-to-users). The VPNs page is visible to Anypoint organizations that have VPN entitlements. ### Checklist for Creating an Anypoint VPN When you create or configure an Anypoint VPN, you must provide the following information: Remote IP address The public IP address of your VPN endpoint. This must be a single, static IP address. Static Routes (CIDR) The subnets in your network to make accessible through the VPN. This information is required only if you are using static routing. Remote and Local ASN The Autonomous System Number specifies the collection of routing prefixes. You must configure both a remote and local ASN. This is required only if you are using dynamic routing. Pre-shared Key (PSK) The shared secret for the VPN tunnels. These values are auto-generated if you select **Automatic Tunnel Configuration**. Point-to-Point CIDR Private IP range for the VPN tunnel interfaces. These values are auto-generated if you select **Automatic Tunnel Configuration**. ## Create an Anypoint VPN To create an Anypoint VPN: 1. Sign into Anypoint Platform and select **Runtime Manager**. 2. Select the environment where you want to create an Anypoint VPN. 3. From the menu on the left, click **VPNs**, and then click **Create VPN**. 4. Enter or select the following information for your Anypoint VPN: **Name** Enter a name for your Anypoint VPN. **VPC** From the list, select the Virtual Private Cloud for the Anypoint VPN connection. **Remote IP Address** Enter the public IP address of your VPN endpoint. 5. Select the routing type to use. You can select either **BGP** (dynamic) or **Static**. Choose the Border Gateway Protocol (BGP) type if your device supports it. **To use dynamic routing**: 1. Select **BGP**. 2. Define the remote ASN. Enter the ASN corresponding to your backend. You can use an existing ASN assigned to your network or a private ASN (64512–65534) that is not already assigned to your network. The default value is `65001`. 3. Define the local ASN. Assign an ASN for the MuleSoft side. Use a private ASN (64512–65534) that is not already assigned to your network. The default value is `64512`. **To use static routing**: 1. Select **Static**. 2. In the **CIDR** field, enter a subnet to make accessible through the VPN, for example, `10.0.0.0/8`. 3. If you want to add additional subnets, click **Add New Rule**, and repeat the previous step. A maximum of 95 route table entries is allowed per VPC, regardless of the number of VPN connections. To avoid exceeding the limit, consolidate networks to the fewest number possible. 6. Select the **Tunnel Configuration** type. You can select either **Automatic** or **Custom**. In most scenarios, **Automatic** is sufficient. The steps differ depending on the selected tunnel type. **To use Automatic tunnel configuration**: 1. Select **Automatic**. No other inputs are required. This option automatically configures the tunnel settings for your Anypoint VPN. The tunnel settings are visible after VPN creation. **To use Custom tunnel configuration**: 1. Select **Custom**. 2. In the **PSK** field for each tunnel, enter a value between 8-64 characters that does not begin with zero (0). Use only alphanumeric characters, periods (.), and underscores (\_). 3. In the **Point-to-Point CIDR** field for each tunnel, enter the IP address range for the internal address of the VPN tunnel. You can specify a size /30 CIDR block from the `169.254.0.0/16` range. The CIDR block must be unique across all VPN connections. You cannot use the following CIDR blocks: 169.254.0.0/30 169.254.1.0/30 169.254.2.0/30 169.254.3.0/30 169.254.4.0/30 169.254.5.0/30 169.254.169.252/30 > [!NOTE] You cannot modify tunnel settings after you create the Anypoint VPN connection. To > change the settings for an existing connection, delete the Anypoint VPN connection and create > a new one. 7. Click **Create VPN**. Initially, the status of the VPN is `PENDING`. This is the expected status while the infrastructure is created. After the status changes to `AVAILABLE`, continue with the next steps. For more information see [VPN and Tunnel Status](#vpn-and-tunnel-status). 8. Download the configuration file from your Anypoint VPN: 1. In Runtime Manager, click the name of the Anypoint VPN that you just created. 2. Click **Get VPN Config**. 3. In the **Download VPN Config** window, select a Vendor, Platform, and Software version that corresponds to your VPN endpoint device. If your device type is not listed, select **generic**. 4. Click **View Config** and then click the **Copy** button in the top right corner. 5. Paste the configuration to a text file. All configuration files represent the minimum requirement of IKEv1, AES128, SHA1, and DH Group 2. You can modify the configuration for your VPN endpoint to take advantage of the other supported IPsec settings. See [IPsec settings](https://docs.mulesoft.com/cloudhub/vpn-about#ipsec-settings). 9. Configure your VPN endpoint: 1. Share the VPN configuration file (from Step 8) with your VPN endpoint administrator. 2. Based on the configuration of your VPN endpoint, you might need to perform additional configuration steps. See [VPN requirements](https://docs.mulesoft.com/cloudhub/vpn-about#vpn_requirements) for more information. Refer to the documentation for your specific VPN endpoint to ensure that the components of your network are configured correctly. Configure both tunnels on your VPN endpoint to avoid unexpected behavior. ## VPN and Tunnel Status The new VPN connection you created appears in the list of VPNs. Initially, the **Status** column displays `PENDING` and both VPN tunnels display `DOWN` while the infrastructure gets created. Depending on your configuration, tunnels might report a status of `DOWN` during normal operations.
StatusTunnel 1/2Description

Pending

DOWN\DOWN

The VPN connection is recently created, and actions are pending in the background. You might see this status for 10-15 minutes after creating a VPN.

Available

DOWN\DOWN

The VPN connection is created, but the remote side is not configured or is not sending traffic.

Available

Up\Up or Up\Down

The VPN connection is created, and the remote side established the connection successfully. Tunnels operate in active/active or active/passive mode, depending on the routing configuration and your VPN device type.

Failed

DOWN\DOWN

The VPN connection is not created. Delete the VPN and try again. If this failure recurs, contact MuleSoft Support.

## See Also - [Anypoint VPN](https://docs.mulesoft.com/cloudhub/vpn-about) - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [Anypoint VPN Knowledge Articles](https://help.salesforce.com/s/articleView?id=001117281&type=1) --- product: CloudHub --- # Create and Update a VPC with Runtime Manager > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Before you can create an Anypoint VPC, your organization must: - Purchase an Anypoint VPC offering - Have the necessary permissions on your account to create and administrate a Anypoint VPC ## Create the Anypoint VPC 1. Sign into your Anypoint Platform account as a user with the **Organization Administrators** role. 2. Under **Management Center**, click **Runtime Manager**. 3. In the left navigation, click **VPCs**. 4. Click **Create VPC**, and enter the following information to define and configure the Anypoint VPC: - **Name**: The name to identify your Anypoint VPC. The name must: - Be unique within the organization - Between 3 - 42 characters long - Contain only lowercase letters, numbers, and dashes > [!IMPORTANT] You cannot change the name of a VPC after you create it. To change the name, > delete and recreate the VPC. - **Region**: The region to which the Anypoint VPC is bound. > [!NOTE] All Anypoint VPCs must be associated with a CloudHub region. - **CIDR Block**: The size of the Anypoint VPC in Classless Inter-Domain Routing (**CIDR**) notation. For example, if you set it to 10.111.0.0/24, the Anypoint VPC is granted 256 IP addresses from 10.111.0.0 to 10.111.0.255. Ideally, the CIDR Blocks you choose for the Anypoint VPC come from a private IP space, and should not overlap with any other Anypoint VPC’s CIDR Blocks, or any CIDR Blocks in use in your corporate network. > [!CAUTION] This setting is configurable only during this initial creation of an Anypoint > VPC. Once the Anypoint VPC instance is created, you cannot resize it or edit your selected > CIDR block. > Make sure you thoroughly understand how to properly size the Anypoint VPC for your needs > before configuring this parameter. If you are not sure of how to configure this setting, > follow the [Anypoint VPC sizing](https://docs.mulesoft.com/cloudhub/vpc-provisioning-concept#faq-how-to-size-my-vpc) guide. - **Environments**: Optionally, select an environment to which to bind Anypoint VPC. If you don’t select an environment, all applications deployed to the selected region are associated with this Anypoint VPC. Don’t associate Anypoint VPC with a design environment. You can deploy apps to the design environment only from Design Center, not from Runtime Manager. > [!IMPORTANT] There is a cache timeframe between services that prevents rate limiting errors > with different time configuration across Anypoint control planes. If you create an > environment in Access Management and attempt to immediately use it to create or edit a VPC > in Runtime Manager, you might experience a delay to see the newly created environment in the > VPCs **Environments** dropdown. > [!NOTE] If a new or updated VPC (VPC A) is associated with an environment already linked to > another VPC (VPC B) in the same region, VPC B loses the environment, and it is automatically > attached to VPC A. As a result, any applications in that environment are deployed to VPC A when > the VPC is updated or restarted. - **Set as default VPC**: Select this option to set the Anypoint VPC as the default for the region you set. This means that all environments in this region not associated with an Anypoint VPC will be, by default, associated with this Anypoint VPC. - **Business Groups**: Optionally, bind the Anypoint VPC with a business group. If you don’t select a business group, the Anypoint VPC is associated with the main organization. You can change this later in the Anypoint VPC management settings. ![create vpc](/mulesoft/current/en-us/cloudhub/_images/create-vpc.png) 1. Click **Firewall Rules** to expand the fields and [configure firewall rules](https://docs.mulesoft.com/cloudhub/vpc-firewall-rules-concept). By default, all inbound traffic is blocked, and you need to configure firewall rules to allow traffic to your worker. You can configure these rules at a later time. The UI is pre-filled with suggestions of the most commonly used firewall rules. The example below shows a firewall rule with type `http.private.port` from `Anywhere`. The port range is set to `8091` automatically. ![vpc and load balancer creation 97c25](/mulesoft/current/en-us/cloudhub/_images/vpc-and-load-balancer-creation-97c25.png) This means that only connections through port `8091` are allowed inside the Anypoint VPC and that your worker will listen to all interfaces coming through port `8091`. Setting this firewall rule allows a [dedicated load balancer](https://docs.mulesoft.com/cloudhub/cloudhub-dedicated-load-balancer) to communicate to your workers using its default configurations. > [!NOTE] Additionally, to properly receive requests from the load balancer, all applications > deployed to the Anypoint VPC must be listening on port `8091`. 2. Optionally, you can click the **Internal DNS** option to [set up internal DNS servers](https://docs.mulesoft.com/cloudhub/resolve-private-domains-vpc-task) to resolve your private host names. ![vpc tutorial 31341](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-31341.png) You can do this when you initially create the Anypoint VPC, or you can configure the internal DNS later. 3. Click **Create VPC**. ## Connect to your Anypoint VPC Configuration steps differ based on the [VPC connectivity methods](https://docs.mulesoft.com/cloudhub/virtual-private-cloud#vpc-connectivity-methods-concept) chosen. Follow the instructions in [Request Anypoint VPC Connectivity to Your Network](https://docs.mulesoft.com/cloudhub/to-request-vpc-connectivity). ## Update an Existing Anypoint VPC ![vpc tutorial c5a66](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-c5a66.png) 1. Find your Anypoint VPC in the list of existing Anypoint VPCs in the UI, and select it. 2. You can update: 1. **Environments** You can select one or more specific environment from the drop down menu. ![vpc tutorial 6dea0](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-6dea0.png) 2. **Business Groups** You can select one or more business groups from the drop down menu. ![vpc tutorial 981cc](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-981cc.png) 3. **Firewall Rules** You can edit existing [firewall rules](https://docs.mulesoft.com/cloudhub/vpc-firewall-rules-concept), or add new ones. ![vpc tutorial fa890](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-fa890.png) 4. **Internal DNS** You can edit existing [internal DNS configurations](https://docs.mulesoft.com/cloudhub/resolve-private-domains-vpc-task), or add new ones. ![vpc tutorial 0b7b2](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-0b7b2.png) Set your public DNS IP address and press `enter`, or click the blue check mark. ![vpc tutorial df177](/mulesoft/current/en-us/cloudhub/_images/vpc-tutorial-df177.png) Add the private domains that need to be resolved using your DNS server and press `enter`, or click the blue check mark. 3. When you finish making your changes, click **Apply Changes**. ## See Also - [VPC Firewall Rules](https://docs.mulesoft.com/cloudhub/vpc-firewall-rules-concept) - [CloudHub Load Balancers](https://docs.mulesoft.com/cloudhub/dedicated-load-balancer-tutorial) - [FAQ: Where to Place an Anypoint VPC inside My Organization](https://docs.mulesoft.com/cloudhub/vpc-provisioning-concept#faq-where-to-place-an-anypoint-vpc-inside-my-organization) - [Configure Private Domains](https://docs.mulesoft.com/cloudhub/resolve-private-domains-vpc-task) --- product: CloudHub --- # Custom Application Alerts and Notifications > For the full documentation index, see: https://docs.mulesoft.com/llms.txt CloudHub enables you to display notifications from your app in the Runtime Manager console. You can configure CloudHub to email these notifications as _custom alerts_ to specific people so that they can fix the underlying problems. > [!NOTE] Custom alerts and notifications are available only for apps deployed to CloudHub workers. > They are not available for apps deployed to on-premises servers. See > [Deployment Options](https://docs.mulesoft.com/runtime-manager/deployment-strategies) for more information about CloudHub > features. ## Prerequisites - Deploy your application to CloudHub. See [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - For Anypoint Studio 6.x and earlier, enable Maven support for your Mule project. All projects in Studio 7.x and later support Maven by default. ## Custom Application Alerts Alerts enable you to send emails based on your application’s notifications. You can create standard alerts in Runtime Manager for servers and applications deployed to either CloudHub or on-premises servers. See [Alerts](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager). You can also create _custom alerts_ for applications deployed to CloudHub. To create custom application alerts: 1. Add Anypoint Connector for CloudHub (CloudHub Connector) to flows in your Mule app in Anypoint Studio and configure the notification. CloudHub Connector is available for Mule 4 applications. 2. Deploy the app to CloudHub. 3. Configure the custom application alerts in Runtime Manager. ### Configure the Notification in CloudHub Connector In Studio, add and configure CloudHub Connector in your Mule project: 1. In the **Mule Palette** view, click **CloudHub** and then drag the **Create Notification** operation to the application flow for which you want to trigger an alert in the canvas. 2. In the canvas, click **Create Notification**. 3. In the **Create Notification** properties window, click the green plus icon (**+**) to the right of the **Connector configuration** field. 4. In the **Global Element Properties** window, configure authentication to Anypoint Platform and click **OK**: ![Username field in the Global Element Properties window](/mulesoft/current/en-us/cloudhub/_images/alerts-custom-ch-connector.png) Figure 1. The arrow shows the **Username** field in the **Global Element Properties** window. The connector can use basic authentication or inherited token authentication. 5. In the **Create Notification** properties window, enter the CloudHub app name in the **Domain** field and the notification in the **Message** field: ![Message field in the Create Notification properties window](/mulesoft/current/en-us/cloudhub/_images/alerts-custom-ch-connector-notification.png) Figure 2. The arrow shows the **Message** field in the **Create Notification** properties window. For more information about creating a notification with CloudHub Connector, see [Creating a Notification](https://docs.mulesoft.com/cloudhub-connector/latest/#creating-notifications). 6. Deploy the app to CloudHub. ### Create a Custom Alert In Runtime Manager, bind the custom notification to an alert: 1. Click **Alerts** in the menu on the left. 2. Click the blue plus icon (**+**) to create a new alert. 3. In the **Create an Alert** page, configure your custom alert and click **Submit**: ![Applications field in the Create an Alert window](/mulesoft/current/en-us/cloudhub/_images/alerts-custom-rtm-create.png) Figure 3. The arrow shows the **Applications** field in the **Create an Alert** window. Name Enter a meaningful name for the custom alert. Severity level Select the severity level to apply to the alert: - **Critical** - **Warning** - **Info** Source Select **Applications** for the alert source. Application type Select **CloudHub Applications**. Applications Select the application that contains the flow that you configured to trigger a custom alert. Condition Select **Custom application notification**. - Select the priority from the **Priority** menu, or leave the priority as **Any** to send notifications regardless of priority. - In **Contains**, enter the string to use to trigger a notification. This string must match a string in the **Message** field that you configured in CloudHub Connector. Subject Enter the subject line to include in the notification email. Message Enter the custom message to include in the notification. Recipients Enter the email addresses for notification recipients. You can use variables in the alert **Subject** and **Message** fields. For information about using variables in alerts, see [Alert Variables](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager#alert-variables). When you trigger the alert, the specified recipients receive an email with the custom message you added to the app. ## Notifications _Notifications_ give you visibility into business-related events inside your application. For example, you can create notifications that appear when: - Your application is unable to connect to a remote service. - An error that requires human intervention occurs, such as a problem with data mapping. - You want to create a summary of what happened in your application, such as the number of orders processed. > [!NOTE] CloudHub stores up to a maximum of 1000 notifications per application. If the number of > notifications exceeds the maximum, CloudHub deletes the oldest notification. Each notification can > contain up to 10,000 characters. ### Trigger a Notification To trigger a notification for an app deployed to CloudHub: 1. Open the application URL and path, for example: `http://myApp.us-w1.cloudhub.io/store` The page displays an error message and sends a new notification to the Runtime Manager console. 2. In the Runtime Manager **Applications** page, click the red bell icon in the upper-right to display the notification. ![Error in the notifications dropdown](/mulesoft/current/en-us/cloudhub/_images/alerts-custom-rtm-notification-error.png) Figure 4. The arrow shows the error in the notifications dropdown. If the notification is sent after an exception, it includes `exception.message` and `exception.stacktrace` as custom properties of the notification, accessible from the Runtime Manager console. ### Send an Error Notification You can use the CloudHub Connector inside an `` component to send notifications when errors happen. For example, use the `` component to send the error message and stop processing the flow: ```xml ... ... ``` For information about the On-Error components, see [Using On-Error Components to Handle Messaging Errors](https://docs.mulesoft.com/mule-runtime/latest/error-handling#on_error_continue). ## See Also - [Alerts](https://docs.mulesoft.com/runtime-manager/alerts-on-runtime-manager) - [Add the Connector to Your Mule Project](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio#install) - [CloudHub Connector](https://www.mulesoft.com/exchange/com.mulesoft.connectors/mule-cloudhub-connector/) on Exchange - [Create the CloudHub Configuration](https://docs.mulesoft.com/cloudhub-connector/latest/#create-the-cloudhub-configuration) - [Deploy to CloudHub](https://docs.mulesoft.com/cloudhub/deploying-to-cloudhub) - [Introduction to Mule 4: Error Handlers](https://docs.mulesoft.com/mule-runtime/latest/mule-error-concept) --- product: CloudHub --- # Dedicated Load Balancer Allowlists > For the full documentation index, see: https://docs.mulesoft.com/llms.txt If you want to allow IP addresses access to your dedicated load balancer (DLB), you must add those IP addresses, in CIDR notation, to the allowlist of the DLB. > [!NOTE] The allowlist works for inbound connections at the load-balancer level only, not at the CN > certificate level. You can either add the allowed IP addresses when you create the DLB or add them to an existing DLB using either Runtime Manager or the command-line interface. ## DLB Allowlist Entry Limits The maximum number of IP address entries that you can add to the DLB allowlist depends on the inbound HTTP mode setting in the DLB configuration, which specifies the behavior of the DLB when receiving an HTTP request.
Inbound HTTP ModeMaximum Allowlist Entries

Off

240

On

120

Redirect

120

> [!NOTE] If the number of entries in the DLB allowlist exceeds 120, you can’t set HTTP mode to > **On**. ## Add an IP Address to the Allowlist of an Existing DLB To add an IP address to the allowlist of a DLB using Runtime Manager: 1. From Anypoint Platform, click **Runtime Manager**. 2. Click **Load Balancers** and then click the load balancer name. 3. In the **Allowlisted CIDRs** tab, click **Add New CIDR**: ![\*Add New CIDR\* option in the load balancer settings page](/mulesoft/current/en-us/cloudhub/_images/lb-allowlist-update.png) Figure 1. The arrow shows the **Add New CIDR** option in the **Allowlisted CIDRs** tab. 4. Enter the IP address in valid CIDR format (for example, `10.2.0.0/16`). 5. Click **Add To List**. 6. If you want to delete a CIDR, hover over the **…​** icon to display the trash can icon. 7. Click **Apply Changes**. To add a range of IP addresses to the allowlist for a DLB using the CLI: cloudhub load-balancer allowlist add myLB\_name myCIDRblock The IP addresses must be in valid CIDR format (for example, `10.2.0.0/16`). If you want to remove IP addresses from the allowlist: cloudhub load-balancer allowlist remove myLB\_name myCIDRblock ## See Also - [cloudhub load-balancer allowlist add](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-allowlist-add) - [cloudhub load-balancer allowlist remove](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-allowlist-remove) - [IPv4 CIDR blocks](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks) - [Create a Load Balancer with Runtime Manager](https://docs.mulesoft.com/cloudhub/) - [Create a Load Balancer with the Anypoint Platform CLI](https://docs.mulesoft.com/cloudhub/lb-create-cli) - [Internal Worker DNS vs Internal DLB DNS in CloudHub](https://help.salesforce.com/s/articleView?id=001116315&type=1) --- product: CloudHub --- # Dedicated Load Balancer Architecture > For the full documentation index, see: https://docs.mulesoft.com/llms.txt A CloudHub dedicated load balancer (DLB) enables you to route external HTTP and HTTPS traffic to multiple Mule applications deployed into CloudHub workers inside a Virtual Private Cloud (VPC). Each CloudHub DLB is assigned to an Anypoint VPC, and that Anypoint VPC runs within a particular service region. The DLB routes both external and VPC-internal traffic to CloudHub workers deployed into that Anypoint VPC. The public CloudHub load balancer already redirects these requests, where `_myApp_` is the name of the Mule application deployment to CloudHub: - HTTP requests to `http://myApp.cloudhub.io` redirects to `mule-worker-myApp.cloudhub.io:8081` - HTTPS traffic to `https://myApp.cloudhub.io:443` redirects to `https://mule-worker-myApp.cloudhub.io:8082` Your load balancer listens for outside requests over HTTPS and, by default, communicates internally with your worker over HTTP. If you configured your Mule application within the Anypoint VPC to listen on HTTPS, make sure you set `upstreamProtocol` to `HTTPS` when creating the mapping list using the [`cloudhub load-balancer mappings add`](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-mappings-add) command. ## Routing External Requests to the Dedicated Load Balancer A CloudHub dedicated load balancer provides an alternative domain name to route HTTP requests to Mule applications listening on port 8091 and HTTPS requests to Mule applications listening on port 8092. You can also use mapping rules to rename requests to the CloudHub DLB to a different Mule application domain name. The CloudHub DLB exposes an external domain name that resolves to two public IP addresses which are accessible from outside your CloudHub Anypoint VPC network. `[lb-name]` is the name you gave the load balancer when you created it: - `[lb-name].lb.anypointdns.net` - `[lb-name].lb-prod-eu-rt.anypointdns.net` (EU control plane) - `[lb-name].lb-gprod-rt.anypointdns.net` (Government Cloud control plane) ## Renaming External Mule Application URLs Through a Dedicated Load Balancer You can create a mapping rule to rename the Mule application, so it can be accessed through a different domain name. For example, suppose you deploy a Mule application named myApp-myCompany-prod.cloudhub.io. CloudHub domain names must be globally unique among every other MuleSoft customer and Mule application. A DLB helps you hide this naming complexity within your corporate DNS domain name. You can set a CNAME record in your corporate DNS nameserver to mask the `lb-name.lb.anypointdns.net` domain to your company’s "vanity" domain. For example, suppose your company owns the DNS domain `example.com`. You can create a CNAME record to route requests to `myapp.example.com` to a Cloudhub application named `myapp` using the `{subdomain}` pattern. This hides the complexity of the CloudHub domain name in the `cloudhub.io` domain. ## Routing Internal Requests to the Dedicated Load Balancer The CloudHub dedicated load balancer has an internal domain name that is used by applications and clients within the Anypoint VPC. The internal domain uses the following naming convention (`[lb-name]` is the name you gave the load balancer when you created it): internal-\[lb-name\].lb.anypointdns.net Each DLB has DNS A records `[lb-name].lb.anypointdns.net` that resolve to the public IP addresses of the instances. The number of public IP addresses correlates to the number of workers. Through your DNS provider, you can add a CNAME record pointing to this A record and use your domain names to access it. If you want your load balancer to manage all connections to your application but do not want your default domain name for your application publicly exposed, then each application must listen on HTTP port 8091 or 8092. Alternatively, you can create a custom mapping policy to redirect outside requests from your load balancer to your specific application. The following graphic shows how a load balancer interacts between a VPC and Anypoint Platform. ![Load Balancer](/mulesoft/current/en-us/cloudhub/_images/pxty-lb.png) Your load balancer listens for outside requests over HTTPS and, by default, communicates internally with your worker over HTTP. If you configured your Mule application within the Anypoint VPC to listen on HTTPS, you must set `upstreamProtocol` to HTTPS when creating the mapping list using the `load-balancer mappings add` command. The internal HTTP mode lets you configure how HTTP requests are managed. They are either silently ignored, mapped HTTPS on the default SSL endpoint, or the URL is mapped straight through to the corresponding HTTPS URL. ## DLB URL Encoding You can configure the DLB to pass request URIs unchanged or decoded: - If you select **Keep URL encoding**, the DLB passes only the %20 and %23 characters as is. - If you deselect **Keep URL encoding**, the DLB decodes the encoded part of the request URI before passing it to the CloudHub worker. ## URL Path Normalization CloudHub dedicated load balancers treat consecutive path separators as a single separator. For example, when a request includes `orders//details` in the path, the DLB normalizes it to `orders/details` before forwarding it to the Mule worker. This behavior aligns with URL handling best practices and is standard across most web systems. If your application requires preserving consecutive path separators (for example, APIs with optional URI parameters), send requests directly to the Mule worker using the `mule-worker-_myApp_._region_.cloudhub.io` hostname. ## See Also - [Virtual Private Cloud](https://docs.mulesoft.com/cloudhub/virtual-private-cloud) - [CloudHub](https://docs.mulesoft.com/cloudhub/) - [Mapping Rules](https://docs.mulesoft.com/cloudhub/lb-mapping-rules) --- product: CloudHub --- # Dedicated Load Balancer Mapping Rules > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The CloudHub dedicated load balancer (DLB) routes requests from clients to Mule apps deployed within the VPC. _Mapping rules_ enable you to forward requests received by the DLB (using the HTTP Host header to identify the matching rule) to a different Mule application name and domain. You can either define mapping rules when you create the DLB, or you can define and add them to an existing DLB using Runtime Manager, the command-line interface (CLI), or the CloudHub API. When you create a simple matching rule, one input address matches the defined output: the endpoint of an application. Instead of using literal matchings, you can use a pattern to match a variable, such as input text to an endpoint. The order of the rules determines their priority. The first rule in the list that matches is applied. > [!NOTE] If you don’t define any mapping rules, the DLB creates and uses a default mapping rule. > You can change the default mapping rule later. ## Create Mapping Rules Mapping rules are attributes of the load balancer’s SSL endpoint, which is identified by the certificate Common Name (CN). The certificate is associated when you create mapping rules: - Runtime Manager You define mapping rules within a certificate definition. - CLI or CloudHub API You must specify a certificate CN. If you omit the certificate name, the mappings are added to the default endpoint. ### Create Mapping Rules in Runtime Manager To create mapping rules in an SSL endpoint for a DLB in Runtime Manager: 1. From Anypoint Platform, select **Runtime Manager**. 2. Select **Load Balancers** in the left menu. 3. Click a load balancer name, and then click a certificate name. 4. In the **URL Mapping Rules** section, click **Add New Rule**: ![the \*Add New Rule\* icon and the fields required to create a mapping rule](/mulesoft/current/en-us/cloudhub/_images/cloudhub-dlb-mapping-rules.png) Figure 1. The screenshot shows (**1**) the **Add New Rule** icon and (**2**) the fields required to create a mapping rule. 5. Complete the fields: - **Input Path** (`inputUri`) The URI that the client requests: for example, `/{app}/` The input URI is appended to the host header of the load balancer. - **Target App** (`appName`) The name of the CloudHub application that processes the request: for example, `{app}-example` - **Output Path** (`appURI`) The URI string to pass to the app: for example, `/` The output path cannot contain patterns. - **Protocol** (`upstreamProtocol`) The protocol on which the application listens: - `http` (port 8091) - `https` (port 8092) - `ws` WebSockets (port 8091) - `wss` WebSockets over SSL/TLS (8092) By default, the load balancer listens to external requests on HTTPS and communicates internally with your worker over HTTP. If you configured your Mule application within the VPC to listen on HTTPS, set **Protocol** to `https` when you create the mapping rule list. The DLB uses the values in the fields and the client request to generate the path that is sent to the target app. For example, if the client request is `/hello/world/` and the mapping rules fields are set to the following: - **Input Path**: `/hello/` - **Target App**: `myApp1` - **Output Path**: `/test/` The DLB uses the value of the output path (`/test/`), removes the section that matches the input path from the client request (`/hello/`), and appends the rest (`/world/`) to the client request. The DLB then sends the resulting path (`/test/world/`) to the target app (`myApp1`). You can use either patterns or literal strings to define the input path. For the output path, you can use only literal strings. ### Create a Mapping Rule Using the CLI To create a mapping rule in a DLB using the CLI: ```text cloudhub load-balancer mappings add [options] [certificateName] ``` See [cloudhub load-balancer mappings add](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-mappings-add). ### Create a Mapping Rule Using the CloudHub API To create a mapping rule in a DLB using the CloudHub API: ```text anypoint.mulesoft.com/cloudhub/api/organizations/{orgid}/loadbalancers/{loadbalancerId} ``` See [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/pages/home/). ## Use Patterns in Mapping Rules A _pattern_ is a string that defines a template for matching an input text. The value in curly brackets (`{ }`) is treated as a variable: - Variable **names** can contain only lowercase letters (`a-z`) and no other characters. - Variable **values** can contain the characters `a-z0-1.&?-_`, but can’t contain slash characters (`/`). > [!IMPORTANT] DLBs don’t support patterns in the **Output Path** (`appURI`). ### URL Mapping You can pass the app name as the **Input Path** and map it directly to the app name in CloudHub:
Rule #Input PathTarget AppOutput PathProtocol

1

/{app}/

{app}

/

http

This rule maps requests to `lb-demo.lb.anypointdns.net/{app}`, redirecting them to `{app}.cloudhub.io`. The `{app}` pattern matches any application name that you pass in the inbound request. ### Host Mapping If your SSL endpoint sets a [wildcard certificate](https://en.wikipedia.org/wiki/Wildcard_certificate) (such as `*.example.com`), you can use the `subdomain` variable to map any subdomain:
Rule #Input PathTarget AppOutput PathProtocol

1

/

{subdomain}

/

https

This rule automatically maps any request passed to a subdomain of `example.com` to the corresponding `appName`: - Passing `api.example.com` redirects to `api.cloudhub.io`. - Passing `application.example.com` maps to `application.cloudhub.io`. You can also use the `subdomain` variable with the [Subject Alternative Names](https://en.wikipedia.org/wiki/Subject_Alternative_Name) (SANs) of your SSL endpoints. Instead of using a wildcard certificate, which permits any subdomain application name to pass through the DLB, you can specify which subdomain names to allow. To do this, you must configure those SANs for a certificate’s common name. You can use the `subdomain` variable to map the subdomain portion of your domain name to your application. This example includes: - Two deployed applications: - `dev-app` - `qa-app` - An SSL endpoint with these SANs configured: - `dev.example.com` - `qa.example.com` - Mapping rule:
Rule #Input PathTarget AppOutput PathProtocol

1

/

{subdomain}-app

/

https

This rule maps the subdomain part of your domain name to the application name: - `dev.example.com` redirects to `dev-app.cloudhub.io`. - `qa.example.com` redirects to `qa-app.cloudhub.io`. ## Use a Literal 1:1 Mapping Instead of using a pattern, you can map literal app names. In this case, the rules must match the applications exactly. This rule maps the default load balancer `lb-demo.lb.anypointdns.net` directly to the `myApp.cloudhub.io` app in CloudHub:
Rule #Input PathTarget AppOutput PathProtocol

1

/

myApp

/

http

This rule matches the `dev-misc-myhellotest-v1-myapp` app if the input URI is `/misc/myhellotest/v1/ping` but not `/misc/myhellootest/v1/ping`:
Rule #Input PathTarget AppOutput PathProtocol

1

/{layera}/{domaina}/v{versiona}/

dev-{layera}-{domaina}-{versiona}-myapp

/api/

http

You can also use literal 1:1 mappings for multiple applications by changing the **Input Path** to be static instead of a defined pattern:
Rule #Input PathTarget AppOutput PathProtocol

1

/v1/applicationX

application-x

/api/

http

2

/v1/applicationY

application-y

/api/

http

3

/v2/applicationx

application-x-v2

/api/

http

## Mapping Rule Priority Every rule must have a priority defined. The first rule in the list has a higher priority than rules lower in the list. The DLB always uses the first rule that matches, regardless of whether a more exact match appears later in the list. When creating rules, pay attention to the order for each rule to avoid multiple rules overriding each other. In the following example, the `/api/v1/secondapp` URL maps to the `default-app` app:
PriorityInput PathTarget AppOutput PathProtocol

1

/api/v1/

default-app

/api/v1/

http

2

/api/v1/secondapp/

second-app

/api/v1

http

For the rule to match only `second-app`, the rule priority must be:
PriorityInput PathTarget AppOutput PathProtocol

1

/api/v1/secondapp/

second-app

/api/v1

http

2

/api/v1/

default-app

/api/v1/

http

### Change the Priority of Mapping Rules in Runtime Manager To change the priority of mapping rules in Runtime Manager: 1. From Anypoint Platform, select **Runtime Manager**. 2. Select **Load Balancers** in the left menu. 3. Click a load balancer name, and then click a certificate name. 4. In the **URL Mapping Rules** section, hover over the rule to display the handle: ![Handle to use to reorder a mapping rule](/mulesoft/current/en-us/cloudhub/_images/cloudhub-dlb-mapping-rules-reorder.png) Figure 2. The arrow shows the handle to use to reorder a mapping rule. 5. Click and drag the handle to move the rule up or down in the list. 6. Click **Done Editing**. ### Change the Priority of Mapping Rules Using the CLI To specify the mapping rule priority when creating a mapping rule with the CLI, use the `index` value. The rule at index `0` has the highest priority. The higher the index assigned, the lower the priority. See [cloudhub load-balancer mappings add](https://docs.mulesoft.com/cloudhub/cloudhub-cli#cloudhub-load-balancer-mappings-add). ### Change the Priority of Mapping Rules Using the CloudHub API When using the API to create a mapping rule, you cannot specify a priority order. The new rule is appended to the list. You can update the order of the rules later by sending a `PATCH` request to the load balancer endpoint: ```text anypoint.mulesoft.com/cloudhub/api/organizations/{orgid}/loadbalancers/{loadbalancerId} ``` To determine the load balancer ID, perform a GET request to your endpoint: ```text /organizations/{orgid}/loadbalancers ``` ## See Also - [CloudHub Dedicated Load Balancer](https://docs.mulesoft.com/cloudhub/cloudhub-cli) - [CloudHub API](https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/cloudhub-api/minor/1.0/pages/home/) - [Add Certificates](https://docs.mulesoft.com/cloudhub/lb-cert-upload) - [Allowlists](https://docs.mulesoft.com/cloudhub/lb-allowlists) --- product: CloudHub --- # Dedicated Load Balancer Reserved Headers > For the full documentation index, see: https://docs.mulesoft.com/llms.txt HTTP requests and HTTP responses use header fields to send information about the HTTP messages. A load balancer adds HTTP headers to provide backend servers with crucial information about the original client connection. This information supports routing and security. The CloudHub Dedicated Load Balancer (DLB) reserves and injects specific HTTP headers into incoming requests. You can’t overwrite these headers.
Header NameDescriptionValue

Strict-Transport-Security

Enables HTTP Strict Transport Security (HSTS) to force HTTPS connections and prevent protocol downgrade attacks.

max-age=31536000; includeSubdomains;

X-Content-Type-Options

Prevents MIME type sniffing attacks by instructing browsers to not override the declared content type.

nosniff

X-Frame-Options

Prevents browsers from loading your web page in iframes to protect against click-jacking.

SAMEORIGIN

X-XSS-Protection

Enables basic cross-site scripting (XSS) protection in browsers that support it.

1; mode=block

x-ch1-path

Preserves the original request path before the system applies the DLB mapping rules. It’s injected in the DLB request to the upstream server.

Original request path. For example, /v1/orders.

## Header Injection Rules Security Headers - The DLB enforces the security headers, and you can’t override them. - The DLB injects the `X-Content-Type-Options`, `X-Frame-Options`, and `X-XSS-Protection` headers in the DLB response to callers for responses with these status codes: `200`, `201`, `204`, `206`, `301`, `302`, `303`, `304`, `307`, and `308`. These are the status codes for which the underlying NGINX `add_header` directive applies by default. Responses with other status codes, such as `202 Accepted`, don’t include these headers. - The DLB always injects the `Strict-Transport-Security` regardless of the response code. x-ch1-path Header - The DLB injects the x-ch1-path header in the request sent to the upstream server, not in the response. ## Header Details Strict-Transport-Security - The `Strict-Transport-Security` header forces browsers to use HTTPS for all future requests to the domain. - The `max-age` value represents the duration in seconds that the browser remembers and enforces the HSTS policy after receiving the header. - The `includeSubdomains` directive extends the HTTPS enforcement policy beyond just the main domain to cover all subdomains. - The `always` parameter includes the `Strict-Transport-Security` in every HTTP response, regardless of the response status code. X-Content-Type-Options - The `X-Content-Type-Options` header prevents browsers from MIME-sniffing a response away from the declared content-type. - The `nosniff` directive instructs browsers to trust the content-type header declared by the server and never attempt to guess or "sniff" the actual content type by examining the content itself. X-Frame-Options - The `X-Frame-Options` header controls whether a browser can to load your web page inside a `` or `