Skip to main content
You can use the Permify Playground to create and test your authorization schema directly in a browser, with no local setup required. It lets you explore authorization models, add sample data, and run access check scenarios before writing a single line of application code. The playground has three main sections:

Schema

Define your entities, relations, and permissions using Permify’s authorization language.

Authorization Data

Add sample relational tuples to simulate real-world authorization state.

Enforcement

Write YAML test scenarios and run access checks against your schema and data.

How to use the playground

1

Open the Playground

Navigate to play.permify.co. The playground loads with a default example schema so you can explore immediately without any configuration.
2

Define your schema

Write or modify your authorization model in the Schema section using Permify’s domain-specific language. You can define entities, relations between them, and permission rules.The default schema models a GitHub-like repository structure:
entity user {}

entity organization {

    // organizational roles
    relation admin @user
    relation member @user
}

entity repository {

    // represents repositories parent organization
    relation parent @organization

    // represents owner of this repository
    relation owner  @user

    // permissions
    permission edit   = parent.admin or owner
    permission delete = owner
}
This model defines two permissions on repository: edit (allowed for organization admins or the repository owner) and delete (allowed only for the owner). The parent relation connects a repository to its owning organization.
Schema changes are captured automatically and the other sections update accordingly. Some delays may occur at times.
3

Visualize your permission graph

The Visualizer renders your authorization structure as a graph. Use it to inspect relations between entities and verify that your permission rules connect the way you expect — without needing to run any queries.Permify schema visualizer showing entity relations
4

Add authorization data

In the Authorization Data section, create sample relational tuples to represent the state of your system. Tuples follow the format:
entity # relation @ subject
For example, to make user:1 an admin in organization:1:
organization:1#admin@user:1
And to associate repository:1 with organization:1 as its parent:
repository:1#parent@organization:1
Click Add Relationship in the playground to fill in the entity, relation, and subject fields interactively.
5

Run access check scenarios

The Enforcement section accepts a YAML scenario that defines the resources, subjects, and expected outcomes for your access checks.The following scenario tests whether user:1 (an admin of organization:1) can edit and delete repository:1:
schema: >
  entity user {}

  entity organization {
      relation admin @user
      relation member @user
  }

  entity repository {
      relation parent @organization
      relation owner  @user

      permission edit   = parent.admin or owner
      permission delete = owner
  }
relationships:
  - organization:1#admin@user:1
  - repository:1#parent@organization:1
scenarios:
  - name: admin_access_test
    description: Check repository access for an organization admin
    checks:
      - entity: repository:1
        subject: user:1
        assertions:
          edit: true
          delete: false
entity — the resource being accessed (repository:1)subject — the actor performing the action (user:1)assertions — the expected result for each permission being testedSince organization:1 is the parent of repository:1 and user:1 is an admin of organization:1, the edit permission resolves to true (via parent.admin). Only owners can delete, so delete resolves to false.Click Run to execute the scenario. The playground reports whether each assertion passed or failed.
For more complex scenarios, refer to the Creating Test Scenarios section in the Testing and Validation page.

VS Code extension

If you prefer to develop your authorization schema locally, the Permify VS Code extension adds syntax highlighting and IntelliSense for .perm schema files. It brings the same schema editing experience to your local development environment.

Need any help?

Our team is happy to help you get started with Permify. If you’d like to learn more about using Permify in your app or have any questions, schedule a consultation call with one of our account executives.

Build docs developers (and LLMs) love