Grammar for the OpenFGA modeling language
35
stars
937
commits
Go
primary language
Sep 10, 2026
updated
ANTLR Grammar for the OpenFGA DSL and parser from and to the OpenFGA JSON Syntax
OpenFGA is an open source Fine-Grained Authorization solution inspired by Google's Zanzibar paper. It was created by the FGA team at Auth0 based on Auth0 Fine-Grained Authorization (FGA), available under a permissive license (Apache-2) and welcomes community contributions.
OpenFGA is designed to make it easy for application builders to model their permission layer, and to add and integrate fine-grained authorization into their applications. OpenFGA’s design is optimized for reliability and low latency at a high scale.
This repo contains everything needed to interact with the OpenFGA Authorization Models schema versions 1.1+, in multiple languages (currently, Go and JS are supported).
| Feature | Implemented in ANTLR |
|---|---|
| Basic DSL | ✅ |
| Nesting | ✅ (partial, see #113) |
| Conditions | ✅ |
| Feature | Go | JS | Java |
|---|---|---|---|
| Transformer from the DSL to JSON and from JSON to DSL | ✅ | ✅ | ✅ |
| Syntactic Model Validations | ✅ | ✅ | ✅ |
| Schema 1.0 | ❌ | ❌ (supported in v0.1.6 and below) | ❌ |
| Schema 1.1 | ✅ | ✅ (supported in v0.2.0 and above) | ✅ |
| Schema 1.2 (Modular Models) | ✅ | ✅ | ✅ |
| Semantic Model Validations | ❌ (planned, see #99) | ✅ | ✅ |
| Graphing & Utility Methods | ❌ (planned) | ❌ (planned) | ❌ (planned) |
Use the FGA CLI
| Repo | License | Maintainers | Language | Schema v1.0 | Schema v1.1 | Package Managers | Other Links |
|---|---|---|---|---|---|---|---|
| openfga language (syntax-transformer) | Apache-2.0 | @openfga | ANTLR (Go and Typescript implementations) | <0.1.5 | Yes (v0.0.8+) | ||
| openfga-dsl-parser | Apache-2.0 | @maxmindlin - @dblclik | Rust | Yes | No | WASM - Python | |
| openfga-rs | Apache-2.0 | @iammathew | Rust | Yes | No | ||
| openfga-dsl-parser | Apache-2.0 | @craigpastro | ANTLR & Go | Yes | Partial (requires self). Supports nesting |
| Repo | License | Maintainers | Language | Schema v1.0 | Schema v1.1 | Package Managers | Other Links |
|---|---|---|---|---|---|---|---|
| fga cli | Apache-2.0 | @openfga | Go | No | Yes | ||
| fga-transformer-cli | MIT | @ozee-io | Javascript | Yes | Yes |
See CONTRIBUTING.
This project is licensed under the Apache-2.0 license. See the LICENSE file for more info.
Go
45.5%
Java
33.3%
TypeScript
19.5%
Grammar for the OpenFGA modeling language
35
stars
937
commits
Go
primary language
Sep 10, 2026
updated
ANTLR Grammar for the OpenFGA DSL and parser from and to the OpenFGA JSON Syntax
OpenFGA is an open source Fine-Grained Authorization solution inspired by Google's Zanzibar paper. It was created by the FGA team at Auth0 based on Auth0 Fine-Grained Authorization (FGA), available under a permissive license (Apache-2) and welcomes community contributions.
OpenFGA is designed to make it easy for application builders to model their permission layer, and to add and integrate fine-grained authorization into their applications. OpenFGA’s design is optimized for reliability and low latency at a high scale.
This repo contains everything needed to interact with the OpenFGA Authorization Models schema versions 1.1+, in multiple languages (currently, Go and JS are supported).
| Feature | Implemented in ANTLR |
|---|---|
| Basic DSL | ✅ |
| Nesting | ✅ (partial, see #113) |
| Conditions | ✅ |
| Feature | Go | JS | Java |
|---|---|---|---|
| Transformer from the DSL to JSON and from JSON to DSL | ✅ | ✅ | ✅ |
| Syntactic Model Validations | ✅ | ✅ | ✅ |
| Schema 1.0 | ❌ | ❌ (supported in v0.1.6 and below) | ❌ |
| Schema 1.1 | ✅ | ✅ (supported in v0.2.0 and above) | ✅ |
| Schema 1.2 (Modular Models) | ✅ | ✅ | ✅ |
| Semantic Model Validations | ❌ (planned, see #99) | ✅ | ✅ |
| Graphing & Utility Methods | ❌ (planned) | ❌ (planned) | ❌ (planned) |
Use the FGA CLI
| Repo | License | Maintainers | Language | Schema v1.0 | Schema v1.1 | Package Managers | Other Links |
|---|---|---|---|---|---|---|---|
| openfga language (syntax-transformer) | Apache-2.0 | @openfga | ANTLR (Go and Typescript implementations) | <0.1.5 | Yes (v0.0.8+) | ||
| openfga-dsl-parser | Apache-2.0 | @maxmindlin - @dblclik | Rust | Yes | No | WASM - Python | |
| openfga-rs | Apache-2.0 | @iammathew | Rust | Yes | No | ||
| openfga-dsl-parser | Apache-2.0 | @craigpastro | ANTLR & Go | Yes | Partial (requires self). Supports nesting |
| Repo | License | Maintainers | Language | Schema v1.0 | Schema v1.1 | Package Managers | Other Links |
|---|---|---|---|---|---|---|---|
| fga cli | Apache-2.0 | @openfga | Go | No | Yes | ||
| fga-transformer-cli | MIT | @ozee-io | Javascript | Yes | Yes |
See CONTRIBUTING.
This project is licensed under the Apache-2.0 license. See the LICENSE file for more info.
Go
45.5%
Java
33.3%
TypeScript
19.5%