The fastest path to a working FDK environment is the Docker playground. It gives you a pre-configured API Gateway, Policy Studio (via VNC), and a Theia IDE in a single container.
git clone -b develop https://github.com/Axway-API-Management-Plus/filter-devkit.git
cd filter-devkitPlace the API Gateway installer and your license file in the dist/ directory:
dist/
APIGateway_7.7.20260228_Install_linux-x86-64_BN03.run
licence.lic
Linux:
docker build \
--build-arg APIM_RUN_FILE=dist/APIGateway_7.7.20260228_Install_linux-x86-64_BN03.run \
--build-arg APIM_LIC_FILE=dist/licence.lic \
-t filter-devkit-docker \
-f src/main/docker/Dockerfile .Windows:
docker build ^
--build-arg APIM_RUN_FILE=dist/APIGateway_7.7.20260228_Install_linux-x86-64_BN03.run ^
--build-arg APIM_LIC_FILE=dist/licence.lic ^
-t filter-devkit-docker ^
-f src\main\docker\Dockerfile .docker run \
-p 6080:6080 -p 3000:3000 \
-p 8090:8090 -p 8080:8080 \
-p 8065:8065 -p 8075:8075 \
-p 9777:9777 \
--mount type=tmpfs,destination=/tmp \
filter-devkit-docker| URL | Service |
|---|---|
| http://localhost:3000 | Theia Java IDE |
| http://localhost:6080 | VNC — Policy Studio |
| https://localhost:8090 | Admin Node Manager |
In the Theia terminal:
cd /home/project/filter-devkit
./gradlew clean cleanEclipse eclipse buildReload Theia after the first build completes.
The Docker image pre-installs all FDK JARs in the gateway (ext/lib) and registers filter-devkit-studio in Policy Studio via the dropins directory. However, no gateway configuration is provided. Before you can run policies you must:
- Create an XML configuration — open Policy Studio, connect to the Admin Node Manager at
https://localhost:8090, and create a new gateway group and instance configuration. - Import the typesets for the plugins you want to use — for the base FDK: File → Import → Import Custom Filter → select
apigwsdkset.xml. Repeat for any Quick Filter plugins. - Deploy the configuration to the gateway.
Once a configuration is deployed, the gateway instance is ready and you can start creating policies.
| Port | Service |
|---|---|
| 3000 | Theia IDE |
| 6080 | noVNC / Policy Studio |
| 8080 | Gateway default services |
| 8090 | Admin Node Manager |
| 9777 | Java remote debug |
If you prefer to build from source against an existing API Gateway installation, follow Build & Install first, then return here.
This example uses the Advanced Script Filter (requires the FDK typeset to be imported).
- In Policy Studio, create a simple policy called
Token ValidationinPolicy Library. - Add an Advanced Script Filter to another policy.
- In the filter's Resources tab, add a resource:
- Name:
validate - Type: Policy
- Value:
Token Validation
- Name:
- In the script body:
function invoke(msg) {
return invokeResource(msg, "validate");
}The policy is called by reference — Policy Studio tracks the link, and exporting the script also exports the target policy.
This example uses Extension Context to expose a static Java method under the selector ${extensions['hello'].greet}. Using a static method means no instantiation annotation is needed, which keeps the example minimal.
Place HelloExtension.java in $VDISTDIR/ext/dynamic/ — the Dynamic Compiler picks it up on the next deployment:
import com.vordel.circuit.filter.devkit.context.annotations.ExtensionContext;
import com.vordel.circuit.filter.devkit.context.annotations.SubstitutableMethod;
import com.vordel.circuit.filter.devkit.context.annotations.SelectorExpression;
@ExtensionContext("hello")
public class HelloExtension {
@SubstitutableMethod
public static String greet(
@SelectorExpression("http.querystring.name") String name) {
return "Hello, " + name + "!";
}
}Deploy the configuration. The selector ${extensions['hello'].greet} is now available everywhere in the gateway.
- Concepts — the mental model, JUEL selectors, and the method export triad.
- Architecture — how FDK components fit together.
- Scripting Guide — the full scripting API.
- Java Extensions — exposing Java code to selectors and filters.