Skip to content

Commit 1fad21e

Browse files
authored
Merge branch 'main' into patch-2
2 parents 7e10b3e + a029558 commit 1fad21e

File tree

9 files changed

+510
-23
lines changed

9 files changed

+510
-23
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ jobs:
3535
run: npm run build
3636
env:
3737
HUBSPOT_TRACKING_ID: ${{ secrets.HUBSPOT_TRACKING_ID }}
38+
KAPA_WEBSITE_ID: ${{ secrets.KAPA_WEBSITE_ID }}
3839

3940
# Popular action to deploy to GitHub Pages:
4041
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus

.github/workflows/preview.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
BASE_URL: /pr-preview/pr-${{ github.event.number }}
4444

4545
- name: Deploy preview
46-
uses: rossjrw/pr-preview-action@3e4ed158ecbf7f58513abc0dc15a4ad3b0e18ee5
46+
uses: rossjrw/pr-preview-action@5fd5f8e2f88e735fc3d1151302b32242037e3962
4747
id: preview-step
4848
with:
4949
source-dir: ./build/

blog/authors.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ eharris:
77
name: Ewan Harris
88
url: https://github.com/ewanharris
99
image_url: /img/blog/authors/ewan.jpg
10+
jakub:
11+
name: Jakub Hertyk
12+
url: https://github.com/curfew-marathon
13+
image_url: /img/blog/authors/jakub.jpg
1014
miparnisari:
1115
name: Maria Ines Parnisari
1216
url: https://github.com/miparnisari

