This document outlines a set of policies in order to provide a level playing field and open process for contributors to join the OpenFGA project.
Governance activities are currently performed manually. In the future we might use terraform or similar technology to automate tasks, but we're currently a small team and iterating quickly - for now it makes sense to do things in a way that doesn't scale.
For information on the project's license, see the LICENSE.md.
For copyright and trademark information, see Trademark Usage
OpenFGA uses a Teams concept to divide up roles and responsibilities. Teams are defined in GitHub.
Currently there are three main teams:
- Core
- Product
- Contributors
The @core team is concerned with the codebase and technical implementation details for the product.
Responsibilities include:
- review RFCs or delegate their review to a more relevant team
- reach consensus and usher each RFC through the resolution process
- collaborate with @community to collect feedback for RFCs
- ensure RFCs are acceptable to maintain
- govern OpenFGA repos
- PR review and merging
- curating releases
- receive security reports, triage them, and respond in accordance to the Security Policy
Secondary priorities involve collaborating with @product on the roadmap, user research, and iterating on the product experience.
The @product team is concerned with iterating on the product itself. They govern the product roadmap, product marketing, design principles, user research and subject matter expertise, and other product concerns.
Responsibilities include:
- develop and iterate on the governance model
- review RFCs or delegate their review to a more relevant team
- maintain OpenFGA's design principles through the RFC review process
- clarify OpenFGA's design principles over time
- collaborate with @core to develop a roadmap that fits OpenFGA's design principles
- collaborate with @core and @contributors on user research
- iterate on the product experience
The @contributors team exists to keep track of and grant certain privileges to anyone who contributes to the product.
Anyone can become a member of @contributors team: reach out to anyone on the @core or @product teams via any of the channels in the Support section with a request to join and they will make the change.
From there, when someone has a will to be more involved in any of the other teams' responsibilities, and have made significant enough contributions to the product, being promoted to being a member of the @core or @product teams requires making a request and receiving a majority vote from those teams. For more info, see the Governance-Related Policies and Procedures section.
Should someone wish to leave a team, they can reach out to a member of the Core team via any of the channels in the Support section with a request.
As the product grows, it will become more useful to further subdivide the teams. This will enable the project to assign code coverage, streamline conversations, and create subject-matter-expertise where possible. If you have an idea for a new team, start a GitHub Discussion in order for the community to track it and gain alignment.
Decisions regarding any of the processes or policies outlined in this Governance model are reached through consensus among the team members through a 66%+ supermajority unless otherwise expressly stated through the team's own processes.
Voting can be expressed through pull request review, leaving a comment, or through some other form of record - ideally permanent.
Teams are not required to have designated leaders. Teams may choose to designate a leader and define their role and responsibilities through a vote amongst the team.
Nothing here is set in stone. Please improve this document as necessary. Pull requests to this process (GOVERNANCE.md
) will be reviewed by the @core and @product teams.
We welcome contributions from the broader community! If you would like to contribute to OpenFGA, take a look at the CONTRIBUTING.md guide.
If you have any questions, feedback, or ideas for OpenFGA, we would love to hear from you. Here are a few ways you can get in touch:
- Join the OpenFGA Community in the CNCF Slack or GitHub Discussions.
- Reach out to us on Twitter
- Send an email to [email protected]