# OpenFGA Documentation ## Project Overview OpenFGA (Fine-Grained Authorization) is an open source authorization system based on Google's Zanzibar. It's a Cloud Native Computing Foundation (CNCF) project that provides scalable, fine-grained authorization for applications using Relationship-Based Access Control (ReBAC). ## Key Information - **Website**: https://openfga.dev - **Main Repository**: https://github.com/openfga/openfga - **Documentation Repository**: https://github.com/openfga/openfga.dev - **License**: Apache-2.0 - **Technology Stack**: Go, Docusaurus, React, TypeScript, JavaScript - **Purpose**: Documentation website for OpenFGA authorization system ## Core Concepts OpenFGA implements authorization through: 1. **Authorization Models** - Define relationships between users and resources 2. **Relationship Tuples** - Store actual relationships (user:relation:object) 3. **Configuration Language** - DSL for defining authorization models 4. **Stores** - Isolated authorization environments 5. **Conditional Tuples** - Attribute-based access control capabilities ## Complete Documentation Structure #### Introduction to Auth0 FGA - [What is Auth0 FGA](https://docs.fga.dev/about-auth0-fga) - [What's New](https://docs.fga.dev/whats-new) - [Getting Started Guide](https://docs.fga.dev/getting-started/new-getting-started) - [Authorization Concepts](https://docs.fga.dev/authorization-concepts) - [FGA Concepts](https://docs.fga.dev/fga-concepts) - [FGA Playground](https://docs.fga.dev/intro/playground) - [Subscription Plans](https://docs.fga.dev/subscription-plans) - [Support](https://docs.fga.dev/support) - [Private Cloud](https://docs.fga.dev/auth0-fga-private-cloud) - [FGA Logging](https://docs.fga.dev/fga-logging) - [Auth0 FGA vs OpenFGA](https://docs.fga.dev/auth0-fga-vs-openfga) #### Permissions Index - [What Is A Permissions Index](https://docs.fga.dev/permissions-index/fga-permissions-index) - [Getting Started](https://docs.fga.dev/permissions-index/getting-started) - [Best Practices](https://docs.fga.dev/permissions-index/best-practices) - [Terminology](https://docs.fga.dev/permissions-index/terminology) #### FGA Dashboard - [FGA Dashboard Overview](https://docs.fga.dev/dashboard/overview) - [Account Overview](https://docs.fga.dev/dashboard/account) - [Manage Members](https://docs.fga.dev/dashboard/members) - [Manage Groups](https://docs.fga.dev/dashboard/groups) - [Roles and Permissions](https://docs.fga.dev/dashboard/roles) - [Manage Stores](https://docs.fga.dev/dashboard/stores) - [Manage Models](https://docs.fga.dev/dashboard/models) - [Manage Tuples](https://docs.fga.dev/dashboard/add-tuples) - [Run Queries](https://docs.fga.dev/dashboard/run-queries) - [Developer Mode](https://docs.fga.dev/dashboard/developer-mode) - [Manage Credentials](https://docs.fga.dev/dashboard/credentials) - [View Metrics](https://docs.fga.dev/dashboard/metrics) - [Enable Single Sign-On](https://docs.fga.dev/enable-sso) #### Define your authorization model - [Overview](https://docs.fga.dev/modeling/overview-auth0) - [Get Started With Modeling](https://docs.fga.dev/modeling/getting-started) - [Configuration Language](https://docs.fga.dev/configuration-language) - [Immutable Authorization Models](https://docs.fga.dev/modeling/immutable-models) - [Modeling Basics](https://docs.fga.dev/modeling/direct-access) - [Modeling User Groups](https://docs.fga.dev/modeling/user-groups) - [Modeling Roles and Permissions](https://docs.fga.dev/modeling/roles-and-permissions) - [Modeling Parent-Child Objects](https://docs.fga.dev/modeling/parent-child) - [Modeling Blocklists](https://docs.fga.dev/modeling/blocklists) - [Modeling Public Access](https://docs.fga.dev/modeling/public-access) - [Modeling with Multiple Restrictions](https://docs.fga.dev/modeling/multiple-restrictions) - [Modeling Custom Roles](https://docs.fga.dev/modeling/custom-roles) - [Conditions](https://docs.fga.dev/modeling/conditions) - [Token claims as Contextual Tuples](https://docs.fga.dev/modeling/token-claims-contextual-tuples) - [Contextual and Time-Based Authorization](https://docs.fga.dev/modeling/contextual-time-based-authorization) - [Authorization Through Organization Context](https://docs.fga.dev/modeling/organization-context-authorization) - [Testing Models](https://docs.fga.dev/modeling/testing-models) - [Store File Format](https://docs.fga.dev/modeling/store-file-format) - [Modular Models](https://docs.fga.dev/modeling/modular-models) #### Modeling Concepts - [Direct Relationships](https://docs.fga.dev/modeling/building-blocks/direct-relationships) - [Concentric Relationships](https://docs.fga.dev/modeling/building-blocks/concentric-relationships) - [Object to Object Relationships](https://docs.fga.dev/modeling/building-blocks/object-to-object-relationships) - [Usersets](https://docs.fga.dev/modeling/building-blocks/usersets) #### Migrating - [Migrating Relations](https://docs.fga.dev/modeling/migrating/migrating-relations) - [Migrating Models](https://docs.fga.dev/modeling/migrating/migrating-models) #### Write Your Authorization Data - [Overview](https://docs.fga.dev/interacting/overview-auth0) - [Manage User Access](https://docs.fga.dev/interacting/managing-user-access) - [Manage Group Access](https://docs.fga.dev/interacting/managing-group-access) - [Manage Group Membership](https://docs.fga.dev/interacting/managing-group-membership) - [Manage Relationships Between Objects](https://docs.fga.dev/interacting/managing-relationships-between-objects) - [Transactional Writes](https://docs.fga.dev/interacting/transactional-writes) - [Consistency Modes](https://docs.fga.dev/interacting/consistency) #### Advanced - [Check, Read and Expand](https://docs.fga.dev/interacting/relationship-queries) #### Add Authorization To Your API - [Overview](https://docs.fga.dev/getting-started/overview-auth0) - [How to obtain your API keys](https://docs.fga.dev/getting-started/getting-your-api-keys) - [How to install the SDK](https://docs.fga.dev/getting-started/install-sdk) - [How to Setup the SDK Client](https://docs.fga.dev/getting-started/setup-sdk-client) - [How to update relationship tuples](https://docs.fga.dev/getting-started/update-tuples) - [How to perform a check](https://docs.fga.dev/getting-started/perform-check) - [How to perform a list objects request](https://docs.fga.dev/getting-started/perform-list-objects) - [How to perform a list users request](https://docs.fga.dev/getting-started/perform-list-users) - [How to use the FGA CLI](https://docs.fga.dev/getting-started/cli) - [How to integrate within a framework](https://docs.fga.dev/getting-started/framework) #### Advanced - [How to get tuple changes](https://docs.fga.dev/interacting/read-tuple-changes) - [Search with permissions](https://docs.fga.dev/interacting/search-with-permissions) - [Configure SDK Client Telemetry](https://docs.fga.dev/getting-started/configure-telemetry) #### Best Practices - [Testing Latency and Throughput](https://docs.fga.dev/best-practices/testing-latency-throughput) - [Adoption Patterns](https://docs.fga.dev/best-practices/adoption-patterns) - [Authorization Model Design Principles](https://docs.fga.dev/best-practices/modeling-design-principles) - [Modeling Roles](https://docs.fga.dev/best-practices/modeling-roles) - [Modeling ABAC](https://docs.fga.dev/best-practices/modeling-abac) - [Managing Tuples and Invoking APIs](https://docs.fga.dev/getting-started/tuples-api-best-practices) - [Source of Truth](https://docs.fga.dev/best-practices/source-of-truth) #### Authorization for Agents - [Overview](https://docs.fga.dev/modeling/agents/overview) - Authorization for Agents overview - [Modeling Agents as Principals](https://docs.fga.dev/modeling/agents/agents-as-principals) - [RAG Authorization](https://docs.fga.dev/modeling/agents/rag-authorization) - [Authorization for MCP Servers](https://docs.fga.dev/modeling/agents/mcp-authorization) - [Task-Based Authorization](https://docs.fga.dev/modeling/agents/task-based-authorization) #### Advanced Modeling - [Overview](https://docs.fga.dev/modeling/advanced/overview) #### Modeling samples - [Modeling Google Drive](https://docs.fga.dev/modeling/advanced/gdrive) - [Modeling GitHub](https://docs.fga.dev/modeling/advanced/github) - [Modeling Slack](https://docs.fga.dev/modeling/advanced/slack) - [Modeling for IoT](https://docs.fga.dev/modeling/advanced/iot) #### Modeling patterns - [Entitlements](https://docs.fga.dev/modeling/advanced/entitlements) #### Deprecation Notices & Migrations - [API Token Issuer Migration](https://docs.fga.dev/migration-instructions) ## Supported Features - Multiple database backends (PostgreSQL, MySQL, SQLite) - HTTP and gRPC APIs - SDKs for multiple languages (JavaScript, Go, .NET, Java, Python) - Command Line Interface (CLI) - Visual Studio Code extension - Kubernetes deployment via Helm charts - OpenTelemetry integration - GitHub Actions for testing and deployment ## Key Use Cases OpenFGA is suitable for implementing: - Role-Based Access Control (RBAC) - Attribute-Based Access Control (ABAC) - Resource-level permissions - Multi-tenant authorization - Complex organizational hierarchies - Fine-grained API access control ## Community OpenFGA welcomes community contributions and is part of the CNCF ecosystem. The project provides comprehensive documentation for developers looking to implement fine-grained authorization in their applications.