# AshAdmin

![Elixir CI](
[![License: MIT](](
[![Coverage Status](](
[![Hex version badge](](

An admin UI for Ash resources. Built with Phoenix LiveView.

## Demo

## Usage

First, ensure you've added ash_admin to your `mix.exs` file.

{:ash_admin, "~> 0.7.0"}

## Setup

Ensure your apis are configured in `config.exs`

config :my_app, ash_apis: [MyApp.Foo, MyApp.Bar]

Add the admin extension to each api you want to show in the admin dashboard, and configure it to show

use Ash.Api,
  extensions: [AshAdmin.Api]

admin do
  show? true

Modify your router to add ash admin at whatever path you'd like to serve it at.

defmodule MyAppWeb.Router do
  use Phoenix.Router

  import AshAdmin.Router

  # AshAdmin requires a Phoenix LiveView `:browser` pipeline
  # If you DO NOT have a `:browser` pipeline already, then AshAdmin has a `:browser` pipeline
  # Most applications will not need this:
  admin_browser_pipeline :browser

  scope "/" do
    # Pipe it through your browser pipeline
    pipe_through [:browser]

    ash_admin "/admin"

Now start your project (usually by running `mix phx.server` in a terminal) and visit `/admin` in your browser (or whatever path you gave to `ash_admin` in your router).

## Configuration

See the documentation in [`AshAdmin.Resource`]( and [`AshAdmin.Api`]( for information on the available configuration.

## Development

To work on ash_admin, you'll want to be able to run the dev app. You'll need to have postgres setup locally, at which point you can do the following:

1. `mix ash_postgres.create`
2. `mix migrate`
3. `mix migrate_tenants`

Then, you can start the app with: `mix dev`

If you make changes to the resources, you can generate migrations with `mix generate_migrations`

## Contributors

Ash is made possible by its excellent community!

<a href="">
  <img src="" />

[Become a contributor](