blog/incubation-announcement.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
title: OpenFGA Accepted into CNCF Incubation 🎉
3+
description: OpenFGA has been accepted into the Cloud Native Computing Foundation Incubation stage
4+
slug: incubation-announcement
5+
date: 2026-01-07
6+
authors: [aaguiar, jakub]
7+
tags: [announcement]
8+
image: /img/og-rich-embed.png
9+
hide_table_of_contents: false
10+
---
11+
# OpenFGA Accepted into CNCF Incubation 🎉
12+
13+
OpenFGA has been accepted as a CNCF **Incubation** project! The Cloud Native Computing Foundation (CNCF) Technical Oversight Committee (TOC) [voted to advance OpenFGA](https://github.com/cncf/toc/issues/1287#issuecomment-3458442973) from Sandbox to Incubation status, recognizing years of community work and real-world adoption. This places OpenFGA on the same maturity path as other CNCF projects like OpenTelemetry, Keycloak, Artifact Hub, and Backstage. Learn more at the CNCF joint announcement: [OpenFGA becomes a CNCF Incubating Project](https://www.cncf.io/blog/2025/11/11/openfga-becomes-a-cncf-incubating-project/).
14+
15+
## Why Incubation Matters
16+
17+
Incubation signals that OpenFGA is production-ready with a healthy, diverse contributor base and real-world adoption at scale. For organizations evaluating OpenFGA, this milestone validates the project's maturity, governance, and long-term sustainability. The CNCF due diligence process assessed our security posture, documentation, community health, and adoption metrics—all meeting the standards required for broad enterprise use.
18+
19+
Learn more about [CNCF project stages](https://www.cncf.io/projects/) and review our [due diligence documentation](https://github.com/cncf/toc/blob/main/projects/openfga/openfga-incubation-dd.md).
20+
21+
## Technical Maturity Since Sandbox
22+
23+
Since joining CNCF as a Sandbox project in December 2022, OpenFGA has evolved significantly:
24+
25+
- **Performance improvements**: Substantial optimizations in query execution and caching, enabling sub-millisecond authorization checks at scale
26+
- **Enhanced capabilities**: Introduction of conditional tuples, modular models, and list users functionality to support more complex authorization scenarios
27+
- **Expanded ecosystem**: New SDKs, database adapters (including SQLite), Terraform provider, and IDE plugins
28+
- **Production hardening**: Improved observability, configuration options, and operational tooling based on real-world deployment feedback
29+
- **Security posture**: Comprehensive security assessments, vulnerability management processes, and regular dependency updates
30+
31+
These improvements reflect our commitment to building a reliable, performant authorization system ready for enterprise production use.
32+
33+
## How We Got Here
34+
35+
OpenFGA was open sourced in June 2022 and accepted as a CNCF Sandbox project in December 2022. Since then, we've seen incredible community support:
36+
37+
- Regular community meetings since 2022, available on [our YouTube channel](https://www.youtube.com/@OpenFGA), along with more than 40 presentations from community members.
38+
- Contributions from the community—whether through questions, feedback, feature requests, PRs, bug reports, or guides and tools built around OpenFGA.
39+
- [Grafana Labs](https://grafana.com/) joined the maintainer team.
40+
- 600+ contributors across the OpenFGA organization.
41+
- 5,000+ GitHub stars across our repositories.
42+
- Presence at six consecutive KubeCon conferences (US and EU) with breakout sessions and a kiosk.
43+
- Production adopters include [Canonical](https://canonical.com/), [Docker](https://www.docker.com), [Grafana Labs](https://grafana.com), [Read AI](https://read.ai/), [Agicap](https://agicap.com), [Headspace](https://headspace.com), [Zuplo](https://zuplo.com), [Sourcegraph](https://sourcegraph.com/), [OpenObserve](https://openobserve.ai/) and [LakeKeeper](https://lakekeeper.io/) along with [many others](https://github.com/openfga/community/blob/main/ADOPTERS.md).
44+
- Several adopters [went on the record](https://github.com/cncf/toc/tree/main/projects/openfga) in interviews with CNCF around their OpenFGA experience through the due diligence project.
45+
46+
## Thank You
47+
48+
OpenFGA's success is the result of contributions from many individuals and organizations. We want to highlight a few who made significant impact:
49+
50+
### Community Contributors
51+
52+
- [Massimiliano Gori](https://www.linkedin.com/in/massi-gori) believed in OpenFGA early and led integration across Canonical.
53+
- [Pauline Jamin](https://www.linkedin.com/in/paulinejamin) spearheaded adoption at [Agicap](https://agicap.com) and presented their learnings at [KubeCon Europe 2024](https://colocatedeventseu2024.sched.com/event/1YFhM/implementing-modern-cloud-native-authorization-using-openfga-andres-aguiar-okta-pauline-jamin-agicap).
54+
- [JT aka Hawxy](https://github.com/Hawxy) has been maintaining [Fga.net](https://github.com/Hawxy/Fga.Net) for years, and has been graciously providing us feedback since.
55+
- [Andrew Powers](https://www.linkedin.com/in/andrew-powers-geo) led [Read AI](https://www.read.ai/) implementation supporting collaboration and RAG for enterprise search.
56+
- [Joao Guerreiro](https://www.linkedin.com/in/joguer) led the implementation at [Grafana](https://grafana.com/) and presented their journey at [KubeCon Europe 2025](https://kccnceu2025.sched.com/event/1txIJ/from-chaos-to-control-migrating-access-control-to-openfga-in-a-multi-tenant-world-jo-guerreiro-grafana-labs-poovamraj-thanganadar-thiagarajan-okta).
57+
- [Dan Cech](https://www.linkedin.com/in/dancech) from [Grafana](https://grafana.com/) contributed the SQLite adapter and serves as a maintainer.
58+
- [Nathan Totten](https://www.linkedin.com/in/nathantotten) led [Zuplo](https://zuplo.com/) integration, implementing [authorization at the edge](https://zuplo.com/examples/openfga) for the API gateway.
59+
- [Gurleen Sethi](https://www.linkedin.com/in/gurleensethi) led the implementation of organization and team management at [Docker, Inc](https://www.docker.com/).
60+
- [Siddhant Khare](https://github.com/Siddhant-K-code) was the first independent contributor who onboarded as a maintainer of the OpenFGA project.
61+
- [Maurice Ackel](https://github.com/mauriceackel) donated the [OpenFGA Terraform Provider](https://registry.terraform.io/providers/openfga/openfga/latest/docs), and joined as a maintainer.
62+
- [Yann D'Isanto](https://www.linkedin.com/in/yann-d-19851110) from [Agicap](https://agicap.com), who contributed the JetBrains IDE plugin.
63+
- [Martin Besozzi](https://www.linkedin.com/in/embesozzi) has been involved in the OpenFGA community from the beginning, driving integrations with [Keycloak](https://www.keycloak.org/).
64+
65+
### CNCF Support
66+
67+
- [Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk) helped guide the project donation and acceptance.
68+
- [Eddie Knight](https://www.linkedin.com/in/knight1776), [Evan Anderson](https://www.linkedin.com/in/evankanderson), [Marina Moore](https://www.linkedin.com/in/marina-moore-5a7242105) and [Justin Cappos](https://github.com/JustinCappos) from [CNCF TAG Security](https://tag-security.cncf.io/) supported the self-assessment and helped strengthen our posture for due diligence.
69+
- [Karena Angell](https://www.linkedin.com/in/karenaangell) and [Faseela K](https://www.linkedin.com/in/faseela-k-42178528) helped us navigate the due diligence process and carried much of the heavy lift to make it happen.
70+
71+
## What's Next
72+
73+
Incubation is a milestone, not a destination. Our focus continues on:
74+
75+
- **Performance**: Optimizing latency and throughput for large-scale deployments
76+
- **Developer Experience**: Enhanced tooling, IDE plugins, and debugging capabilities
77+
- **Integrations**: Expanding our ecosystem with more identity providers, frameworks, and platforms
78+
- **Documentation**: Comprehensive guides, tutorials, and real-world implementation patterns
79+
- **Governance**: Strengthening our contributor pathways and security practices
80+
81+
Our next milestone: CNCF Graduation. Track our progress on the [project roadmap](https://github.com/orgs/openfga/projects/1).
82+
83+
## Get Involved
84+
85+
This achievement belongs to every contributor, user, and community member who has supported OpenFGA. Thank you for being part of our journey!
86+
87+
**New to OpenFGA?** Start here:
88+
- [Try OpenFGA locally](https://openfga.dev/docs/getting-started) and explore the documentation
89+
- [Join our CNCF Slack community](https://openfga.dev/community) to ask questions and connect with users
90+
91+
**Already using OpenFGA?**
92+
- [Star the repo](https://github.com/openfga/openfga) and follow development
93+
- Share your adoption story—add your organization to our [ADOPTERS.md](https://github.com/openfga/community/blob/main/ADOPTERS.md)
94+
- Check out the [roadmap](https://github.com/orgs/openfga/projects/1) and contribute to upcoming features
95+
96+

docusaurus.config.js

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ const config = {
6060
: 'https://raw.githubusercontent.com/openfga/api/main/docs/openapiv2/apidocs.swagger.json',
6161

6262
// Customization for product information
63-
6463
description: `OpenFGA is an open source Fine-Grained Authorization solution based on Google's Zanzibar.`,
6564
productName: `OpenFGA`,
6665
// link to product description section (relative to baseURL)
@@ -115,18 +114,17 @@ import dev.openfga.sdk.api.configuration.ClientConfiguration;`,
115114
block-all-mixed-content;
116115
worker-src 'self';
117116
child-src www.youtube-nocookie.com;
118-
prefetch-src 'self';
119-
connect-src 'self' https://raw.githubusercontent.com https://s3.amazonaws.com https://cdn.cookielaw.org https://privacyportal.onetrust.com https://heapanalytics.com https://js.hs-scripts.com https://api.github.com https://js.hscollectedforms.net https://js.hs-analytics.net https://js.hs-banner.com https://forms.hscollectedforms.net ;
117+
connect-src 'self' https://raw.githubusercontent.com https://s3.amazonaws.com https://cdn.cookielaw.org https://privacyportal.onetrust.com https://heapanalytics.com https://js.hs-scripts.com https://api.github.com https://js.hscollectedforms.net https://js.hs-analytics.net https://js.hs-banner.com https://forms.hscollectedforms.net https://proxy.kapa.ai https://kapa-widget-proxy-la7dkmplpq-uc.a.run.app https://metrics.kapa.ai https://www.google.com/recaptcha/ https://hcaptcha.com https://*.hcaptcha.com ;
120118
font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com;
121119
form-action 'none';
122-
frame-src www.youtube-nocookie.com;
123-
img-src 'self' data: https://pbs.twimg.com https://docs.github.com https://heapanalytics.com https://forms.hsforms.com https://track.hubspot.com ;
120+
frame-src www.youtube-nocookie.com https://www.google.com https://hcaptcha.com https://*.hcaptcha.com;
121+
img-src 'self' data: https://openfga.dev https://pbs.twimg.com https://docs.github.com https://heapanalytics.com https://forms.hsforms.com https://track.hubspot.com ;
124122
media-src 'self';
125123
object-src 'none';
126124
script-src 'self' ${
127125
process.env.NODE_ENV === 'development' ? `'unsafe-eval'` : ``
128-
} 'unsafe-inline' https://cdn.cookielaw.org https://geolocation.onetrust.com https://cdn.heapanalytics.com https://js.hs-scripts.com https://api.github.com https://js.hscollectedforms.net https://js.hs-analytics.net https://js.hs-banner.com;
129-
style-src 'unsafe-inline' 'self' https://fonts.googleapis.com;`,
126+
} 'unsafe-inline' https://cdn.cookielaw.org https://geolocation.onetrust.com https://cdn.heapanalytics.com https://js.hs-scripts.com https://api.github.com https://js.hscollectedforms.net https://js.hs-analytics.net https://js.hs-banner.com https://widget.kapa.ai https://www.google.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://hcaptcha.com https://*.hcaptcha.com;
127+
style-src 'unsafe-inline' 'self' https://fonts.googleapis.com https://hcaptcha.com https://*.hcaptcha.com;`,
130128
},
131129

132130
themes: [
@@ -272,6 +270,12 @@ import dev.openfga.sdk.api.configuration.ClientConfiguration;`,
272270
className: 'header-social header-slack-link',
273271
'aria-label': 'OpenFGA on Slack',
274272
},
273+
{
274+
type: 'html',
275+
position: 'right',
276+
className: 'ask-ai-nav-item',
277+
value: '<button class="ask-ai-button ask-ai-nav-button" aria-label="Ask AI">Ask AI</button>',
278+
},
275279
],
276280
},
277281
footer: {
@@ -318,19 +322,37 @@ import dev.openfga.sdk.api.configuration.ClientConfiguration;`,
318322
},
319323
},
320324
}),
325+
326+
scripts: [],
321327
};
322328

329+
// Kapa.ai website widget - KAPA_WEBSITE_ID can be provided via environment variable
330+
if (process.env.KAPA_WEBSITE_ID) {
331+
config.scripts = config.scripts || [];
332+
config.scripts.push({
333+
src: "https://widget.kapa.ai/kapa-widget.bundle.js",
334+
"data-website-id": process.env.KAPA_WEBSITE_ID,
335+
"data-project-name": "OpenFGA",
336+
"data-project-color": "#79ED83",
337+
"data-project-logo": "https://openfga.dev/img/openfga_logo.svg",
338+
"data-button-hide": "true",
339+
"data-modal-override-open-selector": ".ask-ai-button",
340+
"data-modal-open-on-command-k": "true",
341+
async: true,
342+
});
343+
}
344+
323345
if (process.env.HUBSPOT_TRACKING_ID) {
324-
config.scripts = [
325-
{
326-
src: `https://js.hs-scripts.com/${process.env.HUBSPOT_TRACKING_ID}.js`,
327-
type: "text/javascript",
328-
charset: "UTF-8",
329-
id: "hs-script-loader",
330-
async: true,
331-
defer: true,
332-
},
333-
];
346+
// Ensure config.scripts exists and append the HubSpot loader instead of replacing the whole scripts array.
347+
config.scripts = config.scripts || [];
348+
config.scripts.push({
349+
src: `https://js.hs-scripts.com/${process.env.HUBSPOT_TRACKING_ID}.js`,
350+
type: "text/javascript",
351+
charset: "UTF-8",
352+
id: "hs-script-loader",
353+
async: true,
354+
defer: true,
355+
});
334356
}
335357

336358
module.exports = config;

0 commit comments

Comments
 (0)