Hooks roadmap
Every plugin hook type and where to read how it works.
Plugin API v8. All hooks listed as available ship today in v7.
| Hook | Status | Summary | Mixin role |
|---|---|---|---|
config.loaded | available | Read-only notification when config YAML is parsed. | Observe before plugins load; validate or log config. |
plugin.loaded | available | Fires after each plugin finishes init. | Coordinate between plugins; detect dependencies. |
daemon.starting / started / stopping | available | Startup and shutdown lifecycle markers. | Warm caches, bind integrations, graceful teardown. |
json.response | available | Mutate full JSON response objects. | Mixin layer on response body — add/remove/rename fields. |
json.actions | available | Mutate the top-level actions array. | Mixin layer on panel wizard steps. |
config.mutate | available | Rewrite config YAML bytes before FeatherFly applies settings. | Mixin on config load — inject defaults, strip keys, env-specific overrides. |
request.intercept | available | Run before an HTTP handler; inspect method, path, headers. | Mixin on inbound requests — auth plugins, rate limits, audit logging. |
route.register | available | Let plugins expose new HTTP routes through the daemon router. | Extend the API surface without forking FeatherFly. |
middleware.inject | available | Insert Axum middleware layers from plugins. | Cross-cutting concerns (tracing, CORS overrides) as plugins. |
cloudpanel.command | available | Inspect, mutate, or cancel CloudPanel CLI command args. | Mixin on CloudPanel operations — policy, defaults, audit. |