Plugins
The marketplace for swappable backends. Two categories ship today:
Activation modes: free, trial, license (handler-specific). Webserver activations rewrite every account's vhost to the new backend — the live progress dialog (SSE) shows phase-by-phase status. Runtime plugin activations are essentially flag flips that wire the sidebar entry and unlock the matching API surface.
The "Mark as resolved" amber banner appears when an activation pipeline was killed mid-flight (agent crash, OOM kill). One click clears the marker; the operator should verify system state before doing so.
An activation request is checked before anything runs, on both the blocking and the background path: an unknown plugin answers 404 PLUGIN_NOT_FOUND, an unsupported mode or a malformed serial key 400 PLUGIN_VALIDATION_ERROR, and no task is created for a refused request. Serial keys are trimmed and must consist of letters, digits, hyphens and underscores. Plugin state (including a masked serial key) lives in /etc/whost/plugins.json (root, 0600); the list endpoint never returns serial keys, the single-plugin endpoint returns a masked one. Webserver plugin installs fetch the LiteSpeed repository script and the LSWS tarball over HTTPS from LiteSpeed; the advertised version and build are accepted only as plain numbers.
Endpoints used: GET /plugins, POST /plugins/{id}/activate/async, GET /plugins/tasks/{id}/events (SSE), POST /plugins/{id}/deactivate, POST /plugins/{id}/reset-state, POST /plugins/{id}/update.
Our support team is here around the clock for anything you can't find above.