AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Openfga

skill-openfga-agent-skills-openfga · by openfga

OpenFGA authorization modeling best practices for defining types and relations, writing relationship tuples, deriving can_* permissions, applying type restrictions and usersets, and authoring .fga.yaml check/list_objects/list_users tests. Use when authoring, reviewing, or refactoring OpenFGA models, tuples, permissions, .fga files, .fga.yaml test files, or OpenFGA SDK integrations in JavaScript,…

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add skill-openfga-agent-skills-openfga

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-openfga-agent-skills-openfga)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Openfga? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

OpenFGA Best Practices

Use this skill to design and review OpenFGA models end to end: define types and relations, write tuples, derive can_* permissions, choose usersets and inheritance patterns, and validate behavior with .fga.yaml tests and CLI checks.

Quick Start Example

Minimal model:

model
  schema 1.1

type user

type organization
  relations
    define admin: [user]
    define member: [user] or admin

type document
  relations
    define organization: [organization]
    define owner: [user]
    define can_edit: owner or admin from organization
    define can_view: can_edit or member from organization

Example tuples:

organization:acme#admin@user:alice
document:roadmap#organization@organization:acme
document:roadmap#owner@user:bob

Example test targets:

  • check that user:alice can view and edit document:roadmap
  • check that user:bob can edit their own document
  • list_users for document:roadmap#can_view
  • list_objects for documents user:alice can edit

How to Use

When a workflow step points to a rule ID, open the matching file in references/ for detailed guidance and examples.

Note: SDK references (sdk-*.md) are only needed for integration tasks — skip them during pure model authoring and testing.

Rule Index

Core

| File | Description | |------|-------------| | references/core-types.md | Define types for entity classes | | references/core-relations.md | Relations belong on object types | | references/core-tuples.md | Relationship tuples as facts | | references/core-separation.md | Model vs data separation | | references/core-schema-version.md | Schema version |

Relations

| File | Description | |------|-------------| | references/relation-direct.md | Direct relationships | | references/relation-indirect.md | Indirect relationships with X from Y | | references/relation-concentric.md | Concentric relationships | | references/relation-usersets.md | Usersets for group-based access | | references/relation-conditions.md | Conditional relationships | | references/relation-wildcards.md | Wildcards for public access | | references/relation-wildcards-as-booleans.md | Wildcards for boolean attributes |

Design

| File | Description | |------|-------------| | references/design-permissions.md | Define permissions with can_ relations | | references/design-hierarchy.md | Hierarchical structures | | references/design-organization.md | Organization-level access | | references/design-create-on-parent.md | Check create permissions on parent objects | | references/design-naming.md | Naming conventions | | references/design-modules.md | Modularize models (only when asked) |

Roles

| File | Description | |------|-------------| | references/roles-simple.md | Simple static roles | | references/roles-static-combo.md | Combining static and custom roles | | references/roles-assignments.md | Role assignments for resource-specific roles | | references/roles-when-to-use.md | When to use each role pattern |

Optimization

| File | Description | |------|-------------| | references/optimize-simplify.md | Simplify models | | references/optimize-tuples.md | Minimize tuple count | | references/optimize-type-restrictions.md | Type restrictions |

Testing

| File | Description | |------|-------------| | references/test-fga-yaml.md | Structure tests in .fga.yaml | | references/test-check-assertions.md | Check assertions | | references/test-list-objects.md | List objects tests | | references/test-list-users.md | List users tests | | references/test-conditions.md | Testing conditions | | references/test-cli.md | OpenFGA CLI usage | | references/workflow-validate.md | Always validate models |

SDKs (for integration tasks only)

| File | Description | |------|-------------| | references/sdk-javascript.md | JavaScript/TypeScript SDK | | references/sdk-go.md | Go SDK | | references/sdk-python.md | Python SDK | | references/sdk-java.md | Java SDK | | references/sdk-dotnet.md | .NET SDK |

Recommended Workflow

  1. Model the resource graph.

Define types, direct relations, inheritance edges, and can_* permissions. Rules to check first: core-*, relation-*, design-permissions, design-hierarchy.

  1. Add tuples and test intent.

Add representative tuples and cover expected behavior with check, list_objects, and list_users tests. Rules to check next: core-tuples, test-fga-yaml, test-check-assertions, test-list-objects, test-list-users.

  1. Review parent-child creation and deletion paths.

Verify each parent -> child edge has create permissions on the parent and that no child permission is directly grantable unless intended. Rules to check: design-create-on-parent, relation-direct, design-permissions.

  1. Simplify before removing schema.

Before deleting any type or relation, confirm it is not referenced by permissions, tuples, or tests. If a simplification breaks a reference: restore the relation or update the model/tests, then re-run this step. Rules to check: optimize-simplify, optimize-tuples, optimize-type-restrictions.

  1. Validate the model.

Run:

fga model validate --file stores//model.fga

If validation fails: read the reported relation or type errors, fix the model, and re-run validation before continuing.

  1. Run the store tests.

Run:

fga model test --tests stores//store.fga.yaml

If tests fail: update tuples, assertions, or permission definitions, then re-run tests until all checks and list queries pass.

  1. Only then finalize delivery.

For touched stores, finish only after validation and tests are green. Final rule to check: workflow-validate.

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.