.github | ||
assets | ||
config | ||
dev | ||
lib | ||
logos | ||
priv/static | ||
test | ||
.check.exs | ||
.credo.exs | ||
.formatter.exs | ||
.gitignore | ||
CHANGELOG.md | ||
dev.exs | ||
LICENSE | ||
mix.exs | ||
mix.lock | ||
README.md |
AshAdmin
An admin UI for Ash resources. Built with Phoenix LiveView.
Demo
https://www.youtube.com/watch?v=aFMLz3cpQ8c
Usage
First, ensure you've added ash_admin to your mix.exs
file.
{:ash_admin, "~> 0.7.1"}
Phoenix 1.7
If you want to use Phoenix 1.7 which has not yet been released, you'll need to use the git branch phoenix-1.7
, i.e
{:ash_admin, github: "ash-project/ash_admin", branch: "phoenix-1.7"}
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
end
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"
end
end
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:
mix ash_postgres.create
mix migrate
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!