An admin UI for Ash resources. Built with Phoenix LiveView.
https://www.youtube.com/watch?v=aFMLz3cpQ8c
First, ensure you've added ash_admin to your mix.exs
file.
{:ash_admin, "~> 0.7.1"}
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).
See the documentation in AshAdmin.Resource
and AshAdmin.Api
for information on the available configuration.
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
Ash is made possible by its excellent community!