assets

Assets

The admin ships a vendored frontend bundle and serves it through the engine, so it works with no external requests and no CDN dependency.

The bundle

ComponentVersionLogical paths
Bootstrap5.3.3bootstrap/bootstrap.min.css, bootstrap/bootstrap.bundle.min.js
Bootstrap Icons1.11.3bootstrap-icons/bootstrap-icons.min.css
htmx2.0.4htmx/htmx.min.js

The files ship as distribution resources, so they resolve whether the admin runs from a source checkout or an install. They are pinned in tools/vendored-assets.json (versions, source URLs, and checksums); run raku tools/vendor-assets.raku to refetch or upgrade them.

Serving and fingerprinting

The engine serves the bundle under <mount>/admin-assets/<path>. Each URL carries a content digest as a query string, and responses are sent with Cache-Control: public, max-age=31536000, immutable. When a file's content changes its digest changes, so the URL changes and caches refresh on their own.

MVC::Keayl::Admin::Assets.asset-url('bootstrap/bootstrap.min.css') returns the fingerprinted URL. The layout renders the stylesheet, script, and import-map tags for the bundle. htmx and Bootstrap are also pinned in an import map.

Overriding styles

A host application can layer its own stylesheet after the bundle:

MVC::Keayl::Admin.use-stylesheet('/assets/admin-overrides.css');

The override is emitted after the vendored stylesheets, so its rules win.

Licensing

The vendored assets are separate works under their own licenses (Bootstrap and Bootstrap Icons are MIT, htmx is Zero-Clause BSD), distinct from this distribution's Artistic-2.0 license. Each component's LICENSE is bundled next to its files, and NOTICES.md records the versions, licenses, and sources.

MVC::Keayl::Admin v0.9.0

Generated administration interface for MVC::Keayl applications

Authors

  • Greg Donald

License

Artistic-2.0

Dependencies

MVC::Keayl:auth<zef:gdonald>ORM::ActiveRecord:auth<zef:gdonald>Template::HAML:auth<zef:gdonald>

Provides

  • MVC::Keayl::Admin
  • MVC::Keayl::Admin::ActionItem
  • MVC::Keayl::Admin::Assets
  • MVC::Keayl::Admin::AssetsController
  • MVC::Keayl::Admin::Attachments
  • MVC::Keayl::Admin::Attribute
  • MVC::Keayl::Admin::Authentication
  • MVC::Keayl::Admin::Authentication::Basic
  • MVC::Keayl::Admin::Authentication::Session
  • MVC::Keayl::Admin::Authorization
  • MVC::Keayl::Admin::Authorization::Abilities
  • MVC::Keayl::Admin::Authorization::Policy
  • MVC::Keayl::Admin::Authorization::Role
  • MVC::Keayl::Admin::BatchAction
  • MVC::Keayl::Admin::Chrome
  • MVC::Keayl::Admin::Column
  • MVC::Keayl::Admin::Config
  • MVC::Keayl::Admin::Controller
  • MVC::Keayl::Admin::CustomAction
  • MVC::Keayl::Admin::DSL
  • MVC::Keayl::Admin::Dashboard
  • MVC::Keayl::Admin::DashboardController
  • MVC::Keayl::Admin::Engine
  • MVC::Keayl::Admin::ExportSpec
  • MVC::Keayl::Admin::Field
  • MVC::Keayl::Admin::Filter
  • MVC::Keayl::Admin::FilterPanel
  • MVC::Keayl::Admin::Form
  • MVC::Keayl::Admin::Formatter
  • MVC::Keayl::Admin::Generators
  • MVC::Keayl::Admin::I18n
  • MVC::Keayl::Admin::IndexView
  • MVC::Keayl::Admin::Inflection
  • MVC::Keayl::Admin::Menu
  • MVC::Keayl::Admin::MenuEntry
  • MVC::Keayl::Admin::Nested
  • MVC::Keayl::Admin::Page
  • MVC::Keayl::Admin::PageController
  • MVC::Keayl::Admin::Pages
  • MVC::Keayl::Admin::Pagination
  • MVC::Keayl::Admin::Panel
  • MVC::Keayl::Admin::Panels
  • MVC::Keayl::Admin::Paths
  • MVC::Keayl::Admin::Predicate
  • MVC::Keayl::Admin::Registry
  • MVC::Keayl::Admin::Resource
  • MVC::Keayl::Admin::ResourceController
  • MVC::Keayl::Admin::Scope
  • MVC::Keayl::Admin::Scopes
  • MVC::Keayl::Admin::Show
  • MVC::Keayl::Admin::Table
  • MVC::Keayl::Admin::TestSupport
  • MVC::Keayl::Admin::Url
  • MVC::Keayl::Admin::View

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.