https://github.com/permitio/pdp
Permit Policy Decision Point service. High-performance, policy-driven authorization for your apps and service.
https://github.com/permitio/pdp
authorization microservice opa opal open-policy-agent permit permitio policy policy-as-code python realtime rust websocket
Last synced: about 1 month ago
JSON representation
Permit Policy Decision Point service. High-performance, policy-driven authorization for your apps and service.
- Host: GitHub
- URL: https://github.com/permitio/pdp
- Owner: permitio
- License: apache-2.0
- Created: 2020-12-15T16:10:01.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-03-31T11:10:36.000Z (2 months ago)
- Last Synced: 2026-03-31T13:17:50.630Z (2 months ago)
- Topics: authorization, microservice, opa, opal, open-policy-agent, permit, permitio, policy, policy-as-code, python, realtime, rust, websocket
- Language: Rust
- Homepage: https://docs.permit.io/concepts/pdp/overview
- Size: 35.5 MB
- Stars: 31
- Watchers: 0
- Forks: 10
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Permit.io PDP
The PDP (Policy decision point) syncs with the authorization service and maintains up-to-date policy cache for open policy agent.
## Running a PDP
PDPs are connected to your [Permit.io account](https://docs.permit.io/quickstart) using an API Key.
Check out the [Permit.io documentation](https://docs.permit.io/manage-your-account/projects-and-env#fetching-and-rotating-the-api-key) to learn how to get an Environment API Key.
You can run a PDP in a docker container by running the following command:
```bash
docker run -it -p 7766:7000 -e PDP_API_KEY= -e PDP_DEBUG=True permitio/pdp-v2:latest
```
### Deploying PDP to Production
You can deploy the PDP to production in multiple designs. See the [Permit.io documentation](https://docs.permit.io/concepts/pdp/overview) for more information.
## Contributing
### Setting up the development environment
1. Clone the repository
2. Install the dependencies
```bash
pip install ".[dev]"
```
### Running locally (during development)
```
PDP_API_KEY= uvicorn horizon.main:app --reload --port=7000
```
You can pass environment variables to control the behavior of the PDP image.
For example, running a local PDP against the Permit API:
```
PDP_CONTROL_PLANE=https://api.permit.io PDP_API_KEY= uvicorn horizon.main:app --reload --port=7000
```
## Building a Custom PDP Docker image
For ARM architecture:
```
VERSION= make build-arm64
```
For AMD64 architecture:
```
VERSION= make build-amd64
```
### Running the image in development mode
```
VERSION= API_KEY= make run
```