Skip to content

v1.17

Choose a tag to compare

@hermanekt hermanekt released this 08 Apr 10:57
· 185 commits to main since this release

Added

  • PDF reporting documentation (#13) - new docs/REPORTING.md authoring guide covering architecture, the 4 built-in templates, the report_generate tool API, branding, custom template authoring (admin portal and by hand), the full list of Jinja2 context variables per report type, the CSS classes provided by base.html, a worked end-to-end example, and the current limitations / roadmap. New "PDF Reports (beta)" section in README.md with built-in template overview, example prompts, and a quick custom-template snippet. config.example.toml now 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, mode 0750). The installer migrates existing files automatically on update: it creates the new directory, moves every *.html file (preserving timestamps, mode 0640), rewrites template_file paths 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.toml was previously called after install_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 made wait "$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 uses wait "$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 update

The 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.