|
1 | | -# Nextcloud iTop integration |
| 1 | +# iTop Integration for Nextcloud |
2 | 2 |
|
3 | | -🎫 iTop integration into Nextcloud |
| 3 | +🎟️ **Complete iTop ITSM Integration** - Seamlessly connect your Nextcloud with iTop IT Service Management |
4 | 4 |
|
5 | | -This app provides integration between Nextcloud and iTop IT Service Management platform. It allows users to: |
| 5 | +A comprehensive Nextcloud integration that brings iTop ITSM functionality directly into your Nextcloud environment, enabling users to access tickets, incidents, and configuration items without leaving their collaboration platform. |
6 | 6 |
|
7 | | -- View assigned tickets on the Nextcloud dashboard |
8 | | -- Search for tickets and configuration items from Nextcloud's unified search |
9 | | -- Get notifications for new assigned tickets |
10 | | -- Rich previews of iTop links in Nextcloud apps |
| 7 | +## ✨ Key Features |
11 | 8 |
|
12 | | -## Features |
| 9 | +### 🔗 Dynamic Reference Provider |
| 10 | +Transform iTop links into rich, interactive previews across Nextcloud apps (Talk, Deck, Collectives, etc.). |
13 | 11 |
|
14 | | -- **Dashboard widget**: Shows your assigned tickets and recent activity |
15 | | -- **Unified search**: Search tickets, incidents, and CIs directly from Nextcloud |
16 | | -- **Notifications**: Get notified when new tickets are assigned to you |
17 | | -- **Rich references**: Share iTop links with rich previews in Talk and other apps |
| 12 | + |
18 | 13 |
|
19 | | -## Configuration |
| 14 | +**Features:** |
| 15 | +- Automatic link detection and rich preview generation |
| 16 | +- Detailed ticket information display |
| 17 | +- Status indicators and priority badges |
| 18 | +- Direct navigation to iTop |
| 19 | +- Works in Talk chats, Deck cards, and Collectives documents |
20 | 20 |
|
21 | | -### Admin settings |
22 | | -1. Go to Settings > Administration > Connected accounts |
23 | | -2. Configure your iTop server URL and admin settings |
| 21 | +### 🔍 Unified Search Integration |
| 22 | +Search your iTop tickets and CIs directly from Nextcloud's unified search bar. |
24 | 23 |
|
25 | | -### User settings |
26 | | -1. Go to Settings > Connected accounts |
27 | | -2. Enter your iTop server URL (if not set by admin) |
28 | | -3. Configure your personal API token from iTop |
| 24 | + |
29 | 25 |
|
30 | | -### iTop API Token Setup |
31 | | -1. Log into your iTop instance |
32 | | -2. Go to "My Account" menu |
33 | | -3. Generate a personal API token with appropriate scopes |
34 | | -4. Copy and paste the token into Nextcloud settings |
| 26 | +**Features:** |
| 27 | +- Search tickets by title, description, or reference number |
| 28 | +- Filter results by ticket type (Incidents, User Requests) |
| 29 | +- Real-time status and priority indicators |
| 30 | +- Quick access to ticket details |
| 31 | +- Searches tickets you created or are assigned to |
35 | 32 |
|
36 | | -## Requirements |
| 33 | +### 🎯 Smart Picker Integration |
| 34 | +Quick access to iTop content when creating or editing documents and communications. |
37 | 35 |
|
38 | | -- Nextcloud 30+ |
39 | | -- iTop with REST/JSON API enabled |
40 | | -- iTop Authentication by Token extension installed |
| 36 | + |
| 37 | + |
| 38 | +**Features:** |
| 39 | +- Browse recent tickets and CIs |
| 40 | +- Search and filter functionality |
| 41 | +- Insert references with rich previews |
| 42 | +- Context-aware suggestions |
| 43 | +- Seamless integration with Text app and Talk |
| 44 | + |
| 45 | +### ⚙️ Personal Settings Dashboard |
| 46 | +Professional user configuration with real-time status monitoring. |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +**Features:** |
| 51 | +- Secure token-based authentication |
| 52 | +- Real-time connection status |
| 53 | +- User profile information display |
| 54 | +- Open tickets counter (Incidents + User Requests) |
| 55 | +- Notification preferences management |
| 56 | +- Clean, intuitive interface |
| 57 | + |
| 58 | +### 🛠️ Admin Configuration Panel |
| 59 | +Comprehensive administration interface for system-wide configuration. |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | +**Features:** |
| 65 | +- Application token management (encrypted storage) |
| 66 | +- Connection testing and validation |
| 67 | +- User-facing name customization |
| 68 | +- Connected users monitoring |
| 69 | +- Professional, theme-aware UI |
| 70 | + |
| 71 | +## 🔐 Security Architecture |
| 72 | + |
| 73 | +**Dual-Token Approach:** |
| 74 | +- **Application Token**: Admin-level token (encrypted) for all data queries |
| 75 | +- **Personal Token**: User-provided token for one-time identity verification only (never stored) |
| 76 | +- **Person ID Mapping**: Secure user identification without exposing sensitive data |
| 77 | +- **Data Isolation**: All queries filtered by Person ID to ensure users only see their own data |
| 78 | +- **Portal User Support**: Works with SAML/external authentication through iTop Portal Personal Tokens extension |
| 79 | + |
| 80 | +## 🚀 Installation |
| 81 | + |
| 82 | +### Prerequisites |
| 83 | +- Nextcloud 30.0 or higher |
| 84 | +- iTop with REST API enabled (version 1.3+) |
| 85 | +- PHP 8.1 or higher |
| 86 | +- [iTop Portal Personal Tokens Extension](https://github.com/LexioJ/itop-portal-personal-tokens) (recommended for Portal users) |
| 87 | + |
| 88 | +### Quick Setup |
| 89 | +1. **Install the app**: |
| 90 | + ```bash |
| 91 | + # Place in apps directory and enable |
| 92 | + sudo -u www-data php occ app:enable integration_itop |
| 93 | + ``` |
| 94 | + |
| 95 | +2. **Configure admin settings** (Settings → Administration → iTop Integration): |
| 96 | + - Enter your iTop server URL |
| 97 | + - Add application token (see configuration guide below) |
| 98 | + - Test connection |
| 99 | + |
| 100 | +3. **Users configure personal settings** (Settings → Personal → iTop Integration): |
| 101 | + - Add personal token for identity verification |
| 102 | + - Enable desired features (search, notifications) |
| 103 | + |
| 104 | +## ⚙️ Configuration Guide |
| 105 | + |
| 106 | +### Admin Configuration |
| 107 | + |
| 108 | +1. **Create Application Token in iTop**: |
| 109 | + - Login as Administrator in iTop |
| 110 | + - Navigate to: **Admin tools → User accounts → + New... → Application Token** |
| 111 | + - Configure: |
| 112 | + - **Person**: Select admin user |
| 113 | + - **Profiles**: **Administrator** + **REST Services User** |
| 114 | + - **Remote application**: "Nextcloud Integration" |
| 115 | + - **Scope**: **REST/JSON** |
| 116 | + - Save and copy the generated token (shown only once) |
| 117 | + |
| 118 | +2. **Configure in Nextcloud**: |
| 119 | + - Go to **Settings → Administration → iTop Integration** |
| 120 | + - Enter your iTop server URL (e.g., `https://itop.company.com`) |
| 121 | + - Paste the application token |
| 122 | + - Customize the user-facing name (default: "iTop") |
| 123 | + - Click "Test Connection" to verify |
| 124 | + |
| 125 | +### User Setup |
| 126 | + |
| 127 | +1. **Create Personal Token in iTop**: |
| 128 | + - **Portal Users**: Use "Personal Tokens" in My Profile (requires Portal Personal Tokens extension) |
| 129 | + - **Regular Users**: Navigate to **My Account → Personal Tokens** |
| 130 | + - Create token with **REST/JSON** scope |
| 131 | + - Copy token immediately (shown only once) |
| 132 | + |
| 133 | +2. **Configure Personal Settings**: |
| 134 | + - Go to **Settings → Personal → iTop Integration** |
| 135 | + - Paste your personal token |
| 136 | + - Click **Save** - the token validates your identity and is then discarded |
| 137 | + - View your real-time status dashboard |
| 138 | + |
| 139 | +## 🏗️ Technical Architecture |
| 140 | + |
| 141 | +### Core Components |
| 142 | +``` |
| 143 | +lib/ |
| 144 | +├── Controller/ |
| 145 | +│ ├── ConfigController.php # Settings and user validation |
| 146 | +│ └── ItopAPIController.php # API endpoints for tickets/CIs |
| 147 | +├── Service/ |
| 148 | +│ └── ItopAPIService.php # Core iTop API integration |
| 149 | +├── Reference/ |
| 150 | +│ └── ItopReferenceProvider.php # Dynamic link previews |
| 151 | +├── Search/ |
| 152 | +│ ├── ItopSearchProvider.php # Unified search integration |
| 153 | +│ └── ItopSearchResultEntry.php # Search result formatting |
| 154 | +├── Dashboard/ |
| 155 | +│ └── ItopWidget.php # Dashboard widget |
| 156 | +└── Settings/ |
| 157 | + ├── Admin.php # Admin configuration panel |
| 158 | + └── Personal.php # User settings interface |
| 159 | +``` |
| 160 | + |
| 161 | +### API Integration |
| 162 | +- **REST API Version**: 1.3+ |
| 163 | +- **Authentication**: Token-based (Auth-Token header) |
| 164 | +- **Query Method**: POST with form-encoded JSON data |
| 165 | +- **Response Format**: JSON with object arrays |
| 166 | +- **Security**: All queries filtered by Person ID for data isolation |
| 167 | + |
| 168 | +### Supported iTop Objects |
| 169 | +- **Tickets**: UserRequest, Incident |
| 170 | +- **Configuration Items**: FunctionalCI and subclasses |
| 171 | +- **Persons**: User profile information |
| 172 | +- **Organizations**: Company/department info |
| 173 | + |
| 174 | +## 🔧 Development |
| 175 | + |
| 176 | +### Architecture Principles |
| 177 | +- **Clean separation**: MVC pattern with dedicated service layer |
| 178 | +- **Security first**: Dual-token architecture prevents unauthorized access |
| 179 | +- **User experience**: Professional UI matching Nextcloud design standards |
| 180 | +- **Extensibility**: Modular design allows easy feature additions |
| 181 | + |
| 182 | +### Key Files for Extension |
| 183 | +- `ItopAPIService.php` - Add new API interactions here |
| 184 | +- `ItopAPIController.php` - Add new REST endpoints |
| 185 | +- `ItopReferenceProvider.php` - Customize link preview behavior |
| 186 | +- `ItopSearchProvider.php` - Extend search functionality |
| 187 | + |
| 188 | +### Testing Environment |
| 189 | +- Containerized development setup |
| 190 | +- Database backend compatibility testing |
| 191 | +- Comprehensive error handling and logging |
| 192 | + |
| 193 | +## 📋 Roadmap |
| 194 | + |
| 195 | +### ✅ v1.0.0 (Current Release) |
| 196 | +- [x] Dynamic Reference Provider with rich link previews |
| 197 | +- [x] Unified Search integration |
| 198 | +- [x] Smart Picker for content insertion |
| 199 | +- [x] Personal Settings dashboard |
| 200 | +- [x] Admin Configuration panel |
| 201 | +- [x] Secure dual-token authentication |
| 202 | +- [x] Dashboard widget for ticket overview |
| 203 | +- [x] Background notifications for new assignments |
| 204 | + |
| 205 | +### 🔄 Future Enhancements |
| 206 | +- [ ] Advanced filtering and sorting options |
| 207 | +- [ ] Ticket creation from within Nextcloud |
| 208 | +- [ ] Configuration Item browsing and management |
| 209 | +- [ ] Enhanced notification system with email digest |
| 210 | +- [ ] API rate limiting and caching improvements |
| 211 | +- [ ] Multi-language support expansion |
| 212 | + |
| 213 | +## 🆘 Support |
| 214 | + |
| 215 | +### Common Issues |
| 216 | +- **Connection failed**: Verify iTop server URL and application token |
| 217 | +- **User not configured**: Ensure personal token was created and validated |
| 218 | +- **Search not working**: Check that search is enabled in personal settings |
| 219 | +- **Links not previewing**: Verify reference provider is properly configured |
| 220 | + |
| 221 | +### Getting Help |
| 222 | +- Check the logs: `data/nextcloud.log` |
| 223 | +- Review iTop API logs for authentication issues |
| 224 | +- Ensure all prerequisites are met |
| 225 | +- Verify token permissions and scopes |
| 226 | + |
| 227 | +## 📄 License |
| 228 | + |
| 229 | +This project is licensed under the AGPL v3 License - see the [LICENSE](LICENSE) file for details. |
| 230 | + |
| 231 | +--- |
| 232 | + |
| 233 | +**Developed for seamless ITSM integration** • Made with ❤️ for the Nextcloud community |
0 commit comments