Skip to content

🎟️ Complete iTop ITSM integration for Nextcloud - iTop Integration with admin panel, personal settings, and ticket management

License

Notifications You must be signed in to change notification settings

LexioJ/integration_itop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

iTop Integration for Nextcloud

🎟️ Complete iTop ITSM & CMDB Integration - Seamlessly access tickets, incidents, and Configuration Items from your Nextcloud environment

Version License Nextcloud

A comprehensive Nextcloud integration that brings iTop IT Service Management and CMDB functionality directly into your collaboration platform. Users can search tickets, browse configuration items, and insert rich previewsβ€”all without leaving Nextcloud.


✨ Why Choose This Integration?

For End Users

  • πŸ” Instant Search - Find tickets and CIs from Nextcloud's search bar
  • πŸ”— Rich Previews - Paste iTop links anywhere for interactive previews
  • πŸ’¬ Smart Suggestions - Get CI/ticket recommendations while typing in Talk or Text
  • πŸ“Š Dashboard Widgets - Portal widget for personal tickets + Agent widget for operational metrics
  • πŸ”” Smart Notifications - 12 notification types with weekend-aware SLA warnings (Portal + Agent tracks)

For IT Teams

  • πŸ—οΈ CMDB Access - Browse Configuration Items (PCs, phones, printers, software)
  • πŸ‘₯ Profile-Aware - Portal users see only their assets; power users get full access
  • πŸ” Enterprise Security - Dual-token architecture with encrypted storage
  • ⚑ High Performance - Configurable caching (10s-1h TTLs)
  • 🌍 Multi-Language - English, German (Du/Sie), French

For Administrators

  • βš™οΈ Granular Control - Enable/disable CI classes per user or globally
  • πŸ“ˆ Scalable - Distributed caching for high-traffic deployments
  • πŸ›‘οΈ Secure by Design - Personal tokens never stored, Person ID filtering
  • 🎨 Professional UI - Clean interface matching Nextcloud design standards

πŸš€ Key Features

πŸ“Š Interactive Dashboard Widgets

Get comprehensive overviews of your ticket queue directly on your Nextcloud dashboard. The integration provides two specialized widgets that adapt to your user profile:

Dashboard Widget

🎫 Portal Widget - "iTop"

For All Users - Track your personal tickets at a glance

Features:

  • Compact Status Overview: See total tickets with badge breakdown (open, escalated, pending, resolved)
  • Recent Ticket Feed: Display 4 most recent tickets sorted by last update
  • Visual Status Indicators: State-specific SVG icons (new, escalated, deadline, closed) for both Incidents and UserRequests
  • Inline Metadata: Status emoji (πŸ†•πŸ‘₯β³βš οΈβœ…β˜‘οΈβŒ), priority emoji (πŸ”΄πŸŸ πŸŸ‘πŸŸ’), and relative timestamps with tooltips
  • Rich Hover Details: Comprehensive ticket information on hover including reference, dates, and sanitized description
  • One-Click Access: Click any ticket to open directly in iTop
  • Quick Actions: Refresh dashboard and create new tickets without leaving Nextcloud
  • Responsive Design: Mobile-optimized layout adapts to all screen sizes

πŸ‘¨β€πŸ’Ό Agent Widget - "iTop - Agent Dashboard"

For Agent Users Only - Comprehensive operational dashboard

Features:

  • My Work: Count of assigned incidents and requests
  • Team Queue: Team-wide ticket counts (incidents and requests)
  • SLA Tracking:
    • SLA Warnings (TTO/TTR approaching)
    • SLA Breaches (TTO/TTR exceeded)
  • Change Management:
    • Upcoming changes with time windows
    • Emergency/Normal/Routine change types
    • Current and planned change status
  • Quick Navigation: Click metrics to jump to filtered iTop views
  • Real-Time Counts: Live ticket counts with visual indicators (info, warning, error)
  • Responsive Grid: 2x2 metrics layout adapting to screen size

Widget Visibility:

  • Portal Users (is_portal_only = true): See only Portal Widget
  • Agent Users (is_portal_only = false): See both Portal Widget and Agent Widget
  • Automatically controlled by iTop user profiles

Perfect for:

  • Portal Widget: End users tracking their personal requests
  • Agent Widget: IT agents managing workload, SLA compliance, and team coordination
  • Both: Managers needing both personal and operational views

πŸ”— Dynamic Reference Provider

Transform iTop links into rich, interactive previews across Nextcloud apps (Talk, Deck, Text, Collectives).

Dynamic Reference Provider

