Mulesoft with XML Plugin
  • 23 Jan 2023
  • 5 Minutes to read

Mulesoft with XML Plugin


Mulesoft is an integration platform that help different businesses connect their data, devices, and applications for both cloud computing and on-premise deployments. Mulesoft's Anypoint Platform™ is a solution for API-led connectivity that creates an application network of apps, data, and devices for both on-premise and cloud deployments. Traceable provides a policy that can help you in protecting your APIs. You can attach the Traceable policy to any API registered on the Anypoint platform for security and monitoring purpose. The following diagram shows the high-level deployment of Traceable policy in your environment. 


Before you begin

Before proceeding to attach Traceable policy to an API on your Mulesoft Anypoint Platform, make a note of the following points:

  • Maven (mvn) must be installed.
  • You should have access and permission to upload artifacts to Mulesoft exchange in your organization's Mulesoft Anypoint Platform account.
    Note
    To upload Traceable's custom policy to Mulesoft Exchange, you must have the exchange contributor's role assigned to you. For more information, see Uploading a Custom Policy to Exchange.
  • In your Maven installation directory, update the settings.xml file with your Exchange credentials.
    ActionScript
    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <servers>
        <server>
           <id>exchange-server</id>
           <username>myusername</username>
           <password>mypassword</password>
         </server>
      </servers>
    </settings>
    myusername and mypassword are your username and password to log in to Mulesoft account.
  • Keep the IP address of your Traceable agent handy. You would need this IP address to configure the Traceable's Mulesoft policy.

The process to attach Traceable's policy consists of two steps:

  1. Download the policy from Traceable's download site and then upload to Mulesoft's Exchange
  2. Attaching the policy to the API in Mulesoft.

Step 1 – Download the policy and upload to Mulesoft Exchange

Complete the following steps to download and unzip Traceable's policy:

  1. Navigate to Traceable's download site and then navigate to agent > mulesoft > latest.
  2. Download and unzip the downloaded file.
  3. Change directory to the Mulesoft policy directory:
    ActionScript
    cd traceable-mule-policy
  4. Navigate to Traceable policy:
    ActionScript
    cd traceable
  5. Edit the pom.xml file to update your Mulesoft's organization ID:
    ActionScript
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
    <!--UPDATE GROUP ID-->
        <groupId>4c2d42c8-910d-42fe-8f21-bc76f21ef3fe</groupId>
        <artifactId>traceable</artifactId>
        <version>1.14.0</version>
  6. Deploy the Traceable policy. Enter the following command:
    ActionScript
    mvn clean deploy
  7. Verify in your Mulesoft Anypoint Platform Exchange whether Traceable policy is present or not.

Upload policy to Mulesoft Exchange using Connected App credentials

There is an alternative method to upload the Traceable policy to Mulesoft Exchange using Connected App credentials. You can choose either this method or the one described in the previous section. 

MuleSoft Connected Apps is a feature within the MuleSoft Anypoint Platform that allows users to create and manage connections to external systems and services, such as SaaS applications, databases, and web services. These connections can then be used in MuleSoft's integration solutions, such as APIs and integrations, to facilitate communication and data exchange between different systems. By using Connected Apps, developers can quickly and easily connect to a wide variety of systems and services without the need to manually configure and manage the connections. Additionally, Connected Apps can be easily shared and reused across different projects and teams, making it easier to maintain and manage the connections.

Mulesoft Connected Apps are usually used in integration solutions, such as APIs and integrations, to facilitate communication and data exchange between different systems. It also provides a way to manage the connections and share them across teams.

