OpenFGA Dashboard

April 2, 2026 ยท View on GitHub

Apache 2.0 License

๐ŸŒ Live Demo โ†’ openfga-dashboard.xyz โ€” Try it instantly, no installation required.

A modern, pure frontend dashboard for managing OpenFGA authorization servers. Connect to your OpenFGA instance and manage stores, authorization models, relationship tuples, and run queries - all from your browser.

Features

  • Store Management: Create, view, and delete OpenFGA stores
  • Authorization Model Editor: Create and view authorization models with Monaco Editor
  • Relationship Tuples: Add, search, and delete relationship tuples
  • Query Operations:
    • Check: Test if a user has a specific relation with an object
    • Expand: View the relationship tree
    • List Objects: Find all objects a user has access to
    • List Users: Find all users with access to an object
  • Multiple Authentication Methods:
    • No authentication
    • API Key (Pre-shared Key)
    • OIDC (Client Credentials)

Tech Stack

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • An OpenFGA server instance (local or remote)

Installation

  1. Clone the repository:

    git clone https://github.com/dz1922/openfga-dashboard.git
    cd openfga-dashboard
    
  2. Install dependencies:

    npm install
    
  3. Start the development server:

    npm run dev
    
  4. Open http://localhost:3000 in your browser

Connecting to OpenFGA

  1. Enter your OpenFGA server URL (e.g., http://localhost:8080)
  2. Select your authentication method:
    • None: For local development without authentication
    • API Key: Enter your pre-shared key
    • OIDC: Enter client credentials (Client ID, Client Secret, Token URL)
  3. Click "Test Connection" to verify
  4. Click "Connect" to access the dashboard

Security Considerations

  • Client-side only: This is a pure frontend application. All connections are made directly from your browser to your OpenFGA server.
  • Local storage: Connection credentials are stored in your browser's local storage.
  • CORS: Your OpenFGA server must have CORS enabled for this application's domain.
  • Recommendations:
    • Only connect to servers you own or have explicit permission to access
    • Do not use this tool on shared or public computers
    • Clear your browser data after use on non-personal devices

Deployment

Deploy to Vercel

Deploy with Vercel

Build for Production

npm run build
npm start

Deploy with Docker

Run the dashboard with OpenFGA server using Docker Compose:

docker-compose up -d

This will start:

To build and run only the dashboard:

docker build -t openfga-dashboard .
docker run -p 3000:3000 openfga-dashboard

For persistent storage with PostgreSQL, see the commented section in docker-compose.yml.

Project Structure

โ”œโ”€โ”€ app/                    # Next.js App Router pages
โ”‚   โ”œโ”€โ”€ dashboard/          # Dashboard pages
โ”‚   โ””โ”€โ”€ page.tsx            # Landing/Connection page
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ ui/                 # Reusable UI components
โ”‚   โ”œโ”€โ”€ connection/         # Connection-related components
โ”‚   โ”œโ”€โ”€ stores/             # Store management components
โ”‚   โ”œโ”€โ”€ model/              # Authorization model components
โ”‚   โ”œโ”€โ”€ tuples/             # Tuple management components
โ”‚   โ”œโ”€โ”€ query/              # Query operation components
โ”‚   โ””โ”€โ”€ layout/             # Layout components
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ openfga/            # OpenFGA API client
โ”‚   โ””โ”€โ”€ store/              # Zustand stores
โ””โ”€โ”€ hooks/                  # Custom React hooks

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Support

If you find this project useful, consider:

Acknowledgments

  • OpenFGA - The authorization solution this dashboard is built for
  • shadcn/ui - UI component inspiration
  • Vercel - Hosting platform