Runique Admin
Documentation / Runique Admin / Runique Admin

Runique Admin

Runique's admin builds a full CRUD UI from a typed builder (ModelAdmin). No admin! macro, no generated files: you declare SeaORM columns, the framework serves routes, list views, forms and permissions.

Before you start

  • The admin feature is required. Without it, the admin module isn't compiled: with_admin, ModelAdmin, AdminSite don't exist.

    runique = { version = "4.0.0", features = ["postgres", "admin"] }
    
  • with_public_url is required in production when the admin is enabled: without it, the boot is refused (links sent by email would be built from the request's Host header, which anyone can forge). In debug, the request's Host stands in for it.

  • Every model!{} of the project must be registered in the admin (register, or accounts_users for the accounts' extension). At boot, group rights targeting an unregistered model are deleted from the database.

  • The framework's accounts, groups and rights are provided: you don't declare them.

Minimal example

use runique::admin::{AdminSite, ModelAdmin};
use runique::app::staging::AdminStaging;
use crate::entities::article;

pub fn config(admin: AdminStaging) -> AdminStaging {
    admin
        .site_title("Administration")
        .path("/admin/")
        .site(|site| site.register(articles()))
}

fn articles() -> ModelAdmin<article::Entity> {
    use article::Column::*;
    ModelAdmin::new()
        .title("Articles")
        .list(|l| {
            l.display([Title, Status, Views])
                .links([Title])
                .sortable([Title])
                .search([Title])
                .filter([Status])
        })
        .form(|f| f.fields([Title, Body, Status]))
}

Then in main:

builder::new(config)
    .routes(url::routes())
    .with_database(db)
    .with_admin(admin::config)
    .build()
    .await?
    .run()
    .await?;
FileContents
SetupWire the admin, path, prefix, superuser
DeclarationAdminStaging, AdminSite, registration
ModelAdmin builderList + form API, typed columns
Boot validationChecks run at startup
User creationCreate → email → activation flow
List viewPagination, sort, search, filters, actions
PermissionsRanks, groups, rights grid
TemplatesOverride pages and blocks
RoadmapFuture ideas

Back to menu