Skip to main content


Sync Open-Policy to your Frontend

When developing a new feature, we often need to control which users can access and interact with it.
(For example, we might want to make sure only subscribers can access paid features)
If the user has no permissions to use the feature, we decide whether we display the feature disabled or hide it altogether.

OPToggles (Open Policy Toggles) is an open-source project that utilizes OPA + OPAL into your existing feature toggling solution.
OPToggles automatically creates user-targeted feature flags based on your existing authorization rules, pushes them to the feature flag solution, and keeps them synced using OPAL's real-time policy and policy-data event-driven architecture.

  • OPToggles uses OPA as the source of truth regarding what users are authorized for each feature toggle.
  • OPToggles uses OPAL to get real-time policy/data updates.

OPToggles requires a one-time configuration to connect to OPA and OPAL, and the rest is automatic.

Currently, OPToggles works with LaunchDarkly and with a Generic REST API. Let us know if you'd like to see OPToggles integrated with other feature flag solutions, or better yet contribute one with a pull request on OPToggles' Github.

OPToggles is part of Permitโ€™s suite of open source solutions.

In the GIF, you can see how we:

  • Add the admin role to Alice.
  • Commit the new policy.
  • Alice can immediately see "Flag On", without any code changes.

Get Started with OPToggles

  • Setup OPA and OPAL
  • Config OPTpggles to receive callbacks from OPAL client
  • Configure OPToggles to the relevant feature flag solution API
  • Build and Run OPToggles

OPToggles Support and Help

We are always eager to talk to fellow developers, and we'd be happy to help with anything regarding OPToggles, OPA and OPAL,, and IAM in general.

๐Ÿ‘ฉโ€๐Ÿ’ป Github

We use Github to manage support tickets, ongoing design discussions, and product roadmap.

You're welcome to join the conversation and open issues (bug reports, feature requests) and discussions (general questions / thoughts):

๐Ÿ“ง Slack, Email and Zoom :)

Got a more specific question? You can contact us via our Slack community, or reach out via classic email at Want to dive deeper with our team? You can even schedule a Zoom call with us.