• v1.6.24 e0c85fa0be

    emitlinks released this 2026-10-24 16:03:03 +00:00 | 31 commits to main since this release

    AirWatch Sync 1.6.24

    1.6.24 — champs du plugin « Fields », synchro des systèmes d'exploitation, durcissement de l'upload

    Synchronisation des systèmes d'exploitation (smartphones / tablettes)

    • L'OS récupéré d'AirWatch (Android, Apple iOS, Apple macOS, Windows) est
      écrit dans glpi_items_operatingsystems pour les smartphones/tablettes,
      que l'asset soit de type Téléphone ou Ordinateur (vérifié sur GLPI 10 et 11 :
      l'onglet « Systèmes d'exploitation » existe sur tous les types d'actifs).
    • Pour les ordinateurs, l'OS n'est jamais écrit par AirWatch dès que l'asset
      porte un agent d'inventaire (les infos Windows restent pilotées par l'agent
      GLPI).
    • Architecture : Arch 0 → ARM64, 9 → x86-64.
    • Vraie version Windows : 10.0.22621 → 11 22H2, 10.0.19045.3073 →
      10 22H2 (build exact ou intégré), builds inconnus laissés tels quels.
    • Nouveau(s) jeton(s) de nom composé : {airwatch:OSVersion} (et {airwatch:OS}).
    • Miroir : colonnes aw_os, aw_os_version, aw_os_arch ; stat os_written.

    Champs du plugin « Fields »

    • Les champs du plugin GLPI « Fields » (conteneurs actifs sur Ordinateur et
      Téléphone) apparaissent automatiquement dans la correspondance de champs,
      dans un groupe dédié « Fields plugin ».
    • Les valeurs sont lues et écrites dans les tables de valeurs générées par le
      plugin (colonnes exactes : clé étrangère pour les dropdown, y compris
      dropdown-{Classe}), avec les transforms dropdown/statut/date/nombre/texte.
    • Si le plugin Fields n'est pas installé, aucun champ n'apparaît (pas de crash).

    Statuts : uniquement des statuts existants côté GLPI

    • La correspondance « Statuts AirWatch → état GLPI » et le champ « état par
      défaut » ne proposent que les statuts réellement présents dans glpi_states.
    • Tout champ mappé sur states_id est forcé en transform « status » et résolu
      via stateId() : un état introuvable est ignoré, jamais inventé.

    Durcissement de l'upload certificat / clé privée

    • Rejet explicite des noms . / .. / vides, et contrôle realpath que le
      fichier final est bien dans le répertoire certs/ (anti path traversal).
    Downloads