What You Get:

  • Tickets: Status, priority, assignee, caller, description, timestamps
  • Configuration Items: Hardware specs (CPU, RAM), software details, contact count
  • Smart Icons: State-specific ticket icons (closed, escalated, deadline)
  • CI Icons: Class-specific icons for all 11 CI types (PC, phone, printer, etc.)
  • Universal Support: Works across all Nextcloud apps supporting rich content

πŸ” Unified Search Integration

Search your iTop tickets and Configuration Items directly from Nextcloud's unified search bar.

Unified Search

Search Capabilities:

  • Tickets: UserRequest, Incident - by title, description, reference number
  • Configuration Items: PC, Phone, Tablet, Printer, Software, WebApplication
  • Smart Ranking: Exact matches first, then class weighting, then recency
  • Profile-Aware: Portal users see only related CIs; power users get full CMDB
  • Real-Time Status: Live priority badges and status indicators
  • Performance: Results cached (30s default) for instant response

🎯 Smart Picker Integration

Quick access to tickets and CIs when creating documents or chatting.

Smart Picker

Features:

  • Context-Aware Suggestions: Recent tickets and CIs based on your work
  • Dual Search: Find both tickets and Configuration Items
  • Rich Insertion: Insert links that automatically become interactive previews
  • Talk/Text Integration: Works seamlessly in chat and document editing
  • Debounced Queries: Performance-optimized with intelligent caching

πŸ“Š Configuration Item (CI) Browsing

NEW in v1.1.0 - Complete CMDB integration with 11 supported CI classes:

End User Devices

  • PC - Desktops and laptops with hardware specs (CPU, RAM, OS)
  • Phone/IPPhone/MobilePhone - Telephony devices with phone numbers and IMEI
  • Tablet - Mobile tablet devices
  • Printer - Network and local printers
  • Peripheral - Monitors, keyboards, mice, and other peripherals

Software & Applications

  • PCSoftware - Desktop/server software with version and license info
  • OtherSoftware - Miscellaneous software installations
  • WebApplication - Web-based applications with URLs

Profile-Based Permissions:

  • Portal Users: See only CIs where they are listed as contacts (strict filtering)
  • Power Users: Full CMDB access within iTop ACL permissions
  • Configurable: Admins control which CI classes are searchable

πŸ”” Intelligent Notification System

NEW in v1.3.0 - Comprehensive notification system with 12 types across Portal and Agent tracks.

Portal Notifications (4 types for all users):

  • ticket_status_changed - Track ticket lifecycle from new to resolved
  • ticket_resolved - Resolution notifications
  • agent_assigned - When an agent is assigned to your ticket
  • agent_responded - New public comments from IT agents

Agent Notifications (8 types for IT staff):

  • team_unassigned_new - New unassigned tickets in your team's queue
  • ticket_assigned / ticket_reassigned - Ticket assignment changes
  • ticket_tto_warning / ticket_ttr_warning - SLA warnings with escalating urgency (⏰ 24h β†’ ⚠️ 12h β†’ 🟠 4h β†’ πŸ”΄ 1h)
  • ticket_sla_breach - SLA deadline exceeded alerts
  • ticket_priority_critical - Critical priority escalations
  • ticket_comment - All comments on your tickets (public + private)

Smart Features:

  • Weekend-Aware: Friday uses 72h threshold, Saturday 48h to catch Monday/Tuesday breaches
  • Zero Duplicates: Crossing-time algorithm prevents repeated warnings for same SLA level
  • Configurable Intervals: Check frequency from 5-1440 minutes (default: 15 min)
  • 3-State Control: Admin can set notifications as Disabled/Forced/User Choice
  • Profile-Based: Portal users see only portal notifications; agents get both tracks

See docs/NOTIFICATIONS.md for complete setup and troubleshooting guide.

βš™οΈ Personal Settings Dashboard

Professional user configuration with real-time status monitoring.

Personal Settings

Your Control Panel:

  • Connection Status: Real-time indicator with connectivity testing
  • User Profile: See your iTop identity (name, email, organization, profiles)
  • Ticket Counter: Open incidents and user requests at a glance
  • Secure Setup: Token-based authentication with one-time personal token validation
  • Feature Toggles: Enable/disable search, portal notifications, and agent notifications individually
  • Granular Control: Per-notification-type toggles for User Choice notifications
  • Clean Interface: Professional theme-aware design

πŸ› οΈ Admin Configuration Panel

Comprehensive administration interface for system-wide configuration.

