Skip to content

Enhancement: Contributing Multi-language Support, Modernized UI, and Security Refinements#1

Open
petersonbasso wants to merge 6 commits intoMonzphere:mainfrom
petersonbasso:main
Open

Enhancement: Contributing Multi-language Support, Modernized UI, and Security Refinements#1
petersonbasso wants to merge 6 commits intoMonzphere:mainfrom
petersonbasso:main

Conversation

@petersonbasso
Copy link
Copy Markdown

Hello! I would like to contribute some enhancements to the AI Integration module. My goal with this PR is to expand the module's capabilities by adding native multi-language support, refining the security model for enterprise environments, and introducing a modernized interface for analysis results.

These changes were designed to follow Zabbix's best practices while providing a more rich and intuitive experience for users.

Main Contributions

  1. Unified & Modernized UI/UX
  • Rich Text Support: Introduced a lightweight Markdown renderer, allowing AI responses to display structured data through tables, lists, and code blocks.
  • Modern Aesthetic: Updated the analysis modal with a clean, semi-transparent design that beautifully adapts to both Zabbix Light and Dark themes.
  • User Utilities: Added a "Copy Result" button and loading indicators to improve the overall workflow and perceived performance.
  1. Global Support & Multi-language
  • Integrated Language Selector: Users can now choose between Portuguese (Brazil) and English directly in the analysis header. The AI prompt has been adjusted to handle these preferences natively for better response quality.
  • Complete Coverage: These features are now available across all module views: Problems, Latest Data, Host Analysis, and Trigger Helper.
  1. Security & Architectural Refinements
  • Database-Driven Storage: Transitioned configuration storage to the Zabbix profiles table (CProfile). This aligns the module with standard Zabbix architecture by removing the need for local writable files.
  • Encryption Layer: Implemented AES-256-GCM encryption for API keys, managed by a flexible Master Key system (supporting Environment Variables, Global Macros, or secure database fallbacks).
  • Cross-Platform Compatibility: Adjusted directory casing to ensure seamless operation on Linux filesystems.

@matheusandrades
Copy link
Copy Markdown
Contributor

Hello @petersonbasso

The issue of using CProfile can be a problem, since the idea is that one key is used for all users, but only the super admin user can manage it. However, improving the cryptography of the key seems like a good security strategy.

As for the translation, the ideal is to use the language defined in the user's profile, using native Zabbix classes. I think we can deal with this in the coming days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants