Release LoadGen Api, Appliance and MCP Server: 1.0.0.11822
LoadGen General
- Hardened the appliance against the Qualys QID 105146 finding ("World-Writable Directories Should Have Their Sticky Bits Set") on
/tmp/.dotnet. New appliances ship hardened on first boot; existing appliances are healed automatically on the next agent restart, with no operator action required.
LoadGen Api
- [#8483] Support tickets submitted from the LoadGen UI now include surrounding API log lines and the appliance agent's recent log so support engineers have richer context for diagnosing issues.
- [#8476] Added
GET /diagnostics/appliance-infowhich returns docker container versions forapi,frontend,mcp,grafana,influxdbanddotnet, plus host OS information and the appliance agent version, in a single round trip - so support bundles and the operator dashboard now expose the full version inventory consistently. - Managed PowerShell uptime scripts: replaced the file-on-worker-disk PowerShell uptime script model with an API-managed library. Operators can now upload, edit, version, lint and dry-run scripts via REST, the MCP server, or the UI. Workers execute the scripts in a sandboxed runspace under PowerShell
ConstrainedLanguagemode by default. A new dedicatedUptimeScriptspermission role lets administrators grant script-authoring access independently from other uptime permissions. Note: the script return contract has changed and is a hard break - any existing PowerShell uptime script must be rewritten to the new@{ Status='Healthy|Degraded|Failed'; ResponseTimeMs=...; Message='...'; Metrics=@{...} }shape before it will execute. - [#8487] Uptime maintenance windows now support a
Monthlyrecurrence option with a configurable list of days-of-month. Values larger than the current month's last day automatically clamp to the last day, so a "31" entry always fires on the final day of every month. - [#8472] Fixed creating a recurring uptime maintenance window failing when day-of-week values were submitted as 3-letter abbreviations, RFC 5545 BYDAY codes, lowercase names or numbers. The API now accepts every common form and returns a precise error message that names the offending value if a truly unrecognised entry is submitted.
- [#8470] Fixed WHOIS uptime checks for
.ukdomains and other registries that publish the expiry date in aDD-MMM-YYYYformat being incorrectly reported as "WHOIS response did not include an expiry date". The expiry parser now understands ICANN, short-ISO and Nominet formats with both single- and zero-padded days. - [#8456] Fixed the InfluxDB and Grafana URLs on the appliance Services page still rendering with
http://after a self-signed or custom certificate install had already enabled HTTPS. The reported SSL state now reflects whether a usable certificate is actually on disk for the configured domain across every install mode. - [#8477] Fixed SessionSight pages going silently empty after a transient cancel during worker initialization. A worker that fails to initialise is now recycled instead of being left stuck in a "running but uninitialized" state, and SessionSight initialisation now times out cleanly.
- [#8454] Removed an unconditional cloud-refresh of the license at API startup. Transient
api.loadgen.cloudfailures during boot no longer push the appliance into a license grace period; the appliance still contacts the cloud through its normal periodic enforcement and auto-refresh, and the user-triggeredPOST /license/refresh.
LoadGen Appliance
- [#8485] Surface the configured SSL domain on the appliance pre-login banner (
/etc/issueand the SSH login banner) so an admin attaching a console or SSH session immediately sees the canonical management URL of the box, not just the hostname and IP. When no domain is configured, the URL line is omitted gracefully and the existing IP row remains as the recovery breadcrumb. - [#8455] Fixed three reported DNS bugs on the appliance Network page: the configured DNS list could come up empty on Ubuntu 22.04+ even when DNS was working, save could fail on configurations without an existing nameservers block, and the response did not confirm what actually persisted. The DNS settings now distinguish between operator-managed (static) entries and DHCP-supplied servers, save survives every netplan layout, and a 409 Conflict response signals the rare "applied, but not yet active" case instead of a generic 500.
- [#8483] The appliance agent now provides its recent logs for inclusion in support bundles.
LoadGen MCP Server
- Managed PowerShell uptime scripts are exposed via MCP tools (
ListUptimeScripts,GetUptimeScript,CreateUptimeScript,UpdateUptimeScript,DeleteUptimeScript,DryRunUptimeScript,TestUptimeScript,ListUptimeScriptVersions,GetUptimeScriptVersion), so operators and AI agents can manage uptime scripts directly from any MCP client.