Admin Settings - Connection Status Admin Settings - Connection Configurations Admin Settings - Class Configurations Admin Settings - Notification Configurations Admin Settings - Cache Settings Administrative Features:

  • Connection Management: iTop URL, display name, application token (encrypted)
  • CI Class Configuration: Enable/disable CI classes with 3-state control:
    • Disabled: CI class hidden from all users
    • Forced: Enabled for all users (no opt-out)
    • User Choice: Enabled but users can opt-out in personal settings
  • Notification Configuration: Enable/disable Notifications with 3-state control:
    • Disabled: Notification is hidden from all users
    • Forced: Enabled for all users (no opt-out)
    • User Choice: Enabled but users can opt-out in personal settings
  • Cache Performance Tuning: Configurable TTLs for all cache types
    • CI Preview Cache: 10s-1h (default: 60s)
    • Ticket Info Cache: 10s-1h (default: 60s)
    • Search Results Cache: 10s-5min (default: 30s)
    • Smart Picker Cache: 10s-5min (default: 60s)
    • Profile Cache: 10s-1h (default: 30min)
  • Cache Management: Clear all cache button for immediate refresh
  • Connection Testing: Real-time validation of server connectivity
  • User Monitoring: See how many users are connected
  • Professional UI: Clean, theme-aware interface

πŸ” Security Architecture

Dual-Token Approach

Maximum security with user convenience:

Application Token (Admin-configured)

  • Administrator-level token stored encrypted
  • Used for all iTop API queries
  • Never exposed to end users
  • Rotatable without disrupting user sessions

Personal Token (User-provided)

  • Provided once during setup for identity verification
  • Never stored - discarded immediately after validation
  • Maps Nextcloud user to iTop Person ID
  • Supports Portal users via iTop Portal Personal Tokens Extension

Data Isolation

  • Person ID Filtering: All queries filtered by user's Person ID
  • Profile-Based Access: Portal vs power user detection with caching
  • No Data Leakage: Users only see their own tickets and permitted CIs
  • Encrypted Storage: Application token encrypted with Nextcloud ICrypto
  • Audit Trail: All API calls logged with user context

πŸ“¦ Installation

Prerequisites

Quick Setup

Step 1: Install the App

# Place in apps directory
cd /path/to/nextcloud/apps
git clone https://github.com/lexioj/integration_itop.git
cd integration_itop

# Install dependencies and build
composer install --no-dev
npm install
npm run build

# Enable the app
sudo -u www-data php /path/to/nextcloud/occ app:enable integration_itop

Step 2: Admin Configuration

  1. Navigate to Settings β†’ Administration β†’ iTop Integration
  2. Create Application Token in iTop:
    • Login as Administrator
    • Go to Admin Tools β†’ User Accounts β†’ + New... β†’ Application Token
    • Configure:
      • Person: Select admin user
      • Profiles: βœ… Administrator + βœ… REST Services User
      • Remote Application: "Nextcloud Integration"
      • Scope: βœ… REST/JSON
    • Save and copy the generated token (shown only once!)
  3. Configure in Nextcloud:
    • iTop Server URL: https://itop.company.com
    • Application Token: Paste the token from step 2
    • User-Facing Name: Customize display name (default: "iTop")
    • Click Test Connection to verify
  4. Configure CI Classes (optional):
    • Enable/disable specific CI classes
    • Set access levels (disabled/forced/user_choice)
  5. Tune Performance (optional):
    • Adjust cache TTLs based on your environment
    • Default values work for most deployments

Step 3: User Setup

Each user must create a personal token for identity verification:

For Portal Users (requires Portal Personal Tokens Extension):

  1. Login to iTop Portal
  2. Go to My Profile β†’ Personal Tokens
  3. Create token with REST/JSON scope
  4. Copy token immediately

For Regular Users:

  1. Login to iTop
  2. Go to My Account β†’ Personal Tokens
  3. Create token:
    • Scope: βœ… REST/JSON
    • Expiration: Never or set expiration
  4. Copy token immediately

In Nextcloud:

  1. Go to Settings β†’ Personal β†’ iTop Integration
  2. Paste your personal token
  3. Click Save - token validates your identity and is discarded
  4. View your dashboard with real-time status

πŸ—οΈ Technical Architecture

Core Components

