Skip to content

openfga/language

OpenFGA Language

ANTLR Grammar for the OpenFGA DSL and parser from and to the OpenFGA JSON Syntax

@openfga/syntax-transformer on npm GitHub Release openfga-language on Maven Central

License FOSSA Status Join our community Twitter

Table of Contents

About

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.

Resources

Packages

Packages Package Manager Docs
JS @openfga/syntax-transformer on npm README
Go GitHub Release README
Java openfga-language on Maven Central README

About This Repo

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)

CLI

Use the FGA CLI

Community Parsers

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+) npm:@openfga/syntax-transformer - GitHub release (latest SemVer)
openfga-dsl-parser Apache-2.0 @maxmindlin - @dblclik Rust Yes No crates:openfga-dsl-parserpypi:openfga-dsl-parser-python 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 GitHub release (latest SemVer)

Community Wrapper

Repo License Maintainers Language Schema v1.0 Schema v1.1 Package Managers Other Links
fga cli Apache-2.0 @openfga Go No Yes GitHub release (latest SemVer)
fga-transformer-cli MIT @ozee-io Javascript Yes Yes npm:@openfga/syntax-transformer

Contributing

See CONTRIBUTING.

Author

OpenFGA

License

This project is licensed under the Apache-2.0 license. See the LICENSE file for more info.