v1.17
Added
- PDF reporting documentation (#13) - new
docs/REPORTING.mdauthoring guide covering architecture, the 4 built-in templates, thereport_generatetool API, branding, custom template authoring (admin portal and by hand), the full list of Jinja2 context variables per report type, the CSS classes provided bybase.html, a worked end-to-end example, and the current limitations / roadmap. New "PDF Reports (beta)" section inREADME.mdwith built-in template overview, example prompts, and a quick custom-template snippet.config.example.tomlnow documents the[report_templates.*]section with a commented example.
Changed
- Custom report templates moved to
/etc/zabbix-mcp/templates/- in v1.16 the admin portal wrote custom HTML templates to/var/log/zabbix-mcp/templates/, which was an oversight (config files do not belong in a log directory). The location is now/etc/zabbix-mcp/templates/(zabbix-mcp:zabbix-mcp, mode0750). The installer migrates existing files automatically onupdate: it creates the new directory, moves every*.htmlfile (preserving timestamps, mode0640), rewritestemplate_filepaths in[report_templates.*]config sections via tomlkit (preserves comments), and removes the old empty directory. The migration is idempotent and a no-op on fresh installs or when nothing needs to be moved.
Fixed
- Installer config copy now happens before pip install (#12) -
cp config.example.toml /etc/zabbix-mcp/config.tomlwas previously called afterinstall_package, so any pip failure (network error, missing wheel, user interrupt) left the user with empty/etc/zabbix-mcp/{assets,tls}and no config to edit. The copy is now performed before the pip install so the file is always in place even when pip fails. - Installer spinner no longer hides errors (#12) - under
set -euo pipefail, a failing background command madewait "$pid"abort the script before the spinner cleanup, error message, and captured output could be printed; the user saw a spinner mid-frame followed by their bash prompt with zero diagnostics. Spinner now useswait "$pid" || exit_code=$?so set -e is suppressed, the real exit code is captured, the spinner line is cleared, and the failing command's stdout/stderr is dumped between--- command output ---markers.
Upgrade
cd zabbix-mcp-server
git fetch origin && git reset --hard origin/main
sudo ./deploy/install.sh updateThe installer will automatically migrate any custom report templates from the legacy /var/log/zabbix-mcp/templates/ location to /etc/zabbix-mcp/templates/ and rewrite the template_file paths in config.toml.