{"id":19382750,"url":"https://github.com/authzed/playground","last_synced_at":"2025-04-23T20:32:28.715Z","repository":{"id":230430837,"uuid":"747296902","full_name":"authzed/playground","owner":"authzed","description":"Playground for SpiceDB, the open source, Google Zanzibar-inspired permissions database to enable fine-grained access control for customer applications","archived":false,"fork":false,"pushed_at":"2025-04-02T16:49:11.000Z","size":18458,"stargazers_count":44,"open_issues_count":17,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-20T10:04:58.303Z","etag":null,"topics":["docker","fine-grained-access-control","permissions","playground","react","spicedb","vercel","zanzibar"],"latest_commit_sha":null,"homepage":"https://play.authzed.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/authzed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-23T16:49:41.000Z","updated_at":"2025-04-02T16:49:15.000Z","dependencies_parsed_at":"2024-04-02T17:39:15.184Z","dependency_job_id":"9f79e38b-65e1-4bb8-9057-511c255e0054","html_url":"https://github.com/authzed/playground","commit_stats":null,"previous_names":["authzed/playground"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fplayground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fplayground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fplayground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fplayground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/authzed","download_url":"https://codeload.github.com/authzed/playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250509858,"owners_count":21442510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","fine-grained-access-control","permissions","playground","react","spicedb","vercel","zanzibar"],"created_at":"2024-11-10T09:23:04.867Z","updated_at":"2025-04-23T20:32:28.708Z","avatar_url":"https://github.com/authzed.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://authzed.com#gh-dark-mode-only\" target=\"_blank\"\u003e\n    \u003cimg width=\"300\" src=\"https://github.com/authzed/spicedb/assets/343539/82234426-468b-4297-8b5c-f06a44fe2278\" alt=\"spicedb logo\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://authzed.com#gh-light-mode-only\" target=\"_blank\"\u003e\n    \u003cimg width=\"300\" src=\"https://github.com/authzed/spicedb/assets/343539/312ff046-7076-4c30-afd4-2e3d86c06f51\" alt=\"spicedb Logo\"\u003e\n\u003c/a\u003e\n\n# Playground\n\nThe SpiceDB Playground is an interactive app for building a [SpiceDB] schema, interacting with test relationships, and quickly iterating with test assertions.\n\nWhether you're just getting started learning SpiceDB concepts or need to develop a new permissions system schema for your application, the SpiceDB playground has functionality to help.\n\nSpiceDB Playground features include:\n\n- Rich text editor with syntax highlighting and tooltips\n- Visual relationship editor with support for defining caveat context data\n- Developer system that detects and presents schema and data errors\n- Real-time check requests against a full SpiceDB instance running client side via WASM\n- Fully functional [zed](https://github.com/authzed/zed) CLI instance running client side via WASM\n- Schema and relationship graph visualization\n- Import and export schema and workspace data as a YAML file\n\n## What is SpiceDB?\n\nSpiceDB is a graph database purpose-built for storing and evaluating access control data.\n\nAs of 2021, broken access control became the #1 threat to the web. With SpiceDB, developers finally have the solution to stopping this threat the same way as the hyperscalers.\n\nLearn more about [SpiceDB]\n\n[SpiceDB]: https://authzed.com/spicedb\n\n## Getting Started\n\n## Deploying\n\n### Docker\n\nRun the latest Docker container\n\n```command\ndocker run -it -p 3000:3000 ghcr.io/authzed/spicedb-playground:latest\n```\n\nConnect to the running container.\n\n```command\nhttp://\u003ccontainer\u003e:3000\n```\n\n### Vercel\n\nDeploy an instance hosted on Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fauthzed%2Fplayground\u0026project-name=spicedb-playground\u0026repository-name=spicedb-playground)\n\nor using the Vercel CLI\n\n```command\nvercel build\nvercel deploy --prebuilt\n```\n\n\u003e ℹ️ Git Large File Storage (LFS) must be enabled in your Vercel project settings.\n\n### NodeJS\n\nThe `build` directory in the project root directory after running `yarn build` will contain an optimized production React application that can be served using your preferred NodeJS hosting method.\n\n\u003e ℹ️ Node v18.x is required.\n\nFor example:\n\n```command\nyarn global install serve\ncd build\nserve\n```\n\n## Installing dependencies\n\nSetup git submodules: `git submodule update --init --recursive`\n\nRun `yarn install` in the _root_ project directory.\n\nInstall LFS: `git lfs install`\n\n## Running for development\n\n```\nyarn run dev\n```\n\n## Updating wasm dependencies\n\nThe project contains prebuilt WASM files for versions of both SpiceDB and zed. To update the versions, edit the [wasm-config.json] file with the desired tag/commit hash and then run from the project root:\n\n`yarn run update:spicedb`\n\n`yarn run update:zed`\n\n\u003e ℹ️ [jq] is required and must be installed.\n\n[wasm-config.json]: https://github.com/authzed/playground/blob/main/spicedb-common/wasm-config.json\n[jq]: https://jqlang.github.io/jq/\n\n## Updating the generated protobuf code\n\nThis project uses generated gRPC code to talk to the download API. To regenerate:\n\n1. Install [buf](https://buf.build/docs/installation/) if you haven't already\n1. Run `buf generate`\n1. Commit the changes\n\n## Building the Docker Container\n\n```\ndocker build . -t tag-for-playground-image\n```\n\nBuild args can be specified for the build-time environment variables:\n\n```\ndocker build --build-arg VITE_AUTHZED_DEVELOPER_GATEWAY_ENDPOINT=https://my.developer.endpoint . -t tag-for-playground-image\n```\n\n## Developing your own schema\n\nYou can try both [SpiceDB](https://github.com/authzed/spicedb) and [zed](https://github.com/authzed/zed) entirely in your browser on a SpiceDB Playground deployment thanks to the power of [WebAssembly](https://authzed.com/blog/some-assembly-required).\n\nIf you don't want to start with the examples loadable from a Playground, you can follow a guide for [developing a schema] or review the the schema language [design documentation].\n\nWatch the SpiceDB primer video to get started with schema development:\n\n\u003ca href=\"https://www.youtube.com/watch?v=AoK0LrkGFDY\" target=\"_blank\"\u003e\u003cimg width=\"600\" alt=\"SpiceDB Primer YouTube Thumbnail\" src=\"https://github.com/authzed/spicedb/assets/343539/7784dfa2-b330-4c5e-b32a-090759e48392\"\u003e\u003c/a\u003e\n\n[developing a schema]: https://authzed.com/docs/spicedb/modeling/developing-a-schema\n[design documentation]: https://authzed.com/docs/spicedb/concepts/schema\n\n## Contribute\n\n[CONTRIBUTING.md] documents communication, contribution flow, legal requirements, and common tasks when contributing to the project.\n\nYou can find issues by priority: [Urgent], [High], [Medium], [Low], [Maybe].\nThere are also [good first issues].\n\nOur [documentation website] is also open source if you'd like to clarify anything you find confusing.\n\n[CONTRIBUTING.md]: CONTRIBUTING.md\n[Urgent]: https://github.com/authzed/playground/labels/priority%2F0%20urgent\n[High]: https://github.com/authzed/playground/labels/priority%2F1%20high\n[Medium]: https://github.com/authzed/playground/labels/priority%2F2%20medium\n[Low]: https://github.com/authzed/playground/labels/priority%2F3%20low\n[Maybe]: https://github.com/authzed/playground/labels/priority%2F4%20maybe\n[good first issues]: https://github.com/authzed/playground/labels/hint%2Fgood%20first%20issue\n[documentation website]: https://github.com/authzed/docs\n\n## Joining the SpiceDB Community\n\nSpiceDB is a community project where everyone is invited to participate and [feel welcomed].\nWhile the project has a technical goal, participation is not restricted to those with code contributions.\nJoin our [Community Discord](https://authzed.com/discord) to ask questions and meet other users.\n\n[feel welcomed]: CODE-OF-CONDUCT.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthzed%2Fplayground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fauthzed%2Fplayground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthzed%2Fplayground/lists"}