Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Incubation] OpenFGA Incubation Application #1287

Open
32 of 42 tasks
tylernix opened this issue Apr 2, 2024 · 1 comment
Open
32 of 42 tasks

[Incubation] OpenFGA Incubation Application #1287

tylernix opened this issue Apr 2, 2024 · 1 comment

Comments

@tylernix
Copy link

tylernix commented Apr 2, 2024

OpenFGA Incubation Application

v1.5

Project Repo(s): https://github.com/openfga
Project Site: https://openfga.dev/
Communication: https://cloud-native.slack.com/archives/C06G1NNH47N

Project points of contacts:

Incubation Criteria Summary for OpenFGA

Adoption Assertion

The project has been adopted by the following organizations in a testing and integration or production capacity:

Application Process Principles

Suggested

N/A

Required

  • Give a presentation and engage with the domain specific TAG(s) to increase awareness

  • TAG provides insight/recommendation of the project in the context of the landscape

  • All project metadata and resources are vendor-neutral.

  • Communication - OpenFGA manages our own communications channels like websites, blogs, social media accounts, and Slack.

  • Hosting - OpenFGA holds community meetings, events, resources, and infrastructure on vender-neutral, 3rd-party resources.

  • Architectural decisions - Decisions on OpenFGA's roadmap and direction are facilitated by the opportunity for contributors and adopters to receive consensus on their features, PRs, etc. that promotes shared benefits for all contributing organizations.

  • Governance - OpenFGA is self-governing, which follows the CNFC Code of Conduct, a documented governance model, and clearly defined roles and responsibilities for project leadership.

  • Review and acknowledgment of expectations for Sandbox projects and requirements for moving forward through the CNCF Maturity levels.

  • Met during OpenFGA's application on 2024-03-15.

  • Due Diligence Review.

Completion of this due diligence document, resolution of concerns raised, and presented for public comment satisfies the Due Diligence Review criteria.

Governance and Maintainers

Note: this section may be augmented by the completion of a Governance Review from TAG Contributor Strategy.

Suggested

  • Clear and discoverable project governance documentation.

  • GOVERNANCE.md

  • Governance has continuously been iterated upon by the project as a result of their experience applying it, with the governance history demonstrating evolution of maturity alongside the project's maturity evolution.

  • Governance is up to date with actual project activities, including any meetings, elections, leadership, or approval processes.

  • Governance clearly documents vendor-neutrality of project direction.

  • Document how the project makes decisions on leadership, contribution acceptance, requests to the CNCF, and changes to governance or project goals.

  • Document how role, function-based members, or sub-teams are assigned, onboarded, and removed for specific teams (example: Security Response Committee).

  • Document a complete maintainer lifecycle process (including roles, onboarding, offboarding, and emeritus status).

  • Demonstrate usage of the maintainer lifecycle with outcomes, either through the addition or replacement of maintainers as project events have required.

Required

  • Document complete list of current maintainers, including names, contact information, domain of responsibility, and affiliation.

  • OpenFGA has 20 active maintainers.

  • A number of active maintainers which is appropriate to the size and scope of the project.

  • Code and Doc ownership in Github and elsewhere matches documented governance roles.

  • Document agreement that project will adopt CNCF Code of Conduct.

  • CNCF Code of Conduct is cross-linked from other governance documents.

  • https://github.com/openfga/.github/blob/main/CODE_OF_CONDUCT.md

Contributors and Community

Note: this section may be augmented by the completion of a Governance Review from TAG Contributor Strategy.

Suggested

Required

Engineering Principles

Suggested

  • Roadmap change process is documented.

  • OpenFGA follows an RFC (Request for Comments) process for substantial changes to the project or roadmap

  • History of regular, quality releases.

Detailed statistics can be found in the following openfga.devstats.cncf.io links:

Required

  • Document project goals and objectives that illustrate the project’s differentiation in the Cloud Native landscape as well as outlines how this project fulfills an outstanding need and/or solves a problem differently.

