Lifecycle events
Automatic and lifecycle hooks — 47 events, JSON payloads for daemon, HTTP, and plugin runtime actions.
Register during init with hook!(host, PluginEvent::Variant, callback).
daemon.startingDaemon is about to start HTTP.daemon.startedHTTP server is listening.daemon.stoppingDaemon is shutting down.config.loadedConfig file has been parsed.plugin.loadedA plugin finished initializing.request.receivedHTTP request entered the daemon middleware stack.request.completedHTTP request finished.request.not_foundRequest returned 404.request.blockedProbe protection blocked a request.probe.client_blockedProbe protection blocked a client IP.auth.failedBearer authentication failed.restart.scheduledDaemon restart was queued.plugins.reload_requestedPlugin reload API was called.node.identity_generatedNode identity was generated.plugins.config_mutatedPlugin config mutation changed raw YAML.plugins.request_short_circuitedA request hook returned an HTTP response.plugins.json_response_mutatedA JSON response body hook changed a response.plugins.json_actions_mutatedA JSON actions hook changed an actions array.plugins.route_invokedA plugin route handled a request.plugins.route_failedA plugin route handler failed.cloudpanel.site.create_requestedA site (webspace) create was requested.cloudpanel.site.createdA site (webspace) was created successfully.cloudpanel.site.create_failedA site (webspace) create failed or was cancelled.cloudpanel.site.delete_requestedA site (webspace) delete was requested.cloudpanel.site.deletedA site (webspace) was deleted successfully.cloudpanel.site.delete_failedA site (webspace) delete failed or was cancelled.cloudpanel.database.create_requestedA database create was requested.cloudpanel.database.createdA database was created successfully.cloudpanel.database.create_failedA database create failed or was cancelled.cloudpanel.database.delete_requestedA database delete was requested.cloudpanel.database.deletedA database was deleted successfully.cloudpanel.database.delete_failedA database delete failed or was cancelled.cloudpanel.database.export_requestedA database export was requested.cloudpanel.database.exportedA database was exported successfully.cloudpanel.database.export_failedA database export failed or was cancelled.cloudpanel.user.password_reset_requestedA user password reset was requested.cloudpanel.user.password_resetA user password was reset successfully.cloudpanel.user.password_reset_failedA user password reset failed or was cancelled.cloudpanel.user.mfa_disable_requestedA user MFA disable was requested.cloudpanel.user.mfa_disabledUser MFA was disabled successfully.cloudpanel.user.mfa_disable_failedA user MFA disable failed or was cancelled.cloudpanel.certificate.install_requestedA Let's Encrypt certificate install was requested.cloudpanel.certificate.installedA Let's Encrypt certificate was installed successfully.cloudpanel.certificate.install_failedA certificate install failed or was cancelled.cloudpanel.vhost_templates.import_requestedA vhost template import was requested.cloudpanel.vhost_templates.importedVhost templates were imported successfully.cloudpanel.vhost_templates.import_failedA vhost template import failed or was cancelled.Quick reference
| Event | Summary | When | Cancel |
|---|---|---|---|
daemon.starting | Daemon is about to start HTTP. | After config mutation and final config apply, before the router is served. | no |
daemon.started | HTTP server is listening. | After the TCP listener is bound and before serving requests. | no |
daemon.stopping | Daemon is shutting down. | After the HTTP server stops, before plugin shutdown callbacks run. | no |
config.loaded | Config file has been parsed. | After plugin config.mutate hooks finish and final YAML is parsed. | no |
plugin.loaded | A plugin finished initializing. | Immediately after that plugin's init returns 0. | no |
request.received | HTTP request entered the daemon middleware stack. | Before the request is passed to route handlers. | no |
request.completed | HTTP request finished. | After a response status is available. | no |
request.not_found | Request returned 404. | After the fallback handler responds with not found. | no |
request.blocked | Probe protection blocked a request. | Before a blocked client request is rejected. | no |
probe.client_blocked | Probe protection blocked a client IP. | After the unknown route threshold is reached. | no |
auth.failed | Bearer authentication failed. | After an authenticated route rejects a request. | no |
restart.scheduled | Daemon restart was queued. | After plugin reload requests schedule a restart. | no |
plugins.reload_requested | Plugin reload API was called. | POST /api/system/plugins/reload accepted. | no |
node.identity_generated | Node identity was generated. | First boot with empty uuid/token_id/token fields. | no |
plugins.config_mutated | Plugin config mutation changed raw YAML. | After config.mutate hooks run and output differs from input. | no |
plugins.request_short_circuited | A request hook returned an HTTP response. | request.intercept or middleware.inject returns REQUEST_RESPOND. | no |
plugins.json_response_mutated | A JSON response body hook changed a response. | After json.response returns modified JSON. | no |
plugins.json_actions_mutated | A JSON actions hook changed an actions array. | After json.actions returns modified JSON. | no |
plugins.route_invoked | A plugin route handled a request. | After a route.register handler returns ROUTE_OK. | no |
plugins.route_failed | A plugin route handler failed. | After the handler returns a negative route status or request body read fails. | no |
cloudpanel.site.create_requested | A site (webspace) create was requested. | Before CloudPanel command hooks run for site:add:* operations. | no |
cloudpanel.site.created | A site (webspace) was created successfully. | After clpctl exits successfully for site:add:* operations. | no |
cloudpanel.site.create_failed | A site (webspace) create failed or was cancelled. | After hooks cancel site creation or clpctl exits with an error. | no |
cloudpanel.site.delete_requested | A site (webspace) delete was requested. | Before CloudPanel command hooks run for site:delete. | no |
cloudpanel.site.deleted | A site (webspace) was deleted successfully. | After clpctl exits successfully for site:delete. | no |
cloudpanel.site.delete_failed | A site (webspace) delete failed or was cancelled. | After hooks cancel site deletion or clpctl exits with an error. | no |
cloudpanel.database.create_requested | A database create was requested. | Before CloudPanel command hooks run for db:add. | no |
cloudpanel.database.created | A database was created successfully. | After clpctl exits successfully for db:add. | no |
cloudpanel.database.create_failed | A database create failed or was cancelled. | After hooks cancel database creation or clpctl exits with an error. | no |
cloudpanel.database.delete_requested | A database delete was requested. | Before CloudPanel command hooks run for db:delete. | no |
cloudpanel.database.deleted | A database was deleted successfully. | After clpctl exits successfully for db:delete. | no |
cloudpanel.database.delete_failed | A database delete failed or was cancelled. | After hooks cancel database deletion or clpctl exits with an error. | no |
cloudpanel.database.export_requested | A database export was requested. | Before CloudPanel command hooks run for db:export. | no |
cloudpanel.database.exported | A database was exported successfully. | After clpctl exits successfully for db:export. | no |
cloudpanel.database.export_failed | A database export failed or was cancelled. | After hooks cancel the export or clpctl exits with an error. | no |
cloudpanel.user.password_reset_requested | A user password reset was requested. | Before CloudPanel command hooks run for user:reset:password. | no |
cloudpanel.user.password_reset | A user password was reset successfully. | After clpctl exits successfully for user:reset:password. | no |
cloudpanel.user.password_reset_failed | A user password reset failed or was cancelled. | After hooks cancel the reset or clpctl exits with an error. | no |
cloudpanel.user.mfa_disable_requested | A user MFA disable was requested. | Before CloudPanel command hooks run for user:disable:mfa. | no |
cloudpanel.user.mfa_disabled | User MFA was disabled successfully. | After clpctl exits successfully for user:disable:mfa. | no |
cloudpanel.user.mfa_disable_failed | A user MFA disable failed or was cancelled. | After hooks cancel MFA disable or clpctl exits with an error. | no |
cloudpanel.certificate.install_requested | A Let's Encrypt certificate install was requested. | Before CloudPanel command hooks run for lets-encrypt:install:certificate. | no |
cloudpanel.certificate.installed | A Let's Encrypt certificate was installed successfully. | After clpctl exits successfully for lets-encrypt:install:certificate. | no |
cloudpanel.certificate.install_failed | A certificate install failed or was cancelled. | After hooks cancel the install or clpctl exits with an error. | no |
cloudpanel.vhost_templates.import_requested | A vhost template import was requested. | Before CloudPanel command hooks run for vhost-templates:import. | no |
cloudpanel.vhost_templates.imported | Vhost templates were imported successfully. | After clpctl exits successfully for vhost-templates:import. | no |
cloudpanel.vhost_templates.import_failed | A vhost template import failed or was cancelled. | After hooks cancel the import or clpctl exits with an error. | no |