https://github.com/permify/permify-validate-action
GitHub Action for validation your Permify schema (Authorization Model)
https://github.com/permify/permify-validate-action
access-control fga github-actions permify zanzibar
Last synced: 2 months ago
JSON representation
GitHub Action for validation your Permify schema (Authorization Model)
- Host: GitHub
- URL: https://github.com/permify/permify-validate-action
- Owner: Permify
- License: apache-2.0
- Created: 2022-12-06T15:04:47.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-16T12:39:03.000Z (12 months ago)
- Last Synced: 2025-04-25T18:55:36.619Z (2 months ago)
- Topics: access-control, fga, github-actions, permify, zanzibar
- Language: Dockerfile
- Homepage: https://docs.permify.co/
- Size: 37.1 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Permify Schema Validate GitHub Action
![]()
This repository runs the `permify validate` command on the given schema (authorization model) and relationships (sample authorization data) and assertions (sample check queries and results).
You can find detailed information on this repository in
the [Testing & Validation](https://docs.permify.co/docs/getting-started/testing) part of our documentation.#### Example Schema Validation YAML File
```yaml
schema: >-
entity user {}entity organization {
relation admin @user
relation member @userpermission create_repository = (admin or member)
permission delete = admin
}entity repository {
relation owner @user
relation parent @organizationpermission push = owner
permission read = (owner and (parent.admin and parent.member))
permission delete = (parent.member and (parent.admin or owner))
}relationships:
- "organization:1#admin@user:1"
- "organization:1#member@user:1"
- "repository:1#owner@user:1"scenarios:
- name: "scenario 1"
description: "test description"
checks:
- entity: "repository:1"
subject: "user:1"
assertions:
push : true
- entity: "repository:2"
subject: "user:1"
assertions:
push : false
- entity: "repository:3"
subject: "user:1"
assertions:
push : false
```### Usage
Add the action following your workflow:
- With local file
```yaml
steps:
- uses: "permify/permify-validate-action@v1"
with:
validationFile: "test.yaml"
```- With url
```yaml
steps:
- uses: "permify/permify-validate-action@v1"
with:
validationFile: "https://gist.github.com/permify-bot/bb8f95acb64525d2a41688ae0a6f4274"
```Permify is an **open-source authorization service** for creating and maintaining fine-grained authorizations across your
individual applications and services.* [Permify website](https://permify.co)
* [Permify documentation](https://docs.permify.co/docs/intro)
* [Permify playground](https://play.permify.co)
* [Permify GitHub Repository](https://github.com/Permify/permify)## Testing in Local
You can also test your new authorization model in your local (Permify clone) without using [permify-validate-action] at
all.For that open up a new file and add a schema yaml file inside. Then build your project with, run `make run` command and
run `./permify validate {path of your schema validation file}`.If we use the above example schema validation file, after
running `./permify validate {path of your schema validation file}` it gives a result on the terminal as:[permify-validate-action]: https://github.com/Permify/permify-validate-action
## Community & Support
Join our [Discord channel](https://discord.gg/MJbUjwskdH) for issues, feature requests, feedbacks or anything else. We
love to talk about authorization and access control :heart: