Webinar: GLPI Native inventory

On June 22nd at 11.00 AM (Paris time) we are launching a webinar to talk about:

  • Native inventory
  • New types of inventoried objects
  • Partial inventory
  • Third-party connectors
  • Transition Plugin
  • Android agent
  • New GLPI agent
  • Packaging
  • Installation script
  • Remote inventory
  • HTTP interface (toolbox) & plugins
  • Mid-term roadmap
  • Q/A session

Speaker: Alexandre Delaunay, head of GLPI of Development team

Registration link: https://us02web.zoom.us/webinar/register/WN_LcEA0DzaT0m3vWasVbq8fQ

About GLPI license

GLPI v.10 includes since its latest release the native inventory feature (including GLPI agents also released during the year).
Inspired by previous project: FusionInventory and OCS (and using their XML format), – it aims to be a unified entry point for the inventory (by adding greater compatibility of all GLPI objects).

A complete rewrite directive had been one of the stated objectives (without code recovery) at the beginning of the development of the project.

Recently (after the release of the stable 10.0 version), it appeared that this functionality within GLPI included pieces of code from FusionInventory. As a development team we have been patently negligent about the copyrights of the previous project.
Moreover, there is an incompatibility between the license of GLPI (GPL-2.0-or-later) and FusionInventory (AGPL-3.0-or-later).

We apologize to the FusionInventory community for this situation. Teclib’ and its developers are also contributors to the project and are therefore included in this notion of copyright (mainly to the agent but also in part of the plugin).

Upcoming fixes.

A few changes will be made to address the situation:

The copyright of the Fusion Inventory project will be added to the source files concerned,
GLPI license (and source file headers) will be changed to GPL-3.0-or-later.
On this last point, it is possible because previous license contained “or later”. It allows us to switch from the current version 2 to later versions.
Compatibility between GPL-3.0 and AGPL-3.0 (Affero) is explicitly provided in the text of both licenses.

In addition to this change, we took the opportunity to check current uses in terms of libraries.
We have replaced some to resolve any incompatibilities following the switch to GPL-3.0-or-later.

DHTMLX/gantt was impossible to replace and the entire Gantt functionality was taken out of GLPI to be integrated into a dedicated plugin. There is normally no functional loss, you will simply need to install the plugin (via the Marketplace or manually) to recover previous displays.

These changes will come in effect in the next version of GLPI, which will be in a few weeks.

What is the impact of the new license?

A quick summary of the impact of these changes:

GLPI is, and will remain, completely free and open source, its code is always accessible and adaptable by everyone.
All projects wishing to share or re-use GLPI code must now do so with the GPL-3.0 or compatible license.

The mention “or later” of the news makes it possible to foresee the case where a version 4 of the GPL would become available.
If you are a GLPI user, the impact is probably zero.

We promise to be more vigilant in the future towards the compatibility of our code and the libraries that we use.

Jamf Plugin for GLPI and the value of open-source contributions.

Original post: https://www.jamf.com/blog/jamf-plugin-glpi-open-source/

Discover the background and future trajectory of the Jamf Plugin for GLPI, one of the many valuable tools available through the Jamf Marketplace. Independent developer Curtis Conard provides a first-hand account of its creation and the importance of open-source software.

The Jamf Marketplace is home to a wealth of helpful tools that extend the Jamf platform and connect it with third-party solutions and ecosystems. The independent developers who contribute these integrations and other tools play a vital role in cultivating Jamf’s global reach and interoperability. One such developer, Curtis Conard, has provided the account below of their creation of the Jamf Plugin for GLPI. Read on to learn what value the plugin adds and what developments can be expected in the future.

What is GLPI?

Gestionnaire Libre de Parc Informatique (GLPI) is a free automatic inventory asset and IT service management package. GLPI was originally created in 2003 by the INDEPNET Association and was transferred to Teclib’ (both based in France) in 2015.

Although GLPI is maintained by a French company, the default language in the software is English, and the activity on the GitHub page is in English as well; I think that this choice has helped the adoption of GLPI globally. There are currently community-contributed translations for 80 different languages.

Even though its focus is on asset management and help desk functionality, GLPI provides a wide variety of other tools such as:

  • Project management
  • Knowledge base
  • Software license management

Teclib’ offers paid professional support, both on premises and in the cloud, for the businesses that want the support or to offload the responsibility of hosting their GLPI instance. GLPI has remained free and open source under a GPL license from the start, and there is no difference to the core software if you decide to host it yourself or through the cloud.

GLPI has a large catalog of plugins that extend its functionality even more. While some of the plugins are available as part of the professional services agreement, most of them have been created by the community for free. At the moment, there are over 50 plugins that support the current version of GLPI.

The GLPI project just released version 10.0, marking a huge UI/UX upgrade for the project which helped streamline a lot of workflows, improve its usability of tablets and phones and more. It also adds a native automatic inventory system, supporting agent inventory and remote inventory, for many different types of devices.

There are multiple big features on the roadmap for future versions to improve its current offering and add new features like event management, power management for “green IT,” and more.

Why it matters that GLPI is open source

The open-source nature of GLPI allows users of the software to give something back to the project, whether that be bug fixes, new features, translations or documentation changes. Users are not required to pay for the core software or for the majority of the plugins, but those who do help keep paid developers on staff to keep the project alive and growing.

My professional background and experience with GLPI

This is where I come into the picture. I started using GLPI while I was working in the IT department at a local school district in 2014. In the summer of 2018, I started making code contributions to the software. This was in part because my work helped our department function more efficiently by adding much-needed features and changes, but it also allowed me to improve my skills in web development, which had been my original career choice.

From mid-2018 until the end of 2020, I worked voluntarily without any monetary compensation. At the end of 2020, I was brought on under contract with Teclib’ to be paid for my contributions. I finally made the decision in early 2022 to leave my IT job and focus on GLPI development full-time.

I can’t envision a scenario in which these transitions could have happened if GLPI wasn’t open source and funded by optional professional service agreements and cloud hosting. As I was developing the Jamf Plugin for GLPI, multiple improvements were contributed back to GLPI to accommodate it, including adding software and components to phones in the inventory which were previously mainly for older analog or VoIP phones.

As of now, I personally maintain six different plugins for GLPI. All of these are free to use and open source.

Jamf Plugin for GLPI description and background

In the summer of 2019, I started work on the Jamf Plugin for GLPI, focusing only on mobile device inventory as that was what we were using at the time. Previously, our department was copying inventory information for our 1,000+ iOS devices from Jamf to GLPI manually and through CSV exports/imports. That same summer, I presided over the first release of the plugin. I think I actually ended up spending less time that year creating the plugin than I spent manually importing the latest inventory data from Jamf to GLPI.

Later in 2019, the scope of the plugin expanded to include syncing extension attributes and issuing mobile device commands directly from GLPI. For the latter, users in GLPI could be linked to their Jamf Pro account so that they had access to the same commands in both systems. The purpose of this was to streamline certain workflows. For instance, if we got a ticket that a device was stolen, we could immediately view the asset in GLPI, issue an Enable Lost Mode command, mark it as Lost in our inventory system and then later view any location information all from that same page.

The next major version(s) came in 2020 alongside the release of GLPI 9.5. This added support for syncing additional information about iPhone and support for syncing computers.

Next steps for the plugin

For the future of the Jamf Plugin for GLPI, in the short term I have plans to add support for Jamf School sometime after the GLPI version 10.0 release, due to multiple requests from community members. Afterwards, new features will appear as the community requests them and as time permits. Even though I am paid for my GLPI contributions, this plugin is still a personal project, so it isn’t funded.

I am looking for contributions to the localization of the plugin. It currently features translations for English, French and Japanese. Completing the partial Spanish translation is a priority. I am also looking for users to test and give feedback on the plugin. This will help me to find issues that I could not, or to identify needed features.

GLPI 10.0: final release

Discover new interface

The main news of this version is a complete redesign of the interface and the user experience. The latest overhaul, dating back to version 0.90 was released in October 2015.

Based on tabler, Bootstrap 5 and Twig, this novelty brings many visual changes.
The integration of these standard libraries will make it easier to develop new interfaces and above all provides a “responsive” display mode that is easier to maintain.

Here are some screenshots to give you a preview:

Ecran de login
Liste des ordinateurs
Vue responsive

We also have made a certain number of improvements of the user experience within GLPI. Without getting into the details, here is the list of key points.

We hope you enjoy these changes.

Vertical menu

As you may have noticed with the previous captures, GLPI has now a default layout with a vertical menu on its left. If you still prefer a layout similar to previous versions (named Horizontal) you can find it in the the user preferences.

Disposition principale de GLPI

Now t is possible to collapse the menu in order to have a compact display.

Button “Go to…”

Present since version 9.2 of GLPI, the “Go to” button allows a quick search of a menu. Now you can find it on top of the menu, its keyboard shortcut recalled.

Menu Goto

Saved searches panel

The saved searches panel now is integrated to the GLPI design.
It can either be floating, as before, or pinned to pages, to be kept permanently (even during navigation).

Pinning is done on a page-by-page basis, a pinned panel for tickets will not be pinned for computers.

Note that it is now organized to present in the first tab, the saved searches corresponding to the type of object concerned: the list of tickets will display in priority order the saved searches concerning the tickets.
The second tab lists all the other searches concerning the other types of objects.

As the panel is now contextual to the type of object presented, access is via an icon named “Lists” present next to the breadcrumb.

Recherches sauvegardées

Invisible search engine

It is now possible to disable the display of the search engine.

Very practical because you can navigate in GLPI only thanks to your saved searches!

Dynamic loading of search results

The display of the search engine is now launched in “AJAX” mode. A loading icon is displayed when starting a search, changing pages or sorting. Once the new results are available, only the content is replaced and not the entire page.

Multi-sorting of results

With a “ctrl” you can add several sorts on the columns of your search results.

Example: sort by “Name” and by “Date modified”.

Tri multiple

Portfolio item sheet

The main element form now displays a panel on the right recalling the images associated with the corresponding model.
These images were previously used only in the display part of data center racks, they are now available everywhere.

fiche d'un ordinateur

New palettes

With the arrival of new libraries tabler and Bootstrap 5, it is now much easier to create and modify the palettes defining the colors of GLPI.

Here is sample palette file corresponding to the screenshot below:

2 new dark palettes are also available:

  • Auror darkpalette Auror dark
  • Midnightpalette Midnight

Redesign of ITIL objects

The display and use of ITIL objects (Tickets, Issues and Changes) were redesigned.

Redesign of ITIL objects

Many changes were made:

  • The order of messages in the “timeline” is now more natural. From oldest to newest, starting from top to bottom, we follow a usual reading order. The followup of an answer is also placed in the expected place, below the last answer.
  • A side panel contains the additional information of the tickets (dates, priority matrix, actors, etc.). This panel can be enlarged or collapsed.
right ticket´s panel size
  • Documents added to the timeline are now displayed below the parent object (track, task), in a contextual way for easier reading.
documents in their context
  • Each of the types of actors (requesters, observers and assigned) are now displayed in a single field. Previously, several clicks were needed to select a group or a user and then choose the final actor. It is now a single dropdown unifying all possible objects (differentiating them with an icon) and providing autocompletion.
champ acteur
  • A button at the bottom of the main view allows you to switch to a “TODO list” view displaying the tasks and validation requests in an interactive vertical list, allowing you to follow the progress of a ticket (or another ITIL object)
Vue TODO
  • From ITIL objects and their sub-objects (follow-ups, tasks), you have the option of “mentioning” a specific user from the text field.

The user who asked the question will be added as an observer of the object and a notification will be sent to him personally.
A new notification (and a corresponding event) named “New user mentioned” is added to your GLPI instance.

Mentions utilisateus

Follow-ups

You can now define the timeline for a follow-up.
In addition, an automatic reminder after a certain period and with recurrence can be defined in order to warn participants that a response from them is expected. It is also possible to plan an automatic resolution after a certain number of reminders.

Kanban for Helpdesk

This display mode previously only available in projects, is now accessible from the Helpdesk via dedicated icon next to the breadcrumb.

You can add columns corresponding to the statuses.
Attention, even if the “Closed” status is available, we will not display the relative data in order to prevent the execution time from taking too long. The column remains available to accommodate the object move.

