Skip to content

Commit e71772b

Browse files
authored
Merge branch 'main' into feat/adoption-patterns
2 parents ddfc282 + 298e4d2 commit e71772b

File tree

8 files changed

+85
-6
lines changed

8 files changed

+85
-6
lines changed

blog/fine-grained-news-2025-02.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: Fine Grained News - February 2025
3+
description: Fine Grained News
4+
slug: fine-grained-news-2025-02
5+
date: 2025-02-26
6+
authors: aaguiar
7+
tags: [newsletter]
8+
image: https://openfga.dev/img/og-rich-embed.png
9+
hide_table_of_contents: false
10+
---
11+
# Fine Grained News - February 2025
12+
13+
Welcome to the second Fine Grained News edition of 2025!
14+
15+
## Just Shipped!
16+
17+
- We shipped 3 minor versions of OpenFGA which include:
18+
- Fixes for [CVE-2025-25196](https://github.com/openfga/openfga/security/advisories/GHSA-g4v5-6f5p-m38j) and [CVE-2024-56323](https://github.com/openfga/openfga/security/advisories/GHSA-32q6-rr98-cjqv)
19+
- Several performance improvements that are enabled with the `enable-check-optimizations` experimental flag.
20+
- Dynamic TLS certificate reloading for HTTP and gRPC servers. Thanks [Rokibul Hasan](https://github.com/RokibulHasan7) for your contribution!
21+
- A `name` filter to ListStores. The name parameter instructs the API to only include results that match that name. Thanks [Karl Persson](https://github.com/kalleep) for your contribution!
22+
- Optimized database dialect handling by setting it during initialization instead of per-call, fixing SQL syntax errors in MySQL. Thanks [Siddhant Khare](https://github.com/Siddhant-K-code) for your contribution!
23+
24+
- Support for Go 1.24. We follow Go's version support policy and will only support the latest two major versions of Go. Now that Go 1.24 is out, we have dropped support for Go < 1.23.
25+
26+
- Two minor versions of the [Java SDK](https://github.com/openfga/java-sdk), with support for server-side [BatchCheck](https://github.com/openfga/js-sdk?tab=readme-ov-file#batch-check). Thanks [Piotr Olaszewski](https://github.com/piotrooo) for your contribution!
27+
28+
- A minor release of the [Go SDK](https://github.com/openfga/go-sdk), with support for the `StartTime` parameter in the [ReadChanges method](https://github.com/openfga/go-sdk?tab=readme-ov-file#read-relationship-tuple-changes-watch) and support for specifying contextual tuples and context parameters in assertions.
29+
30+
- A minor release of the [FGA CLI](https://github.com/openfga/cli), with support for the `start-time` parameter for the `changes` command and importing assertions during `fga store import`. Thanks [Sujitha A V](https://github.com/sujitha-av) for your contribution!
31+
32+
## Using OpenFGA for GenAI and Retrieval Augmented Generation (RAG)
33+
34+
We are seeing a lot of interest in using OpenFGA for RAG scenarios and we wanted to share a list of interesting articles and repositories that were published lately:
35+
36+
- [RAG and Access Control: Where Do You Start?](https://auth0.com/blog/rag-and-access-control-where-do-you-start/)
37+
- [Building a Secure RAG with Python, LangChain, and OpenFGA](https://auth0.com/blog/building-a-secure-rag-with-python-langchain-and-openfga/)
38+
- [GenAI, LangChain.js, and FGA](https://auth0.com/blog/genai-langchain-js-fga/)
39+
- [Building a Permissions System For Your RAG Application](https://www.useparagon.com/learn/ai-knowledge-chatbot-with-permissions-chapter-2/)
40+
- [mdb-openfga: OpenFGA + MongoDB](https://github.com/ranfysvalle02/mdb-openfga)
41+
42+
## Learning OpenFGA
43+
44+
We've been busy creating blog posts and videos that help you adopt OpenFGA, check them out!
45+
46+
- [OpenFGA: Modeling Guide](https://www.youtube.com/watch?v=5Lwy9aHXXHE&list=PLUR5l-oTFZqWaDdhEOVt_IfPOIbKo1Ypt)
47+
- [OpenFGA: The Basics](https://www.youtube.com/watch?v=v1Io8TtB4bg&list=PLUR5l-oTFZqXGikFJolWJfP7zDK4GRYJ6)
48+
- [OpenFGA for Python Flask Applications](https://auth0.com/blog/fine-grained-access-control-with-python-flask/)
49+
- [How to Implement Relationship-Based Access Control (ReBAC) in a Ruby On Rails API?](https://auth0.com/blog/what-is-rebac-and-how-to-implement-rails-api/)
50+
- [Securing data in your Next.js app with Okta and OpenFGA](https://vercel.com/blog/securing-data-in-your-next-js-app-with-okta-and-openfga)
51+
- [OpenFGA for an Express + Typescript Node.js API](https://auth0.com/blog/express-typescript-fga/)
52+
- [OpenFGA for Spring Boot Applications](https://auth0.com/blog/add-fga-to-spring-boot-api-with-openfga/)
53+
54+
55+
## OpenFGA to CNCF Incubation
56+
57+
The [CNCF Technical Oversight Committee](https://www.cncf.io/people/technical-oversight-committee/) triaged OpenFGA's application to be accepted as an "Incubation" project, decided we had provided the appropriate information and references, and [moved the project to the next step](https://github.com/orgs/cncf/projects/27/views/9). We now need to wait for a TOC member to pick the project and do their due diligence.
58+
59+
Thanks to Canonical, Grafana, Docker, Read.AI, Agicap, Sourcegraph, Zuplo, and Stacklok for agreeing to be interviewed by the CNCF as reference adopters!
60+
61+
## OpenFGA in London
62+
63+
OpenFGA will be present in two high-profile events in London:
64+
65+
<!-- markdown-link-check-disable -->
66+
- [Sam Bellen](https://www.linkedin.com/in/sambellen/) will participate in the [Gartner IAM EMEA event](https://www.gartner.com/en/conferences/emea/identity-access-management-uk) demoing [OpenFGA interoperability with the AuthZen standard](https://openid.net/authzen-at-gartner-iam/).
67+
<!-- markdown-link-check-enable -->
68+
69+
- [Poovamraj Thanganadar Thiagarajan](https://www.linkedin.com/in/poovamraj/) from Okta will be presenting at KubeCon Europe, together with [Jo Guerreiro](https://www.linkedin.com/in/jmlguerreiro/) from Grafana Labs about [From Chaos To Control: Migrating Access Control To OpenFGA in a Multi-Tenant World](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).
70+
71+
- [Andres Aguiar](https://www.linkedin.com/in/aaguiar/) from Okta was invited to present on the Maintainer's Summit at KubeCon Europe about our experiences collaborating with the CNCF TAG-Security team: [A Project Maintainers Guide To TAG Security](https://maintainersummiteu2025.sched.com/event/1tj8v/a-project-maintainers-guide-to-tag-security-marina-moore-edera-andres-aguiar-okta).
72+
73+
## **See You Next Month:**
74+
75+
Fine Grained News is published every month. If you have any feedback, want to share your OpenFGA story, or have a noteworthy update, please let us know on any of our [community channels](https://openfga.dev/community) or at [community@openfga.dev](mailto:community@openfga.dev).
76+
77+

docs/content/getting-started/setup-openfga/access-control.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@ type module # required
106106

107107
By default, the API will use the following claims (in order) in the OIDC token to identify the client. If you want to use a different claim, you can set the environment variable `OPENFGA_AUTHN_OIDC_CLIENT_ID_CLAIMS` to the claim(s) you want to use.
108108

109+
<!-- markdown-link-check-disable -->
109110
If the claims are not set in the configuration, the following claims are used as default (in order):
110111
1. `azp`: following [the OpenID standard](https://openid.net/specs/openid-connect-core-1_0.html#IDToken)
111112
2. `client_id` following [RFC9068](https://www.rfc-editor.org/rfc/rfc9068.html#name-data-structure)
113+
<!-- markdown-link-check-enable -->
112114

113115
That means that if the `azp` claim is present in the token, it will be used to identify the client. If not, the `client_id` claim will be used instead.
114116

src/components/Docs/SnippetViewer/BatchCheckRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const body = {
4141
user: '${check.user}',
4242
relation: '${check.relation}',
4343
object: '${check.object}',
44-
correlation_id: '${check.correlation_id}'${
44+
correlationId: '${check.correlation_id}'${
4545
check.contextualTuples
4646
? `,
4747
contextual_tuples: [

src/components/Docs/SnippetViewer/CheckRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const { allowed } = await fgaClient.check({
7373
contextualTuples: [\n ${contextualTuples.map((tuple) => `${JSON.stringify(tuple)}`).join(',')}
7474
],`
7575
}${!context ? `\n }` : `\n context: ${JSON.stringify(context)}\n }`}, {
76-
authorization_model_id: '${modelId}',
76+
authorizationModelId: '${modelId}',
7777
});
7878
7979
// allowed = ${allowed}`;

src/components/Docs/SnippetViewer/ExpandRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const { tree } = await fgaClient.expand({
3232
relation: '${opts.relation}', // expand all who has '${opts.relation}' relation
3333
object: '${opts.object}', // with the object '${opts.object}'
3434
}, {
35-
authorization_model_id: '${modelId}'
35+
authorizationModelId: '${modelId}'
3636
});
3737
3838
// tree = ...`;

src/components/Docs/SnippetViewer/ListObjectsRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ function listObjectsRequestViewer(lang: SupportedLanguage, opts: ListObjectsRequ
9393
: ''
9494
}
9595
}, {
96-
authorization_model_id: "${modelId}",
96+
authorizationModelId: "${modelId}",
9797
});
9898
// response.objects = [${expectedResults.map((r) => `"${r}"`).join(', ')}]`;
9999
case SupportedLanguage.GO_SDK:

src/components/Docs/SnippetViewer/ListUsersRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ function listUsersRequestViewer(lang: SupportedLanguage, opts: ListUsersRequestV
128128
: ''
129129
}
130130
}, {
131-
authorization_model_id: "${modelId}",
131+
authorizationModelId: "${modelId}",
132132
});
133133
// response.users = [${expectedResults.users.map((u) => JSON.stringify(u)).join(',')}]`;
134134
case SupportedLanguage.GO_SDK:

src/components/Docs/SnippetViewer/WriteRequestViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ ${
103103
await fgaClient.write({
104104
${opts.relationshipTuples ? writes : ''}${separator}${opts.deleteRelationshipTuples ? deletes : ''},
105105
}, {
106-
authorization_model_id: "${modelId}"
106+
authorizationModelId: "${modelId}"
107107
});`;
108108
}
109109

0 commit comments

Comments
 (0)