---
schema_version: "1"
id: 5fb7c590da81f3c762bfb3615fb4a63a6af99e979429828e72ed3a63e569bb74
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.6/policies-pdk-prerequisites.md
canonical_url: https://docs.mulesoft.com/pdk/1.6/policies-pdk-prerequisites
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c5410af734eeb2137f850f4d054018b24fb65119d7a99c821925f41c3a956965
description: MuleSoft Documentation Site
release: "1.6"
latest: false
---
---
product: Omni Gateway Policy Development Kit (PDK)
version: 1.6
---

# 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.88.0 or later

    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).

3.  Rust WebAssembly System Interface (WASI) Crate

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

    ```ssh
    rustup target add wasm32-wasip1
    ```

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.6/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.6/policies-pdk-debug-local) and the
[integration testing framework](https://docs.mulesoft.com/pdk/1.6/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.6/policies-pdk-upgrade-pdk)

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

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