This commit upgrades the project to Node.js 24 (LTS) and performs a major refactoring of the documentation to support both advanced users and AI-based automation (MCP).
Changes:
- Environment & CI/CD:
- Set Node.js version to >=24 in package.json and .nvmrc.
- Updated Dockerfile to use Node 24 base image.
- Updated @types/node to ^24.10.9.
- Documentation:
- Refactored README.md with comprehensive technical reference, configuration details, and Zabbix-to-GraphQL mapping.
- Created docs/howtos/cookbook.md with practical recipes for common tasks and AI test generation.
- Updated docs/howtos/mcp.md to emphasize GraphQL's advantages for AI agents and Model Context Protocol.
- Added readme.improvement.plan.md to track documentation evolution.
- Enhanced all how-to guides with improved cross-references and up-to-date information.
- Guidelines:
- Updated .junie/guidelines.md with Node 24 requirements and enhanced commit message standards (Conventional Commits 1.0.0).
- Infrastructure & Code:
- Updated docker-compose.yml with Apollo MCP server integration.
- Refined configuration and schema handling in src/api/ and src/datasources/.
- Synchronized generated TypeScript types with schema updates.
- Replaced all direct `process.env` references with `Config` class constants.
- Added `dotenv` package to manage environment variables.
- Updated affected files, including schema loader, Zabbix API, resolvers, logging system, and integration points.
- Improved maintainability and consistency in environment variable handling.
- Created README.md with project purpose, features, installation guide, and usage samples.
- Added LICENSE file with GNU Affero General Public License v3.0 to match Zabbix license.
- Added license field to package.json.
- Implemented GraphQL endpoints for importing, querying, and deleting Zabbix templates and template groups. - Added support for full template data import, including items, preprocessing steps, tags, and linked templates. - Implemented dependent item support by deferred creation logic in the template importer. - Added ability to query templates and template groups with name pattern filtering (supporting Zabbix wildcards). - Implemented batch deletion for templates and template groups by ID or name pattern. - Improved error reporting by including detailed Zabbix API error data in GraphQL responses. - Added comprehensive unit and integration tests covering all new functionality. - Provided GraphQL sample queries and mutations in the 'docs' directory for all new endpoints.