An admin ui for Ash Resources
Find a file
2023-01-26 02:49:11 -05:00
.github chore: fix markdown in the bug report template (#37) 2022-12-12 10:40:40 -05:00
assets chore: format code 2022-11-01 03:12:56 -04:00
config fix: properly render template 2022-12-19 22:28:58 -05:00
dev improvement: add markdown editor 2022-10-31 16:58:12 -04:00
lib improvement: only show 1000k records of unpaginated reads 2023-01-26 02:49:11 -05:00
logos chore: package setup + formatting + sobelow 2021-03-22 00:05:49 -04:00
priv/static chore: format code 2022-11-01 03:12:56 -04:00
test chore: lint 2022-05-25 12:18:54 -04:00
.check.exs fix: don't call into ash_postgres for tables anymore 2022-09-08 13:25:45 -04:00
.credo.exs feat: draw the rest of the owl 2021-03-22 02:41:22 -04:00
.formatter.exs chore: format code 2022-11-01 03:12:56 -04:00
.gitignore savepoint 2020-12-03 22:19:28 -05:00
CHANGELOG.md chore: release version v0.7.1 2022-11-01 03:13:17 -04:00
dev.exs fix: fix issues w/ admin UI not rendering 2022-03-16 23:34:52 -04:00
LICENSE chore: package setup + formatting + sobelow 2021-03-22 00:05:49 -04:00
mix.exs fix: don't need to track root level fields 2022-12-20 22:58:26 -05:00
mix.lock improvement: support phoenix 1.7 2022-12-12 10:41:46 -05:00
README.md chore: add note about 1.7 to readme 2022-12-12 10:41:46 -05:00

AshAdmin

Elixir CI License: MIT Coverage Status Hex version badge

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:

  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!

Become a contributor