lib/
β”œβ”€β”€ AppInfo/
β”‚   └── Application.php              # App bootstrap, CI class configuration
β”œβ”€β”€ Controller/
β”‚   β”œβ”€β”€ ConfigController.php         # Settings, validation, cache management
β”‚   └── ItopAPIController.php        # REST endpoints for tickets/CIs
β”œβ”€β”€ Service/
β”‚   β”œβ”€β”€ ItopAPIService.php           # Core iTop REST API integration
β”‚   β”œβ”€β”€ ProfileService.php           # Portal vs power user detection (cached)
β”‚   β”œβ”€β”€ PreviewMapper.php            # Transform iTop objects β†’ preview DTOs
β”‚   └── CacheService.php             # Distributed caching layer
β”œβ”€β”€ Reference/
β”‚   └── ItopReferenceProvider.php    # Rich link previews (tickets + CIs)
β”œβ”€β”€ Search/
β”‚   └── ItopSearchProvider.php       # Unified search (tickets + CIs)
β”œβ”€β”€ Dashboard/
β”‚   └── ItopWidget.php               # Dashboard widget
β”œβ”€β”€ Settings/
β”‚   β”œβ”€β”€ Admin.php                    # Admin configuration panel
β”‚   └── Personal.php                 # User settings interface
β”œβ”€β”€ Notification/
β”‚   └── Notifier.php                 # Notification system (12 types)
└── BackgroundJob/
    β”œβ”€β”€ CheckPortalTicketUpdates.php # Portal notification processor
    └── CheckAgentTicketUpdates.php  # Agent notification processor

src/
└── views/
    └── ReferenceItopWidget.vue      # Rich preview Vue component

API Integration

  • REST API Version: 1.3+
  • Authentication: Token-based (Auth-Token header)
  • Query Method: POST with form-encoded JSON data
  • Response Format: JSON with object arrays
  • Security: All queries filtered by Person ID
  • Caching: Multi-layer with configurable TTLs

Supported iTop Objects

  • Tickets: UserRequest, Incident
  • Configuration Items: PC, Phone, IPPhone, MobilePhone, Tablet, Printer, Peripheral, PCSoftware, OtherSoftware, WebApplication, Software
  • Persons: User profile information
  • Organizations: Company/department info

🌍 Internationalization (l10n)

280 translatable strings across the entire application:

Supported Languages

  • English (en) - Base language
  • German Informal (de) - Du-form for casual environments
  • German Formal (de_DE) - Sie-form for professional environments
  • French (fr) - Formal vous-form

Translation Coverage

  • Admin settings (all labels, hints, errors)
  • Personal settings (status messages, forms)
  • Search results and previews
  • Error messages and validation
  • Cache settings and CI classes
  • Time formats and relative dates

Contributing Translations

See docs/l10n.md for translation guidelines and process.


πŸ”§ Performance Tuning

Cache Configuration

Adjust cache TTLs in Admin Settings β†’ Cache & Performance:

Development/Testing (frequent changes):

  • CI Preview: 10s
  • Search Results: 10s
  • Profile Cache: 60s

Production (stable) (balance):

  • CI Preview: 60s (default)
  • Search Results: 30s (default)
  • Profile Cache: 30min (default)

High-Traffic (performance priority):

  • CI Preview: 1h
  • Search Results: 5min
  • Profile Cache: 1h

Shared CMDB (freshness priority):

  • CI Preview: 10s
  • Search Results: 10s
  • Profile Cache: 5min

Recommended Settings

  • Small Deployments (<100 users): Use defaults
  • Medium Deployments (100-1000 users): Increase CI/Profile cache to 5-15min
  • Large Deployments (>1000 users): Max out cache TTLs, use dedicated Redis

πŸ“‹ What's New in v1.3.0

Major New Feature: Intelligent Notification System πŸŽ‰

Added

  • 12 Notification Types: 4 Portal + 8 Agent notification types for comprehensive ticket tracking
  • Weekend-Aware SLA Warnings: Friday uses 72h, Saturday 48h thresholds to prevent Monday breach surprises
  • Crossing-Time Algorithm: Zero duplicate warnings with smart threshold detection (24h/12h/4h/1h)
  • Dual Background Jobs: Independent Portal and Agent notification processors (5-min intervals)
  • 3-State Admin Control: Configure each notification type as Disabled/Forced/User Choice
  • Granular User Control: Per-type toggles in personal settings with master enable/disable
  • Team Queue Detection: Agent notifications for new unassigned tickets in team queues
  • SLA Breach Alerts: Critical alerts when TTO/TTR deadlines exceeded
  • Priority Escalation: Automatic notifications when tickets reach critical priority
  • OCC Testing: Enhanced itop:notifications:test-user with --agent/--portal/--reset flags
  • Comprehensive Documentation: New docs/NOTIFICATIONS.md with setup, FAQ, and troubleshooting

