Skip to content
permitioPublic

About

Permit Policy Decision Point service. High-performance, policy-driven authorization for your apps and service.

Topics

Resources

Stars

32 stars

Watchers

1 watching

Forks

Latest commit

 

History

589 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDP.png

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 using an API Key. Check out the Permit.io documentation to learn how to get an Environment API Key.

You can run a PDP in a docker container by running the following command:

docker run -it -p 7766:7000 -e PDP_API_KEY=<YOUR_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 for more information.

Contributing

Setting up the development environment

  1. Clone the repository
  2. Install uv 0.12.19 or later
  3. Install the locked dependencies, including the dev group, into .venv (uv fetches Python 3.13 if it is missing)
uv sync
  1. Run the tests
uv run pytest horizon/tests/
  1. Run the type check (ty, configured under [tool.ty] in pyproject.toml). CI fails on any diagnostic, warnings included.
uv run ty check
  1. Install the git hooks (ruff, rustfmt, clippy, the ty type check, the waiver and lock checks), or run them on demand
uvx prek install
uvx prek run --all-files

Dependencies live in pyproject.toml and are locked in uv.lock, which the Docker image and CI install as-is. After editing pyproject.toml, run uv lock and commit both files.

Running locally (during development)

PDP_API_KEY=<YOUR_API_KEY> uv run 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=<YOUR_API_KEY> uv run uvicorn horizon.main:app --reload --port=7000

Building a Custom PDP Docker image

For ARM architecture:

VERSION=<TAG> make build-arm64

For AMD64 architecture:

VERSION=<TAG> make build-amd64

Running the image in development mode

VERSION=<TAG> API_KEY=<PDP_API_KEY> make run

About

Permit Policy Decision Point service. High-performance, policy-driven authorization for your apps and service.

Topics

Resources

Stars

32 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages