Skip to content

dev.openfga.openfga-language v0.2.0-beta.1

Install 1/2: Add this to pom.xml:
Learn more about Maven or Gradle
<dependency>
  <groupId>dev.openfga</groupId>
  <artifactId>openfga-language</artifactId>
  <version>v0.2.0-beta.1</version>
</dependency>
Install 2/2: Run via command line
$ mvn install

About this package

OpenFGA Language

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

Go Reference
Release
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
JS @openfga/syntax-transformer on npm
Go OpenFGA Language (Go) on GitHub
Java openfga-language on Maven Central

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)

Installation

Go

go get github.com/openfga/language/pkg/go

Node

npm install @openfga/syntax-transformer

Java

From dev.openfga/openfga-language on MavenCentral

Usage

Transformer

Go

import "github.com/openfga/language/pkg/go/transformer"

dslString := `model
  schema 1.1
type user
type folder
  relations
    define viewer: [user]`

// Transform from DSL to a JSON string
generatedJsonString, err := transformer.TransformDSLToJSONString(dslString)

// Transform from a JSON string to DSL
generatedDsl, err := transformer.TransformJSONStringToDSL(generatedJsonString)

Node

import { transformer } from "@openfga/syntax-transformer"

let dslString = `model
  schema 1.1
type user
type folder
  relations
    define viewer: [user]`;

// Transform from DSL to a JSON string
const generatedJsonString = transformer.transformDSLToJSONString(dslString)

// Transform from a JSON string to DSL
const generatedDsl = transformer.transformJSONStringToDSL(generatedJsonString)

Java

import dev.openfga.language.DslToJsonTransformer;
import dev.openfga.language.JsonToDslTransformer;

var dslString = """model
  schema 1.1
type user
type folder
  relations
    define viewer: [user]""";

// Transform from DSL to a JSON string
var generatedJsonString = new DslToJsonTransformer().transform(dslString);

// Transform from a JSON string to DSL
var generatedDsl = new JsonToDslTransformer().transform(generatedJsonString);

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.

Details

  • @openfga openfga
  • June 14, 2024
  • 4 dependencies
  • Apache License 2.0

Download activity

  • Total downloads 0
  • Last 30 days 0
  • Last week 0
  • Today 0


Recent versions