Releases: LexioJ/integration_itop
iTop Integration v1.3.1
Release v1.3.1
This release includes important security enhancements to strengthen the application's defenses.
-
Replaced direct cURL usage with Nextcloud's IClientService for proper SSL certificate verification
-
Enhanced input validation and sanitization for OQL query parameters
-
Improved data validation for numeric identifiers
-
Resolved issues related to network communication security
-
Strengthened protection against malicious input in database queries
iTop Integration v1.3.0
Release v1.3.0: Intelligent Notification System
Major new feature: Comprehensive notification system with 12 notification types (4 portal + 8 agent) providing smart, event-driven notifications with weekend-aware SLA warnings and zero duplicate detection.
Highlights:
- 12 notification types across Portal and Agent tracks
- Weekend-aware SLA warnings (Friday: 72h, Saturday: 48h)
- Crossing-time algorithm eliminates duplicate warnings
- 3-state admin control (Disabled/Forced/User Choice)
- Query optimization: Up to 100% API call reduction
- Rate limiting: Max 20 notifications per user per run
- Complete documentation: docs/NOTIFICATIONS.md (345 lines)
- Translations: EN, DE, DE_DE, FR
Portal Notifications (4 types):
- ticket_status_changed, agent_responded, ticket_resolved, agent_assigned
Agent Notifications (8 types):
- ticket_assigned, ticket_reassigned, team_unassigned_new
- ticket_tto_warning, ticket_ttr_warning, ticket_sla_breach
- ticket_priority_critical, ticket_comment
Technical:
- Dual background jobs (CheckPortalTicketUpdates, CheckAgentTicketUpdates)
- CMDBChangeOp detection leverages iTop's change tracking
- Minimal state storage (only timestamps)
- Smart caching: team memberships (30min), agent names (24h)
Breaking Changes: None
Migration: No user action required
See CHANGELOG.md and docs/NOTIFICATIONS.md for complete details.
v1.2.2 - Dynamic URL Routing Enhancement
What's Changed
Enhanced URL Routing π
This release improves how users are directed to iTop based on their profile, ensuring they land in the correct interface for their access level.
Changed
- Dynamic URL Routing: Enhanced
buildTicketUrl()method in ItopAPIService to route users to appropriate iTop interface:- Portal users: Automatically routed to portal URLs (
/pages/exec.php/object/edit/...) - Power users: Directed to admin UI URLs (
/pages/UI.php?operation=details...)
- Portal users: Automatically routed to portal URLs (
Technical Details
The URL routing is based on the user's is_portal_only setting, which is automatically detected and cached by ProfileService. This ensures that:
- Portal users always access tickets through the portal interface
- Agents and administrators use the full admin UI with complete functionality
- No manual configuration required - works automatically based on iTop profiles
Full Changelog: v1.2.1...v1.2.2
v1.2.1 - Bug Fixes and Enhancements
π Bug Fixes
- Connected Users Count: Fixed database query compatibility across different database drivers (MySQL, PostgreSQL, SQLite)
- Version Display: Fixed constant in admin settings by properly injecting IAppManager
- Search Time Formatting: Corrected translation string placeholders to use proper l10n format with positional parameters
- Admin Settings: Fixed version check endpoint returning 500 error
β¨ Enhancements
- Version Check Endpoint: New
/version-checkroute that automatically queries GitHub for the latest release and notifies admins of available updates - Local Access Rules Notice: Added helpful informational notice in admin settings about
allow_local_remote_serversconfiguration for private IP addresses (Nextcloud 30+), including:- Clear explanation of when this is needed
- Exact command to run
- Link to official Nextcloud documentation
- Translation Coverage: Added German (informal/formal) and French translations for time formatting strings (
%dm ago,%dh ago,%1$dh %2$dm ago, etc.)
π Localization
Updated translation files:
de.json- German informal (Du)de_DE.json- German formal (Sie)fr.json- French
v1.2.0 - Dual Dashboard System
π Release v1.2.0 - Dual Dashboard System
Overview
This major release introduces a comprehensive dual-dashboard system providing role-based views tailored for both portal users and IT agents within the iTop integration.
β¨ New Features
π₯οΈ Dual Dashboard Views
-
Portal Dashboard: Simplified view for end users tracking their created tickets
- Ticket counts by status (open, escalated, pending, resolved)
- Status breakdown with visual indicators
- Quick access to recent tickets
- Direct links to iTop for detailed views
-
Agent Dashboard: Operations-focused view for IT support staff
- Personal ticket queue (assigned to me)
- Team ticket queue (escalated tickets)
- SLA monitoring (TTO/TTR warnings and breaches)
- Upcoming changes calendar (30-day window)
- Real-time operational metrics
π§© Widget System
- Modular, reusable Vue components
- Consistent design language across all widgets
- Hover effects and interactive elements
- Loading states and error handling
- Responsive layouts
π Internationalization
- Complete German translations
- Complete English translations
- Consistent terminology across all components
π§ͺ Quality Assurance
- 49+ comprehensive unit tests covering:
- Dashboard display logic (portal vs agent)
- Service layer data retrieval
- SLA warning/breach detection
- Widget rendering accuracy
- Team queue statistics
- Upcoming changes sorting
π Technical Details
Backend Enhancements
- New API endpoints:
getDashboardData()andgetAgentDashboardData() - Service methods for SLA tracking, team queues, and change management
- Optimized database queries with caching support
- Weekend-aware SLA warning windows
Frontend Components
DashboardWidget.vue- Portal user dashboardAgentDashboard.vue- IT agent dashboard- Scoped CSS with consistent styling
- Error boundaries and fallback states
Documentation
- Complete API reference documentation
- Dashboard implementation guide
- Widget customization documentation
- Testing documentation
π§ Improvements
- Refactored component styles to scoped CSS
- Optimized hover effects and transitions
- Improved loading state indicators
- Enhanced error messaging
- Better mobile responsiveness
π¦ Installation
Requirements
- Nextcloud 28 or higher
- iTop 3.0 or higher
- PHP 8.1 or higher
Upgrade from v1.1.0
- Download and extract the release
- Replace the app directory
- Clear Nextcloud cache:
occ maintenance:repair - No database migrations required
π§ͺ Testing
All new features are covered by comprehensive unit tests. To run tests:
./vendor/bin/phpunit --filter=Dashboard tests/Unit/π Acknowledgments
Thanks to all contributors and testers who helped shape this release!
π Documentation
Full Changelog: v1.1.0...v1.2.0
v1.1.0 - Complete CMDB Integration
[1.1.0] - 2025-10-28
β¨ Major New Feature: Configuration Item (CI) Browsing
Version 1.1.0 adds complete CMDB integration, allowing users to search, browse, and preview Configuration Items alongside tickets.
Added
Core CI Functionality
- Configuration Item Browsing: Search and preview 11 CI classes (PC, Phone, IPPhone, MobilePhone, Tablet, Printer, Peripheral, PCSoftware, OtherSoftware, WebApplication, Software)
- Unified Search for CIs: Extended search bar to find CIs in addition to tickets with smart ranking (exact match β class priority β recency)
- Smart Picker for CIs: Insert CI references in Talk, Text app, and comments with intelligent suggestions
- Rich CI Previews: Paste iTop CI URLs for detailed hardware/software previews showing specs, contacts, and installed software
New Backend Services
- ProfileService: Automatic detection of Portal vs Power users with configurable caching (default: 30min)
- Portal users: See only CIs where they are listed as contacts
- Power users: Full CMDB access within iTop ACL
- PreviewMapper: Dedicated service for transforming iTop CI data to preview DTOs with PhysicalDevice field alignment
- CacheService: Distributed caching layer with 5 configurable TTL types for optimal performance
Admin Features
- CI Class Configuration: Enable/disable CI classes with 3-state control:
- Disabled: Hidden from all users
- Forced: Enabled for all users (no opt-out)
- User Choice: Enabled but users can opt-out in personal settings
- Cache Management UI: Configure cache TTLs for all cache types (CI Preview, Ticket Info, Search, Picker, Profile)
- TTL ranges: 10s-1h for previews, 10s-5min for search/picker
- "Clear All Cache" button for immediate refresh
- Recommended settings for different deployment sizes
Internationalization
- French Translation: Complete fr.json with all 280 strings (formal vous-form)
- German Translations: Both informal (de.json - Du-form) and formal (de_DE.json - Sie-form) variants
- 280 Translatable Strings: Comprehensive coverage of all UI elements, error messages, and settings
Visual Enhancements
- 11 CI Icons: Class-specific SVG icons for all CI types (PC, phone, printer, tablet, software, etc.)
- State-Specific Ticket Icons: Dynamic icons for closed, escalated, and deadline tickets
- Improved Mobile Responsiveness: Better layout for CI previews on small screens
Changed
Performance Improvements
- 60-80% Reduction in API Calls: Multi-layer caching with intelligent TTL management
- Optimized Search Queries: Class-specific OQL optimization (e.g., Software exactβwildcard, WebApplication includes URL)
- Distributed Caching: Redis-compatible caching for high-traffic deployments
UI/UX Enhancements
- Admin Settings Refactored: Converted from JavaScript-rendered to PHP-rendered HTML for better translation support and maintainability
- Reduced JavaScript from 1,234 to 561 lines (54% reduction)
- Server-side translations using
<?php p($l->t('...')); ?> - Better theme compatibility and accessibility
- Search Result Ranking: Enhanced algorithm with exact-match priority, class weighting, and recency scoring
- Reference Provider: Extended URL detection to support CI URLs in addition to ticket URLs
API & Architecture
- ItopAPIService: New methods for CI queries (
searchCIs(),getCIPreview()) with Person ID filtering - ItopSearchProvider: Extended to search both tickets and CIs with profile-aware filtering
- ItopReferenceProvider: Enhanced to detect and render rich previews for CI URLs
- Application.php: Centralized
SUPPORTED_CI_CLASSESconstant and CI class state management methods
Fixed
- CI Field Alignment: Corrected field lists to match iTop data model schema (removed invalid
last_updatefield) - Vite Output Directory: Fixed build configuration to correctly output to
js/instead ofjs/vue/ - Translation Loading: Resolved issue where JavaScript translations weren't loading in admin settings
Technical Details
New Configuration Keys
cache_ttl_ci_preview: CI preview cache TTL (default: 60s)cache_ttl_profile: Profile cache TTL (default: 1800s / 30min)cache_ttl_search: Search results cache TTL (default: 30s)cache_ttl_picker: Smart picker cache TTL (default: 60s)ci_class_config: JSON array of CI class states (disabled/forced/user_choice)
Database Changes
None - All new configuration stored in existing oc_appconfig table.
Migration Notes
- No user action required: Existing users continue to work with ticket-only functionality
- Admin opt-in: CI classes are disabled by default; admins must explicitly enable them
- Cache warmup: First CI search may be slower as caches populate
iTop Integration v1.0.0 - Complete ITSM Integration for Nextcloud
ποΈ Complete iTop ITSM Integration for Nextcloud
First stable release of the comprehensive iTop IT Service Management integration that brings ITSM functionality directly into your Nextcloud collaboration platform.
β¨ Key Features
π Dynamic Reference Provider
Transform iTop links into rich, interactive previews across Nextcloud apps:
- Rich Link Previews: Paste iTop ticket links in Talk, Deck, or Collectives for instant rich previews
- Detailed Information: View ticket status, priority, assignee, and description at a glance
- Smart Navigation: Direct links to full ticket details in iTop
- Universal Compatibility: Works across all Nextcloud apps that support rich content
π Unified Search Integration
Search your iTop tickets directly from Nextcloud's search bar:
- Quick Access: Find tickets without leaving Nextcloud
- Smart Results: Filter by ticket type (Incidents, User Requests) with status indicators
- Personal Scope: Only shows tickets you created or are assigned to
- Real-time Status: Live priority and status badges in search results
π― Smart Picker & Content Integration
Quick access to iTop content when creating or editing:
- Content Creation: Insert iTop references while writing in Text app or chatting in Talk
- Quick Browse: Access recent tickets and CIs with smart suggestions
- Rich Insertion: Add links that automatically become interactive previews
- Context Aware: Relevant suggestions based on your current work
βοΈ Professional Settings Dashboard
Real-time status monitoring for users:
- Secure Authentication: Token-based setup with one-time personal token validation
- Real-time Connection Status: Live monitoring of iTop connectivity
- User Profile Display: See your iTop identity (name, email, organization)
- Open Tickets Counter: Real-time count of Incidents + User Requests
- Notification Control: Configure alerts for new assignments and updates
π οΈ Enterprise Admin Panel
Comprehensive administration interface:
- Centralized Configuration: System-wide settings with encrypted token storage
- Connection Testing: Real-time validation of iTop server connectivity
- User Monitoring: Track connected users and system health
- Professional UI: Clean, theme-aware interface matching Nextcloud design
π Security & Architecture
Dual-Token Security Model:
- Application Token: Admin-level token (encrypted) for all API queries
- Personal Token: User-provided token for one-time identity verification (never stored)
- Person ID Mapping: Secure user identification without exposing sensitive data
- Data Isolation: All queries filtered by Person ID - users only see their own data
- Portal User Support: Works with SAML/external authentication via Portal Personal Tokens
Technical Architecture:
- Clean MVC structure with dedicated service layer
- Professional UI matching Nextcloud design standards
- Comprehensive error handling and logging
- Modular design for easy extension
π Requirements
- Nextcloud: Version 30.0 or higher
- iTop: Version 1.3+ with REST API enabled
- PHP: 8.1 or higher
- Optional: iTop Portal Personal Tokens Extension for enhanced Portal user support
π― Perfect For
- IT teams managing incidents and service requests
- Help desk agents tracking assigned tickets
- Service managers monitoring team workload
- End users checking their request status
- Organizations using both Nextcloud and iTop ITSM
π Installation
- Download and extract the app to your Nextcloud apps directory
- Enable the app:
sudo -u www-data php occ app:enable integration_itop - Configure admin settings: Settings β Administration β iTop Integration
- Users configure personal tokens: Settings β Personal β iTop Integration
π Documentation
Complete installation and configuration guide available in the README.md.
π License
This project is licensed under the AGPL-3.0 License.
Developed for seamless ITSM integration β’ Made with β€οΈ for the Nextcloud community