Changed

  • Notification Display: Escalating emoji icons based on urgency (⏰ β†’ ⚠️ β†’ 🟠 β†’ πŸ”΄ β†’ 🚨)
  • Personal Settings: Agent notification section (only visible to non-portal users)
  • Query Optimization: Up to 100% API call reduction when notification types disabled
  • Rate Limiting: Max 20 notifications per user per run prevents notification spam
  • Translation Coverage: Added 16 new strings for agent notifications in all supported languages

Previous Release: v1.2.0 - Dual Dashboard System

Highlights:

  • Portal Widget for personal ticket tracking
  • Agent Widget with SLA tracking and change management
  • Profile-based display with mobile optimization

Previous Release: v1.1.0 - Configuration Item (CI) Browsing

Highlights:

  • CI Support in Search, Smart Picker, and Rich Previews (11 CI classes)
  • Profile Service with automatic Portal vs Power user detection
  • Admin CI Configuration with 3-state control
  • Multi-language support: French, German (Du/Sie)
  • 60-80% reduction in API calls with multi-layer caching

See CHANGELOG.md for complete details.


πŸ†˜ Support & Troubleshooting

Common Issues

Connection failed

  • βœ… Verify iTop server URL is correct and accessible
  • βœ… Check application token has Administrator + REST Services User profiles
  • βœ… Ensure iTop REST API is enabled (allow_rest_services_via_tokens)

User not configured

  • βœ… Create personal token with REST/JSON scope
  • βœ… Verify token was saved successfully in personal settings
  • βœ… Check Nextcloud logs for validation errors

Search not working

  • βœ… Ensure person_id is configured (check personal settings)
  • βœ… Verify search is enabled in personal settings
  • βœ… Check CI classes are enabled in admin settings

Notifications not working

  • βœ… Initialize background jobs after app installation (see docs/NOTIFICATIONS.md)
  • βœ… Verify cron.php is running every 5 minutes
  • βœ… Check notification types are not disabled in admin settings
  • βœ… Ensure personal settings have notifications enabled

Links not previewing

  • βœ… Clear browser cache and Nextcloud cache
  • βœ… Verify URL matches iTop instance configured
  • βœ… Check if user has permission to view the ticket/CI

Portal users can't see CIs

  • βœ… Portal users only see CIs where they are listed as contacts
  • βœ… Verify contact assignments in iTop
  • βœ… Check ProfileService cache hasn't expired

Debugging

# Check Nextcloud logs
tail -f /path/to/nextcloud/data/nextcloud.log | grep itop

# Clear application cache
sudo -u www-data php occ config:app:delete integration_itop cache_ttl_ci_preview

# Test iTop API connectivity
curl -X POST https://itop.company.com/webservices/rest.php \
  -H "Auth-Token: YOUR_TOKEN" \
  -d "json_data={\"operation\":\"list_operations\"}"

Getting Help


πŸ—ΊοΈ Roadmap

v1.2.0 (Released 2025-11-01) βœ…

  • Enhanced Dashboard Widget with charts and filters
  • Dual dashboard system (Portal + Agent widgets)
  • SLA tracking and team metrics

v1.3.0 (Released 2025-11-08) βœ…

  • Notification system with 12 types (Portal + Agent)
  • Weekend-aware SLA warnings
  • Background jobs for automated notification delivery

v1.4.0 (Next Release)

  • Advanced search filters (date ranges, custom fields)
  • Newsroom mirroring for broadcast notifications

Future

  • Ticket creation from Nextcloud
  • CI relationship browser (dependencies, impacts)
  • Email digest for notifications
  • Additional CI classes (Server, VirtualMachine, Network Device)
  • API rate limiting improvements
  • More languages (Spanish, Italian, Dutch, Portuguese)

🀝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone the repository
git clone https://github.com/lexioj/integration_itop.git
cd integration_itop

# Install dependencies
composer install
npm install

# Start development build (watch mode)
npm run dev

# Run tests
composer test
npm run test

Translation Contributions

We especially welcome translations! See docs/l10n.md for the complete translation guide.


πŸ“„ License

This project is licensed under the AGPL v3 License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Nextcloud Community for the amazing collaboration platform
  • iTop/Combodo for the powerful ITSM solution
  • Contributors who helped with translations, testing, and feedback

Transform your ITSM workflow β€’ Made with ❀️ for the Nextcloud and iTop communities

Star on GitHub Report Bug Request Feature

About

🎟️ Complete iTop ITSM integration for Nextcloud - iTop Integration with admin panel, personal settings, and ticket management

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •