---
schema_version: "1"
id: 5b87e0286adfa17c8ec9adf22e8779ac3396810ed691a0949964f2909f1cdb65
title: Prerequisites for Flex Gateway Policy Development Kit (PDK)
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/pdk/1.3/policies-pdk-prerequisites.md
canonical_url: https://docs.mulesoft.com/pdk/1.3/policies-pdk-prerequisites
source_site: docs.mulesoft.com
content_type: documentation
content_hash: f79005fb51ecf17751a5ecba37b333064dbe00a093270484f5a8c58b7dcb78eb
description: MuleSoft Documentation Site
release: "1.3"
latest: false
---
---
product: Omni Gateway Policy Development Kit (PDK)
version: 1.3
---

# Prerequisites for Flex Gateway Policy Development Kit (PDK)

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Before you begin using Flex Gateway Policy Development Kit (PDK), review these prerequisites.

## Flex Gateway

PDK tutorials assume that you have [downloaded Flex Gateway](https://docs.mulesoft.com/gateway/latest/install) and have
some prior knowledge of the product.

Policies created with PDK might be compatible with Omni Gateway versions that aren’t compatible with
PDK’s integration testing framework. The Omni Gateway version used for testing doesn’t affect the
functionality of the policy when deployed to a different Omni Gateway version. See the following
table to ensure your Omni Gateway’s compatibility:

<table><colgroup><col> <col> <col></colgroup><thead><tr><th>Component</th><th>Minimum Omni Gateway Version</th><th>Maximum Omni Gateway Version</th></tr></thead><tbody><tr><td><p>Policies</p></td><td><p>1.6.1</p></td><td><p>Latest</p></td></tr><tr><td><p>Testing Framework</p></td><td><p>1.6.1</p></td><td><p>Latest</p></td></tr></tbody></table>

## Rust Requirements for Using PDK

1.  Git

    To download and install, see
    [Installing Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).

2.  Rust programming language version v1.74.0 to v1.83.0:

    1.  To install or update Rust, run the following curl command:

        ```ssh
        curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
        ```

        > [!NOTE] If you do not have curl installed, see
        > [Install curl](https://curl.se/download.html).

    2.  Due to the `wasm32-wasi` compilation target used by the PDK being deprecated in Rust
        v1.84.0, downgrade Rust to the last compatible version:

        ```ssh
        rustup default 1.83.0
        ```

3.  Rust WebAssembly System Interface (WASI) Crate

    To install or update Rust WASI, run the following command:

    ```ssh
    rustup target add wasm32-wasi
    ```

4.  Cargo Generate

    To install or update Cargo Generate, run the following command:

    ```ssh
    cargo install --locked cargo-generate@0.22.0
    ```

## Supported Operating Systems

- macOS

- Ubuntu

  To use Ubuntu, execute the following commands to install the required packages after installing
  the [Rust Requirements for Using PDK](#rust-requirements):

  ```ssh
  sudo apt install -y build-essential
  sudo apt install -y pkg-config
  sudo apt install -y libssl-dev
  ```

- Windows

  > [!IMPORTANT] PDK supports Windows to develop and test you custom policy. However, Flex Gateway
  > does not support Windows in production environments.

  To execute the `make` commands included in PDK, install:

  1.  [PowerShell on Windows](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3)

  2.  Make, with either:

      - [Make for Windows](https://gnuwin32.sourceforge.net/packages/make.htm)

      - Chocolatey:

        ```ssh
        choco install make
        ```

## Anypoint CLI

To configure the Anypoint CLI for PDK:

1.  [Install Anypoint CLI 4.x v1.4.4 or later](https://docs.mulesoft.com/anypoint-cli/latest/install).

    > [!NOTE] To find your Anypoint CLI 4.x version, see
    > [Verify the Core Package Version](https://docs.mulesoft.com/anypoint-cli/latest/install#verify-installation).

2.  [Authenticate to the Anypoint Platform CLI](https://docs.mulesoft.com/anypoint-cli/latest/auth) using a
    [Connected App](https://docs.mulesoft.com/access-management/connected-apps-overview).

    Authenticate with a Connected App by providing the app’s client ID and client secret.

    > [!NOTE] In addition to the `View Organization` and `View Environment` scopes required to
    > authenticate to Anypoint Platform, to complete
    > [Uploading Custom Policies to Exchange](https://docs.mulesoft.com/pdk/1.3/policies-pdk-publish-policies), the Connected App must
    > have the `Exchange Contributor` scope applied.

3.  Run the following command to install or update the Anypoint CLI PDK Plugin:

    ```ssh
    anypoint-cli-v4 plugins:install anypoint-cli-pdk-plugin
    ```

## Docker

Docker is required to use the [local debugging environment](https://docs.mulesoft.com/pdk/1.3/policies-pdk-debug-local) and the
[integration testing framework](https://docs.mulesoft.com/pdk/1.3/policies-pdk-integration-tests) provided with PDK. You can still
build and publish policies without docker.

To install Docker, see [Install Docker](https://docs.docker.com/get-started/get-docker/).

> [!IMPORTANT] You can run Flex Gateway in Local Mode on Docker in Windows only to develop and test
> your policies. However, Flex Gateway does not support Windows in production environments.

## Visual Studio (Suggested IDE)

You can use PDK in any IDE or text editor, such as
[Microsoft Visual Studio](https://code.visualstudio.com/) with the
[Rust in Visual Studio Code Plugin](https://code.visualstudio.com/docs/languages/rust) installed.

## See Also

- [Upgrading PDK](https://docs.mulesoft.com/pdk/1.3/policies-pdk-upgrade-pdk)

- [Policy Development Kit Architecture Overview](https://docs.mulesoft.com/pdk/1.3/policies-pdk-architecture)

- [Developing Custom Policies](https://docs.mulesoft.com/pdk/1.3/policies-pdk-develop-custom-policies)
