Feature/openfga integration - #1
Merged
Merged
Conversation
threehook
force-pushed
the
feature/openfga-integration
branch
5 times, most recently
from
August 9, 2026 11:14
2e217a8 to
052d127
Compare
Adds OpenFGA as a supported policy store backend (originally contributed via permitio#673 from daveads/opal), with fixes to make it actually work end-to-end: - New OPENFGA policy store: OpenFGAClient (opal-client) syncs policy and data updates to an OpenFGA server, following the same pattern as the existing OPA/Cedar backends. - Inline OpenFGA support: the client-openfga Docker image runs an embedded OpenFGA server via scripts/start-openfga.sh, which starts OpenFGA, waits for it to be healthy, and auto-creates a store when OPAL_OPENFGA_STORE_ID isn't set (replacing a broken supervisord-based CMD override that never actually started the opal-client process, and a hardcoded store id that only existed in the original author's own OpenFGA instance). - App tests: app-tests/openfga-test.py exercises permission checks, relationship reads, and authorization-model validation against a live OpenFGA instance. app-tests/run-openfga-services.sh now builds both the client-openfga and server images from source (permitio/opal-client-openfga isn't published anywhere, and opal-server needs this branch's changes - pulling the published image would silently run unpatched upstream code), waits for opal-client's /ready endpoint instead of a fixed sleep, and discovers the auto-created store id at runtime instead of assuming a fixed one. - opal_server's default all-data route now searches the policy repo clone for a data file (data.json by default) instead of always returning {}, with a short bounded retry to cover the repo clone still being in progress on first request. - OpenFGAClient.set_policy_data treats an empty {} data payload as zero tuples (a valid state) instead of raising - relevant when no data source is configured, or briefly during the clone race above. - Fixed openfga-app-test.yml's trigger (branches: [test] -> [master]) so it actually runs in CI. - Restored a dropped `import functools` and implemented the abstract OpenFGARunner.health_check(), both required by changes to master that landed after PR permitio#673 was opened.
threehook
force-pushed
the
feature/openfga-integration
branch
from
August 9, 2026 11:51
052d127 to
21a3cc5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds OpenFGA as a supported policy store backend, originally contributed via permitio#673 (daveads/opal), plus fixes needed to make it actually work end-to-end:
Fixes on top of the original merge
Test plan