docs: refactor documentation and upgrade to Node.js 24

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.
This commit is contained in:
Andreas Hilbig 2026-01-30 14:34:09 +01:00
parent 4ec61ffba1
commit a01bfabfba
28 changed files with 395 additions and 170 deletions

View file

@ -13,7 +13,7 @@ interface DeviceValueMessage {
"""
Represents the timestamp at which a specific event, message, or data point was created or recorded.
The format should align with standard expectations (e.g., ISO 8601).
The format should align with standard expectations (e.g. ISO 8601).
"""
timestamp: String

View file

@ -74,7 +74,7 @@ type OperationalDeviceData {
temperature: Float
"""Device voltage."""
voltage: Float
"""Signal strength (e.g., WiFi or GSM)."""
"""Signal strength (e.g. WiFi or GSM)."""
signalstrength: Float
"""Current location of the device."""
location: Location

View file

@ -12,7 +12,7 @@ type SensorDistanceValue implements DeviceValue {
"""
Represents the MAC address of the device. Typically formatted as a 12-character
hexadecimal string (e.g., "00:1A:2B:3C:4D:5E").
hexadecimal string (e.g. "00:1A:2B:3C:4D:5E").
"""
mac: String

View file

@ -85,7 +85,7 @@ type Mutation {
deleteTemplates(
"""List of template IDs to delete."""
templateids: [Int!],
"""Wildcard name pattern for templates to delete (e.g., 'Template%')."""
"""Wildcard name pattern for templates to delete (e.g. 'Template%')."""
name_pattern: String
): [DeleteResponse!]
@ -189,7 +189,7 @@ input CreateTemplateItem {
"""
name: String!
"""
Zabbix item type (e.g., 0 for Zabbix Agent, 18 for Dependent).
Zabbix item type (e.g. 0 for Zabbix Agent, 18 for Dependent).
"""
type: Int
"""
@ -197,11 +197,11 @@ input CreateTemplateItem {
"""
key: String!
"""
Type of information (e.g., 0 for Float, 3 for Int, 4 for Text).
Type of information (e.g. 0 for Float, 3 for Int, 4 for Text).
"""
value_type: Int
"""
History storage period (e.g., '2d', '90d').
History storage period (e.g. '2d', '90d').
"""
history: String
"""
@ -245,7 +245,7 @@ Input for an item preprocessing step.
"""
input CreateItemPreprocessing {
"""
Type of preprocessing step (e.g., 12 for JSONPath, 21 for JavaScript).
Type of preprocessing step (e.g. 12 for JSONPath, 21 for JavaScript).
"""
type: Int!
"""
@ -477,7 +477,7 @@ input UserRoleInput {
"""
name: String
"""
Type of role (e.g., 1 for User, 2 for Admin, 3 for Super Admin).
Type of role (e.g. 1 for User, 2 for Admin, 3 for Super Admin).
"""
type: Int
"""
@ -515,7 +515,7 @@ input UserRoleRulesInput {
"""
api_access: Int
"""
API mode (e.g., 0 for white-list, 1 for black-list).
API mode (e.g. 0 for white-list, 1 for black-list).
"""
api_mode: Int
"""
@ -541,7 +541,7 @@ input UserRoleRuleInput {
"""
name: String
"""
Status (e.g., 1 for enabled, 0 for disabled).
Status (e.g. 1 for enabled, 0 for disabled).
"""
status: Int
}

View file

@ -72,7 +72,7 @@ type ZabbixItem {
"""
lastvalue: String
"""
Type of information (e.g., 0 for Float, 3 for Int, 4 for Text).
Type of information (e.g. 0 for Float, 3 for Int, 4 for Text).
"""
value_type: Int!
"""