| Plugin Module |
Base class fields, discovery via folder scan or entry points. |
| Lifecycle Hooks |
after_setup_templates and on_load_complete — call order and usage. |
| Menu API |
@menu_entry decorator, parent items, admin section. |
| Widgets |
All widget types (table, form, buttons, tabs, custom template) and ViewBuilder.generate(). |
| Topbar Actions |
Register icon buttons in the admin topbar that open modals, run JS, or navigate. |
| Flash Messages |
Session-backed notifications with four severity levels. |
| Auth |
require_authentication, require_role, current user. |
| Health probes |
/health (liveness) and /ready (readiness) — core ships both; do not write your own. |
| Template escaping |
Autoescape is OFF fleet-wide — every plugin must escape user-supplied text itself. |
| Database helpers |
Sessions, table creation, ensure_index (never a bare CREATE INDEX), and adding a column to a live table. |
| Settings |
App-wide FastPluggyConfig and per-plugin module_settings. |
| GlobalRegistry |
Shared key-value store for cross-plugin data. |
| Event Bus |
Publish/subscribe bus for decoupled cross-plugin communication. |
| Auto LocalStorage |
Persist form element values across page loads with a single HTML attribute. |