Complete the following steps:

  1. Navigate to Traceable's download site and then navigate to agent > mulesoft > latest.
  2. Unzip the downloaded file.
  3. Change directory to Mulesoft policy directory.
    ActionScript
    cd traceable-mule-policy 
    
  4. Navigate to Traceable policy.
    ActionScript
    cd traceable
  5. Update the groupId in pom.xml file to your Mulesoft organization's ID.
    ActionScript
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
    <!--UPDATE GROUP ID-->
        <groupId>4c2d42c8-910d-42fe-8f21-bc76f21ef3fe</groupId>
        <artifactId>traceable</artifactId>
        <version>1.15.0</version>
  6. Build the Traceable policy. Enter the following command:
    ActionScript
    mvn clean install
  7. Fetch a bearer token using the credentials connected app, client ID, and secret. client_id and client_secret are the ID and secret of the Connected App.
    ActionScript
    curl --location --request POST https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'client_id=' \
    --data-urlencode 'client_secret=' \
    --data-urlencode 'grant_type=client_credentials'
  8. Publish the policy by running the following. Make sure to enter all the values in the <> brackets. The traceable_version is the version of Traceable's Mulesoft policy.
    ActionScript
    curl -v \
      -H 'Authorization: bearer ' \
      -H 'x-sync-publication: true' \
      -F 'files.pom=@/path/to/traceable-mule-policy/traceable/pom.xml' \
      -F 'files.mule-policy.jar=@/path/to/traceable-mule-policy/traceable/target/traceable--mule-policy.jar' \
      -F 'files.policy-definition.yaml=@/path/to/traceable-mule-policy/traceable/traceable.yaml' \
    https://anypoint.mulesoft.com/exchange/api/v2/organizations/<org_id>/assets/<org_id>/traceable/<traceable_version>
  9. Verify in your Mulesoft Anypoint Platform Exchange whether Traceable policy is present or not.

Step 2 – Attach the policy

You can attach the policy to the API at a global or at an individual API level. 

Option 1 – Attach using automated policy

You can attach Traceable's agent for Mulesoft as a policy that would apply to all the APIs. You can achieve this using Mulesoft's Automated policy option. Complete the following steps:

  1. Login to your Anypoint Platform and navigate to API Manager.
  2. Click on Automated Policies from the left navigation menu. 
  3. Click on add automated policy in the Automated Policies page.
  4. Search for the Traceable policy. Select the appropriate policy and click on Next.
  5. Enter the different values to configure Traceable. Make sure to configure TA REPORTING ENDPOINT. The value should be http://traceable_platform_agent_host:5442/ext_cap/v1/req_res_cap. If you wish, you can use the default values for the rest of the properties, or you can modify them.
  6. Click on Apply to apply the policy.

Option 2 – Attach policy to an API

Complete the following steps to attach the Traceable policy to the APIs that you wish to secure:

  1. Login to your Anypoint Platform and navigate to API Manager.
  2. Select the API to which you wish to attach the Traceable policy.
  3. Click on the Policies option as shown below
  4. Click on Add policy 
  5. Search for Traceable policy. Select the policy.
  6. Add the Traceable Platform agent's IP address. The value should be http://traceable_platform_agent_host:5442/ext_cap/v1/req_res_cap.
  7. Update the other configurations, or you can use the default values.
  8. Apply the policy.

Configuration options

The following table describes the various configuration options.

PropertyValue
TA REPORTING ENDPOINTThis is a mandatory value. The value should be http://traceable_platform_agent_host:5442/ext_cap/v1/req_res_cap
TA DATA CAPTURE BODY MAX SIZE BYTES (Optional)true or false
TA DATA CAPTURE HTTP BODY REQUEST (Optional)true or false
TA DATA CAPTURE HTTP BODY RESPONSE (Optional)true or false
TA DATA CAPTURE HTTP HEADERS REQUEST (Optional)true or false
TA DATA CAPTURE HTTP HEADERS RESPONSE (Optional)true or false
TA DATA CAPTURE ALLOW CONTENT TYPES (Optional)List of values without spaces (json,graphql,x-www-form-urlencoded)
TA DATA CAPTURE COMPRESS GZIP (Optional)true or false. The default value is false.
Note
If you change the value to true, make sure that your minimum Traceable Platform agent version is 1.27.0 or later.

Following is a short demo to add the Traceable policy in Mulesoft's Anypoint Platform:



Verification

To verify whether the policy successfully attached to the API in Mulesoft, navigate to Traceable platform. Click on Administration > Data Collection > Tracing agents. Check if Mulesoft agent is displayed and the status is active. You can further check for spans in API Analytics or API Activity under API Catalog.


Upgrade and uninstall

To upgrade the policy, follow the steps in mentioned in Step -1 section to add the new policy to Mulesoft's Exchange. After you have added the new policy to Mulesoft Exchange, complete the following steps:

  1. Navigate to the API for which you want to upgrade the policy.
  2. Click on the Policies option.
  3. Click on the menu item as shown below. 
  4. Click on Check for updates to update the policy.

If you wish to uninstall the policy, click on Remove policy.


Was this article helpful?