openfga
27
总安装量
18
周安装量
#7505
全站排名
安装命令
npx skills add https://github.com/openfga/agent-skills --skill openfga
Agent 安装分布
opencode
17
github-copilot
16
codex
15
gemini-cli
14
claude-code
12
amp
11
Skill 文档
OpenFGA Best Practices
Comprehensive guide for authoring OpenFGA authorization models and using OpenFGA SDKs, maintained for AI agents and developers. Contains rules across 7 categories covering core concepts, relationship patterns, testing, custom roles, model optimization, and language-specific SDK usage.
When to Apply
Reference these guidelines when:
- Creating new OpenFGA authorization models
- Defining types and relations in
.fgafiles - Writing relationship tuples
- Testing models with
.fga.yamlfiles - Implementing custom roles
- Reviewing or refactoring existing models
- Integrating OpenFGA with JavaScript/TypeScript, Go, Python, Java, or .NET applications
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Core Concepts | CRITICAL | core- |
| 2 | Relationship Definitions | CRITICAL | relation- |
| 3 | Testing & Validation | HIGH | test- |
| 4 | Model Design | HIGH | design- |
| 5 | Custom Roles | MEDIUM | roles- |
| 6 | Optimization | MEDIUM | optimize- |
| 7 | SDK Integration | HIGH | sdk- |
| 8 | Workflow | CRITICAL | workflow- |
Quick Reference
1. Core Concepts (CRITICAL)
core-types– Define types for all entity classescore-schema-version– Always use schema 1.1core-relations– Define relations on object types, not user typescore-tuples– Write relationship tuples to establish factscore-separation– Separate schema (model) from data (tuples)
2. Relationship Definitions (CRITICAL)
relation-direct– Use[type]for direct assignmentsrelation-concentric– Useorfor permission inheritancerelation-indirect– UseX from Yfor hierarchical accessrelation-usersets– Usetype#relationfor group-based accessrelation-conditions– Use CEL conditions for contextual authorizationrelation-wildcards– Usetype:*for public access carefullyrelation-wildcards-as-booleans– To usetype:*to model boolan attributes
3. Model Design (HIGH)
design-permissions– Definecan_*relations for permissionsdesign-hierarchy– Model parent-child relationships correctlydesign-organization– Structure organization-level accessdesign-naming– Use clear, consistent naming conventionsdesign-modules– Split a model in modules for collaboration among multiple teams.
4. Testing & Validation (HIGH)
test-fga-yaml– Structure tests in.fga.yamlfilestest-check-assertions– Write check assertions for permission verificationtest-list-objects– Test list_objects queriestest-list-users– Test list_users queriestest-conditions– Test conditional relationships with contexttest-cli– Use OpenFGA CLI for model testing
5. Custom Roles (MEDIUM)
roles-simple– Implement simple user-defined rolesroles-assignments– Use role assignments for resource-specific rolesroles-static-combo– Combine static and custom rolesroles-when-to-use– Choose the right role pattern
6. Optimization (MEDIUM)
optimize-simplify– Remove unused types and relationsoptimize-tuples– Use indirect relationships to reduce tuple countoptimize-type-restrictions– Apply appropriate type restrictions
7. SDK Integration (HIGH)
sdk-javascript– JavaScript/TypeScript SDK usagesdk-go– Go SDK usagesdk-python– Python SDK usage (async and sync)sdk-java– Java SDK usagesdk-dotnet– .NET SDK usage
8. Workflow (CRITICAL)
workflow-validate– Always validate models before delivery
How to Use
Read individual rule files for detailed explanations and code examples:
rules/core-types.md
rules/relation-concentric.md
rules/test-fga-yaml.md
Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and references
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md