Kanban pour les tickets

On this new page and also on the page of projects it is now possible to add criteria to filter the cards.

Filtres Kanban

Twig variables in Helpdesk templates

Follow-ups, tasks and solutions templates now support the addition of variables. These are replaced by their values ​​at the time of their use. For example, it is possible to use {{ticket.id}} in a template and when choosing the template in a follow-up, the variable is replaced by the ID of the current ticket.

Integrated documentation is available to know all the variables available.

Native inventory

We now support automatic inventory directly in GLPI.

A new REST API will be available (directly in the GLPI index) to receive inventory files in historical xml format or via the new json format.
We therefore maintain compatibility with previous agents (it will just be necessary to reconfigure the server URLs of historical agents, or to set up a web proxy to redirect to the new URL).

We now manage with this new format most of the GLPI inventory objects, such as telephones, applications, racks, etc.

This code now allows you to receive partial inventories.
This consists of sending only part of the information related to the object concerned, and indicating to the server, with a key, to update only the data concerned.
Transporting, processing, inserting and updating data is done significantly faster.

Configuration Inventaire Natif
Regles d'import et de liaison

GLPI Agent Desktop / Server

This new agent (bifurcating since version 2.6 of the fusioninventory project) has been enhanced with several new features:

  • A new autonomous interface (named Toolbox) allowing the configuration of network discoveries and inventories.
  • An improved proxy mode to allow the reporting of inventories from remote networks.
  • Remote inventory support (agentless), currently with support for WinRM (windows) and SSH (Linux/Unix) protocols.
  • The inventory of database servers.
  • A new exchange protocol with the GLPI server in JSON format supporting partial inventory.
  • Soon, the management of remote inventory tasks, including for ESX queries.
  • Improved windows support including MSI packages.
  • Native support for MacOSX Big Sur and new Apple Silicon M1 chips.

You can get the archives for your systems at the following address: https://github.com/glpi-project/glpi-agent/releases
Nightly build packages are also available to get the latest developments: https://nightly.glpi-project.org/glpi-agent/
We also provide a perl script (see documentation dedicated) allowing to install the agent on your linux with a suitable package (rpm, deb, snap.)

The documentation is available and details of the installation, use and configuration of this new agent.

Some screenshots to illustrate the ToolBox interface of this new agent:

scan local
Resultats d'inventaire
Support des MIB

Android GLPI agent

The android agent is back on the google play store. It supports versions 4 to 10 of the OS.

For customers under subscriptions we have also added the possibility of configuring the server URL via a “Deeplink”. Via QRCode, the agent automatically retrieves the configuration to connect to the server.

Advanced Tasks

As seen above, GLPI now includes the basic brick for automatic inventory.
However we have not yet resumed the advanced tasks allowed by the previous projects.
Here are the points about these tasks:

  • Network discovery and inventory: now configurable independently by the GLPI agent via its Toolbox interface.
  • ESX polling soon supported by this same interface
  • Collection (WMI, files, registers): not supported.
  • Remote deployment: not supported.

For these last two features, two temporary scenarios are possible:

  • First of all, keep the previous plugin (if this one is updated)
  • Use our transition package. A fork of the FusionInventory plugin (GLPI inventory plugin) will be available. It redirects inventories to the native part of GLPI and keeps advanced tasks.

This package is transitional and the integration of these modules is planned in our roadmap, the complete package is expected in a few months.
We have started the work on developing the remote deployment module. In addition to its integration into the core of GLPI, a temporary community plugin will be made available to use the functionality before the next major version of GLPI.
We will continue SNMP and ESX functionality in the same way during the year: support available in the next major release, and community plugin for beta testing of the functionality.

Refreshing GANTT views of projects

Contribution of Fian services and Smartwood, the old Gantt view has been refreshed by integrating the library DHTMX Gantt.

This change also brings an interactivity of the view (possibility to create/modify/move tasks).

Refreshment of reservations

Material (items) reservations now use the same library (fullcalendar) as GLPI planning.

Rich text improvements

From the preferences, it is now possible to choose for the rich text fields (html), the layout of the integrated toolbar:

In the settings it is now possible to choose for the rich text fields (html), the layout of the integrated toolbar:

