PageSourceSearch

https://openfga.dev/assets/js/bdbc42f7.4d98ed57.js

js openfga.dev collected 2026-10-02 03:03:15 UTC 15,260 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkopenfga_dev=globalThis.webpackChunkopenfga_dev||[]).push([[795],{7341(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var i=t(1308),s=t(4848),r=t(8453);const a={title:"Fine Grained News - September 2025",description:"Fine Grained News",slug:"fine-grained-news-2025-09",date:new Date("2025-09-05T00:00:00.000Z"),last_update:{date:"2025-09-05"},authors:"aaguiar",tags:["newsletter"],image:"https://openfga.dev/img/og-rich-embed.png",hide_table_of_contents:!1},o="Fine Grained News - September 2025",l={authorsImageUrls:[void 0]},h=[{value:"What have we been up to",id:"what-have-we-been-up-to",level:2},{value:"OpenFGA Performance",id:"openfga-performance",level:3},{value:"Improved Write API",id:"improved-write-api",level:3},{value:"Terraform Provider",id:"terraform-provider",level:3},{value:"SDKs and Tooling",id:"sdks-and-tooling",level:3},{value:"New OpenFGA Adopters",id:"new-openfga-adopters",level:2},{value:"OpenFGA Security Posture",id:"openfga-security-posture",level:2},{value:"OpenFGA to CNCF Incubation!",id:"openfga-to-cncf-incubation",level:2},{value:"Upcoming Events: KubeCon North America &amp; All Things Open",id:"upcoming-events-kubecon-north-america--all-things-open",level:2},{value:"<strong>See you soon!</strong>",id:"see-you-soon",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"After a long hiatus, we are back with Fine Grained News! The best way to keep up to date with the OpenFGA community!"}),"\n",(0,s.jsxs)(n.p,{children:["First of all, we want to thank the OpenFGA community for helping the ",(0,s.jsx)(n.a,{href:"https://github.com/openfga/",children:"OpenFGA Repository"})," get beyond 4k stars!"]}),"\n",(0,s.jsx)(n.h2,{id:"what-have-we-been-up-to",children:"What have we been up to"}),"\n",(0,s.jsx)(n.h3,{id:"openfga-performance",children:"OpenFGA Performance"}),"\n",(0,s.jsx)(n.p,{children:"The OpenFGA team has been mostly focused on performance improvements, and we are close to finishing a big roun
1d of improvements."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"/check"})," endpoint is now ",(0,s.jsx)(n.strong,{children:"up to 10x faster"})," in some scenarios."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"/list-objects"})," endpoint is ",(0,s.jsx)(n.strong,{children:"up to 5x faster"})," in some scenarios (the enhancements are still behind an experimental flag)."]}),"\n",(0,s.jsx)(n.li,{children:"The caching implementation has a more sophisticated eviction mechanism that allows OpenFGA to cache entries for a longer time."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"improved-write-api",children:"Improved Write API"}),"\n",(0,s.jsxs)(n.p,{children:["OpenFGA v1.10 adds additional parameters to the ",(0,s.jsx)(n.a,{href:"https://openfga.dev/docs/api/service/relationship-tuples/add-or-delete-tuples-from-the-store",children:(0,s.jsx)(n.code,{children:"/write"})})," endpoint that allow specifying the behavior when duplicated tuples are written or non-existing tuples are deleted. This was a much requested feature - we're looking forward for your feedback on it!"]}),"\n",(0,s.jsx)(n.p,{children:"The SDKs and the CLI will add support for these options over the coming month."}),"\n",(0,s.jsx)(n.h3,{id:"terraform-provider",children:"Terraform Provider"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/maurice-ackel/",children:"Maurice Ackel"})," contributed the official ",(0,s.jsx)(n.a,{href:"https://github.com/openfga/terraform-provider-openfga",children:"OpenFGA Terraform Provider"}),". Take a look at it, and let Maurice know if you are using it!"]}),"\n",(0,s.jsx)(n.h3,{id:"sdks-and-tooling",children:"SDKs and Tooling"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"We shipped several improvements across all SDKs:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Improved how the SDKs retry when getting 429 errors"}),"\n",(0,s.jsx)(n.li,{children:"BatchCheck support (.NET coming soon!)"}),"\n",(0,s.jsx)(n.li,{children:".NET Standard 2.0 support for .NET is in Alpha, and will be released soon."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"The CLI has several improvements:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Supports running tests using glob patterns (",(0,s.jsx)(n.code,{children:"fga model test --tests *.yaml"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Supports ",(0,s.jsx)(n.code,{children:"jsonl"})," format for tuples"]}),"\n",(0,s.jsx)(n.li,{children:"Allows specifying multiple tuple files in store tests"}),"\n",(0,s.jsx)(n.li,{children:"Enables grouping users/objects in store tests, avoiding duplication:"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"    - object: group:employees\n      users:\n        - user:1\n        - user:2\n      assertions:\n        member: true\n\n    - objects:\n        - group:admins\n        - group:employees\n      user: user:1\n      assertions:\n          member: true\n\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["OpenFGA includes now a ",(0,s.jsx)(n.a,{href:"https://marketplace.visualstudio.com/items?itemName=humao.rest-client",children:"REST Client"})," ",(0,s.jsx)(n.a,{href:"https://github.com/openfga/openfga/tree/main/docs/http",children:"HTTP file"})," to make it simple to use the OpenFGA API."]}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["We've been playing with an OpenFGA MCP to help with modeling. You can add the MCP by pointing your MCP client (e.g., VS Code) to ",(0,s.jsx)(n.a,{href:"https://mcp.openfga.dev/mcp",children:"https://mcp.openfga.dev/mcp"}),". You can find the code ",(0,s.jsx)(n.a,{href:"https://github.com/aaguiarz/openfga-modeling-mcp",children:"here"}),", or see it in action ",(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=JNBtf-1NrPM",children:"here"}),". It's pretty awesome! :)"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"new-openfga-adopters",children:"New OpenFGA Adopters"}),"\n",(0,s.jsx)(n.p,{children:"The list of companies/projects keeps increasing! These adopters were added since the last edition of Fine Grained News:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.headspace.com/join-us",children:"Headspace"}),": Headspace uses OpenFGA to manage entitlements for its users based on their subscriptions. OpenFGA is also used to determine availability of features and content based on regionality and language."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.earthscope.org/",children:"EarthScope Consortium"}),": EarthScope Consortium supports transformative global geophysical research and education. They leverage OpenFGA to authorize researcher access to hundreds of thousands of data streams from geophysical sensors located all over the world."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://linuxcontainers.org/incus/",children:"Incus"}),": The Incus project uses OpenFGA as its primary authorization mechanism for fine grained access control to all its resources."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://virv.ai",children:"virv.ai"}),": virv.ai uses OpenFGA as the core authorization model that enables individuals, agents and organizations to access artifacts such as data, credentials, and documents. OpenFGA allows us to meet the needs of the AI-enabled Enterprise where trust is essential."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://x-hr.co",children:"X-HR LABS"}),": X-HR is a modern HR tech platform that empowers businesses with full freedom to use and grow on their own terms. They leverage OpenFGA to implement robust, relationship-based access control across company data and organizational structures."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://appscode.com",children:"AppsCode"}),": AppsCode uses OpenFGA to implement authorization functionality for their AppsCode Container Engine (ACE) Platform."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://grafana.com/",children:"Grafana Labs"}),": Grafana user authorization and Role Based Access Control (RBAC) are migrating to OpenFGA."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can also learn how OpenFGA powers ",(0,s.jsx)(n.a,{href:"https://neonephos.org/",children:"NeoNephos"}),", a new Linux Foundation project that's dedicated to advancing open source projects that align with the strategic objectives of the EU's IPCEI-CIS, in ",(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=vpDGQgCaLt8",children:"this Open Source Summit"})," presentation by ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/bastianechterhoelter/",children:"Bastian Echterh\xf6lter"})," & ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/aaron-schweig-471707199/",children:"Aaron Schweig"})," from SAP."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"https://www.linuxfoundation.org/",children:"Linux Foundation"})," is using OpenFGA for their new platform. You can see their OpenFGA authorization model ",(0,s.jsx)(n.a,{href:"https://github.com/linuxfoundation/lfx-v2-helm/blob/f40018f3031ad106f52cfb29b3f9103821ad63b5/charts/lfx-platform/templates/openfga/model.y
1aml#L25",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://www.nagarro.com/",children:"Nagarro"})," published ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/posts/nagarro_schneider-success-story-activity-7366395183585763329-up7m/",children:"a case study"})," detailing how they helped ",(0,s.jsx)(n.a,{href:"https://www.se.com/",children:"Schneider Electric"})," with an OpenFGA implementation."]}),"\n",(0,s.jsx)(n.h2,{id:"openfga-security-posture",children:"OpenFGA Security Posture"}),"\n",(0,s.jsxs)(n.p,{children:["All OpenFGA repositories now have a ",(0,s.jsx)(n.a,{href:"https://github.com/openfga/openfga/blob/main/.github/SECURITY-INSIGHTS.yml",children:"Security Insights file"})," and are integrated with ",(0,s.jsx)(n.a,{href:"https://securityscorecards.dev/viewer/?uri=github.com/openfga/openfga",children:"OpenSSF Scorecard"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["OpenFGA is also included in the ",(0,s.jsx)(n.a,{href:"https://insights.linuxfoundation.org/project/openfga",children:"LFX Insights website"}),", scoring an ",(0,s.jsx)(n.strong,{children:"Excellent"})," score."]}),"\n",(0,s.jsx)(n.h2,{id:"openfga-to-cncf-incubation",children:"OpenFGA to CNCF Incubation!"}),"\n",(0,s.jsxs)(n.p,{children:["We are going through the due diligence process to be approved for the CNCF Incubation stage with the ",(0,s.jsx)(n.a,{href:"https://www.cncf.io/people/technical-oversight-committee/",children:"CNCF Technical Oversight Committee"}),". They are currently interviewing OpenFGA adopters. Thanks to Canonical, Grafana, Docker, Read.AI, Agicap, Sourcegraph, Zuplo, and Custodian for agreeing to be interviewed by the CNCF!"]}),"\n",(0,s.jsx)(n.h2,{id:"upcoming-events-kubecon-north-america--all-things-open",children:"Upcoming Events: KubeCon North America & All Things Open"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/sambellen/",children:"Sam Bellen"})," will be presenting at ",(0,s.jsx)(n.a,{href:"https://2025.allthingsopen.org/",children:"All Things Open"})," about the ",(0,s.jsx)(n.a,{href:"https://2025.allthingsopen.org/sessions/paradigm-shift",children:"Paradigm Shift"})," that ReBAC and the Zanzibar approach brought to the industry"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/joseapadilla/",children:"Jose Padilla"})," from Okta will be presenting at KubeCon North America, together with ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/alicejgibbons/",children:"Alice Gibbons"})," from Diagrid about ",(0,s.jsx)(n.a,{href:"https://kccncna2025.sched.com/event/27Fek",children:"Design Patterns for Consistent Centralized Authorization"})]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://kccncna2025.sched.com/speaker/siddhant_khare.28kd1xzv",children:"Siddhant Khare"}),", an OpenFGA maintainer from Gitpod, will host the OpenFGA Project Lightning talk ",(0,s.jsx)(n.a,{href:"https://kccncna2025.sched.com/event/27d4i",children:"OpenFGA: Google Zanzibar Style Authorization Made Developer-Friendly"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["OpenFGA will also have a kiosk at the KubeCon Project Pavilion. ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/tyler-nix/",children:"Tyler Nix"})," and ",(0,s.jsx)(n.a,{href:"https://www.linkedin.com/in/joseapadilla/",children:"Jos\xe9 Padilla"})," will be there!"]}),"\n",(0,s.jsx)(n.h2,{id:"see-you-soon",children:(0,s.jsx)(n.strong,{children:"See you soon!"})}),"\n",(0,s.jsxs)(n.p,{children:["Fine Grained News used to be published every month, and we plan to go back to our monthly cadence! :) If you have any feedback, want to share your OpenFGA story, or have a noteworthy update, please let us know on any of our ",(0,s.jsx)(n.a,{href:"https://openfga.dev/community",children:"community channels"})," or at ",(0,s.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,t){t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},1308(e){e.exports=JSON.parse('{"permalink":"/blog/fine-grained-news-2025-09","source":"@site/blog/fine-grained-news-2025-09.md","title":"Fine Grained News - September 2025","description":"Fine Grained News","date":"2025-09-05T00:00:00.000Z","tags":[{"inline":true,"label":"newsletter","permalink":"/blog/tags/newsletter"}],"readingTime":5.43,"hasTruncateMarker":true,"authors":[{"name":"Andres Aguiar","title":"Product Manager","url":"https://github.com/aaguiarz","imageURL":"/img/blog/authors/andres.jpg","key":"aaguiar","page":null}],"frontMatter":{"title":"Fine Grained News - September 2025","description":"Fine Grained News","slug":"fine-grained-news-2025-09","date":"2025-09-05T00:00:00.000Z","last_update":{"date":"2025-09-05"},"authors":"aaguiar","tags":["newsletter"],"image":"https://openfga.dev/img/og-rich-embed.png","hide_table_of_contents":false},"unlisted":false,"prevItem":{"title":"Fine-Grained News - October 2025","permalink":"/blog/fine-grained-news-2025-10"},"nextItem":{"title":"Fine-Grained News - February 2025","permalink":"/blog/fine-grained-news-2025-02"}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.