API Reference GreenAsh v#0.1.0

Copy Markdown View Source

Modules

GreenAsh — une console de test « écran vert » (LiveView, 100 % clavier, style AS400) générée par introspection depuis vos resources Ash, sans code d'UI.

Gestion de l'« acteur » de la console : l'enregistrement Ash au nom duquel les actions sont exécutées (pour éprouver les policies). Stocké en session HTTP (une LiveView ne peut pas écrire la session via le socket : cf. GreenAsh.ActorController) et rethreadé dans tous les appels Ash.

Écrit/efface l'acteur de la console en session, puis redirige. Sollicité par la commande :actor des LiveViews (qui ne peuvent pas écrire la session via le socket).

Parseur + application de la ligne de commande : (façon Vim), partagé par tous les écrans. Les chemins sont construits à partir de la base de montage (base) fournie par l'hôte, et les resources résolues parmi domains.

Composants d'UI auto-contenus de la console : la feuille de style « terminal vert » plein écran, un <.input> générique (piloté par un champ de formulaire AshPhoenix) et un <.button>. Aucune dépendance aux composants de l'hôte.

Introspection d'une action Ash -> specs de champs -> type de widget HTML.

Menu principal, façon AS400 : plein écran, options numérotées, ligne de commande Option ===> et navigation clavier. Deux niveaux découverts automatiquement (resources -> actions). Une action :create ouvre l'écran de saisie, :read une liste ; :update/:destroy renvoient vers une liste.

Moteur générique : rend un écran de saisie exécutable pour UNE action Ash, entièrement par introspection. La resource/action viennent de la route ; les champs sont déduits par GreenAsh.Field et le formulaire par AshPhoenix.Form. Un :id (token de PK) charge un enregistrement pour une action update.

Subfile AS400 : liste des enregistrements d'une action :read, avec colonne "Opt" par ligne (codes dérivés des actions : update/destroy/afficher), filtre (arguments de la read action, côté requête), tri de colonne et pagination. Toutes les lectures/suppressions passent l'acteur courant.

on_mount posé par la macro de routeur : injecte dans chaque LiveView la liste de domaines, la base de montage et l'acteur courant (résolu depuis la session).

Découverte, au runtime, des resources / actions Ash à partir de la liste de domaines fournie par l'hôte (via la macro de routeur), et résolution module <-> slug / clé primaire pour les routes de la console.

Intégration au routeur de l'hôte.

Point d'entrée use GreenAsh.Web, :live_view pour les LiveViews de la console. N'importe rien de l'application hôte : uniquement Phoenix.LiveView, les composants de la lib et un helper de chemin relatif à la base de montage.

Mix Tasks

Installs GreenAsh: mounts the console in your router