The “embedded” layout displays a contextual embedded toolbar to the right of your cursor.
Selecting text will bring up other options such as bold or italic.
Other less common options (source code, full screen, etc) will be available via right click.

Adding databases

The plugin databases previously carried by Infotel is now directly integrated (Management menu) thanks to their help.
A migration script to recover data from the old plugin is available from the command line console.

These two objects now can be linked, tabs have been added to them.

Contrats dans les tickets
Tickets dans les contrats

Cable management

A new cable object is now added to the Assets menu.
It is used to represent the physical link between the ports of two inventory objects.

Various dashboards

  • the filters are now stored in the database, and are therefore passed on from one browser to another (We previously used browser storage for this).
  • a dashboard can now be set as private

Miscellaneous Inventory

  • Ability to add PCI/USB vendors (dropdown)
  • Added “Camera” device
  • Automatic action to remove software versions without installation
  • Automatic action to remove software without versions

Miscellaneous Support

  • Added management of recurring changes
  • Rich text for validations
  • Option to anonymize technicians / groups in the simplified interface
  • Addition of a search criteria “Myself” (attributed to)
  • Observers can now add a follow (new dedicated profile right)
  • New massive action to link multiple tickets to an issue
  • Business rules: action to add a task (from a template)
  • Business rules: action to assign an “Application”
  • Business rules: action to modify the global validation status
  • Business rules: “Validation” criterion

Various

  • Ability to modify the criteria of a saved search
  • Support for authentication with CERT/KEY file for LDAPS
  • Added an option to set the timeout on LDAP authentications
  • Improved system:status command in CLI console to:
    • filter the services to be monitored
    • configure the return format (plain-text format/json)
  • Report of the same modifications on the status.php page
  • Added a button to clear a user’s sync field
  • Button to copy search results (“Name” column only) to clipboard
  • Massive actions on old plugins page
  • Ability to export the results of the “History” tab in CSV format
  • Removal of the “All” tab
  • API: addition of massive actions

Compatibility

New prerequisites:

  • PHP >= 7.4
  • MySQL >= 5.6 or MariaDB >= 10.2

If you are ready to try it, download the final version here:

Migration to GLPI 10: FAQ

At Teclib´ we are happy to announce that we are expecting the release of GLPI 10 in the following weeks. We have received many questions related to migration from older versions of GLPI/compatibility of plugins and decided to publish a dedicated video. Watch it on Youtube or read the transcription below.

  1. From which GLPI version I can migrate to GLPI 10?  

You can migrate to version 10 from any GLPI version (we support migrations from at least 0.80 version), all data, like users, tickets or assets, will be transferred. 

  1. What should I consider before migration? Which data can be lost in migration?  

The server must have at least PHP 7.4 and MySQL 5.6 dependencies. If your server doesn’t have these, you must upgrade these requirements. 

No data loss is expected, but as usual, make backups (files and database) and/or snapshots. 

You will need to execute some optional migrations after GLPI main update with the help of the console. 

If you have custom developments or core changes, please note they will be erased when copying the files. Consider porting them before the migration. 

  1. Which plugins will be compatible with GLPI 10?  

All plugins listed in GLPI Network Subscriptions (both Community and Exclusive ones) will be compatible with GLPI 10.  

Check https://plugins.glpi-project.org/#/version/~~10.0.0/plugins for a community based list. 

  1. What advantages has native inventory? 

In addition to the small gain of not using a plugin, the feature will use less history data and database storage (for example, software updates take 1 line instead 2). 

We worked also on user experience, you have now assets separated by types for a more comfortable setup. 

It unlocks some features like partial inventories, which reduces performances footprint.  

More asset types are available for inventory (you can send files for racks, appliances, certificates, etc). 

In combination with GLPI agent, you also obtain some great features: 

  • Databases inventory 
  • Proxy mode for DMZ  
  • Remote inventory (agentless) for windows and linux. 
  • Stand-alone SNMP tasks 

Our professional support for on-premise (GLPI Network Subscriptions) covers support L.3 for migration from GLPI 9.5 to GLPI 10. 

All GLPI Network Cloud paid customers will be upgraded for free.