As the world continues to move to a more digital, collaborative ecosystem of applications with ever-increasing objects, developers are scrambling to keep up and evolve their authorization systems to be more relationship-focused. But authorization is difficult to get right. OWASP's Top 10 security risks include 3 on Authorization, with the top vulnerability being Broken Object Level Authorization.

Just like Open Policy Agent for cloud infrastructure, application developers want a cloud-native option to add fine grained access control to their application logic without recreating a new solution every time they need to protect a new object type. Centralizing authorization enables application developers to build against a single predictable pattern regardless of their authorization needs. This approach to authorization will continue to serve them regardless of scale or pivoting through a digital transformation journey.

A list of CNCF projects that target solving access control in different ways can be found at openfga/community/related-projects.md.

  • Document what the project does, and why it does it - including viable cloud native use cases.

OpenFGA is a high-performance and flexible authorization solution that allows developers to build fine-grained access control using an easy-to-read modeling language and friendly APIs.

Inspired by Google Zanzibar, OpenFGA is a centralized authorization engine that evaluates decisions by determining whether a relationship exists between an object and a user. Each check request references the authorization model against the known object relationships and returns an authorization decision (i.e. true or false).

  • Model any authorization system - OpenFGA is inspired by the Google Zanzibar paper for Relationship-Based Access Control, and also solves problems for Role-based Access Control and some Attribute-Based Access Control use cases. The modeling language is powerful enough for engineers to create complex relationships but friendly enough for other stakeholders on the team to read and understand.

  • Blazing fast - OpenFGA is designed to answer authorization check calls in milliseconds across billions of relationships, which lets it scale with projects of any size. It works just as well for small startups building single applications as it does for enterprise companies building platforms on a global scale.

  • Works with existing code - SDKs for several of the most popular languages have already been written, making it easy to integrate and grow alongside your applications.

  • Document and maintain a public roadmap or other forward looking planning document or tracking mechanism.

  • OpenFGA Roadmap

  • Document overview of project architecture and software design that demonstrates viable cloud native use cases, as part of the project's documentation.

  • TODO

  • Document the project's release process.

  • TODO

Security

Note: this section may be augmented by a joint-assessment performed by TAG Security.

Suggested

N/A

Required

Ecosystem

Suggested

N/A

Required

  • Publicly documented list of adopters, which may indicate their adoption level (dev/trialing, prod, etc.)

  • A list of OpenFGA adopters can be found at openfga/community/ADOPTERS.md, plus many more that haven’t been disclosed.

  • Used in appropriate capacity by at least 3 independent indirect/direct adopters, (these are not required to be in the publicly documented list of adopters)

Three production examples to highlight:

  1. Canonical
    They are embedding OpenFGA into several different layers of their Ubuntu Pro stack.
  • LXD - a container and virtual machine manager
  • MicroCloud - a deployment center for computing clusters with shared distributed data storage and a secure virtual network
  • JAAS - a managed Juju orchestration engine as a service
  1. Stacklok
    Stacklok recently revamped their authorization model and engine in Minder, an open source software supply chain security platform. They switched from a database-backed authorization implementation using Open Policy Agent to a multi-tenant, relationship-based authorization model using OpenFGA.

  2. Configu
    Configu is an open source software for streamlining, testing, and automating application configurations across environments. They specifically picked OpenFGA because it was a CNCF backed third-party authorization system that allows them to build upon battle-tested authorization standards saving them valuable implementation time not recreating the wheel for a problem that has already been solved for developers.

  3. Docker
    Docker is using it for handling authorization for Docker Hub.

  • TOC verification of adopters.

The project provided the TOC with a list of adopters for verification of use of the project at the level expected, i.e. production use for graduation, dev/test for incubation.

Refer to the Adoption portion of this document.

Additional Information

@eddie-knight
Copy link
Contributor

OpenFGA Presented to TAG Security on August 14th, and a recommendation consensus was formed at that time:

No security concerns were raised by the STAG during the presentation. The project's security hygiene appears to meet or exceed the requirements of an Incubating project.

cncf/tag-security#1339

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: New
Development

No branches or pull requests

3 participants