--- layout: default ---
The Open Policy Agent (OPA) is an open source project that helps policy enable your application. By integrating with OPA, your application's operators will be empowered to manage the size, complexity, and scale of modern deployments.
curl -L https://github.com/open-policy-agent/opa/releases/download/v0.1.0-rc1/opa_linux_amd64 > opaLatest binary (Mac OSX/64-bit):
curl -L https://github.com/open-policy-agent/opa/releases/download/v0.1.0-rc1/opa_darwin_amd64 > opaFrom source (requires Go):
git clone https://github.com/open-policy-agent/opa.git $GOPATH/src/github.com/open-policy-agent/opa cd $GOPATH/src/github.com/open-policy-agent/opa make deps make
OPA features a purpose-built declarative language for describing the expected state of your application. Policies written in Rego are readily understood and easy to maintain.
There are zero deployment dependencies in OPA. Furthermore, OPA is designed around the fate-sharing philosophy for highly available systems.
OPA exposes RESTful APIs for managing policy modules and state relevant to policy enforcement. The APIs produce and consume JSON data and are accessed via HTTP.
OPA's policy engine is designed from scratch with latency sensitive applications in mind. OPA introduces as little latency as possible while still decoupling policy definitions from application business logic.
OPA features an interactive shell that you can use to quickly experiment with queries and data sets.
OPA is written in Go with the intention of being embeddable. Applications written in Go can use OPA as a library if needed.
OPA is licensed under the Apache 2.0 open source license. OPA is under active development.