Skip to main content

Run the PDP (Policy Decision Point)

Start a policy decision point (PDP) for your application to send permission checks to: run the PDP container on your machine, or connect the SDK to the managed Cloud PDP. This page is for developers setting up Permit for the first time.

A policy decision point (PDP) is the microservice that evaluates your policy and answers each permission check. Permit offers two kinds:

PDPWhere it runsUse it when
Container PDPA Docker container you run in your own networkYou need attribute-based access control (ABAC), local enforcement APIs, or decisions next to your services
Cloud PDPPermit's managed service at https://cloudpdp.api.permit.ioYou want to start without running infrastructure, and your policies use role-based (RBAC) or relationship-based (ReBAC) access control

For the full feature comparison, see Cloud PDP capabilities.

Prerequisites

Start the PDP

Pull the PDP container from Docker Hub

Pull the permitio/pdp-v2 image:

docker pull permitio/pdp-v2:latest

Run the PDP container

Replace <YOUR_API_KEY> with your environment API key, then run:

docker run -it -p 7766:7000 --env PDP_DEBUG=True --env PDP_API_KEY=<YOUR_API_KEY> permitio/pdp-v2:latest

The command sets these options:

OptionMeaning
-p 7766:7000Maps port 7766 on your machine to port 7000, the PDP API port inside the container. Your application sends checks to http://localhost:7766.
PDP_API_KEYThe environment API key. The PDP uses it to connect to Permit and load that environment's policy and data.
PDP_DEBUG=TrueTurns on debug logging in the container output.

Verify the container PDP is running

  1. In a second terminal, run docker ps. The list shows a container from the permitio/pdp-v2:latest image with 0.0.0.0:7766->7000/tcp in the PORTS column.
  2. Open http://localhost:7766/health in a browser. A healthy PDP returns HTTP 200 with "status": "ok". If a component inside the PDP is not healthy, the endpoint returns HTTP 503 with "status": "error" and the failing component. Check the container output for errors.

To connect the SDK to the container PDP, set the SDK's pdp option to http://localhost:7766. For logging, port, and monitoring options, see Run the PDP as a local authorization microservice.

Next steps