Coder Social home page Coder Social logo

kingdomcoding / ash_admin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ash-project/ash_admin

0.0 1.0 0.0 1.75 MB

An admin ui for Ash Resources

Home Page: https://hexdocs.pm/ash_admin

License: MIT License

JavaScript 2.60% Elixir 79.58% CSS 17.24% SCSS 0.57%

ash_admin's Introduction

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.8.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
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).

Content Security Policy

If your app specifies a content security policy header, eg. via

plug :put_secure_browser_headers, %{"content-security-policy" => "default-src 'self'"}

in your router, then all of the styles and JavaScript used to power AshAdmin will be blocked by your browser.

To avoid this, you can add the specific AshAdmin nonces to the default-src allowlist, ie.

plug :put_secure_browser_headers, %{"content-security-policy" => "default-src 'nonce-ash_admin-Ed55GFnX' 'self'"}

This will allow AshAdmin-generated inline CSS and JS blocks to execute normally.

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

ash_admin's People

Contributors

axelson avatar joshprice avatar kevinam99 avatar minibikini avatar nicolkill avatar sevenseacat avatar skanderm avatar theosaurus-rex avatar wolfdan avatar zachdaniel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.