-
AirWatch Sync 1.6.5 Stable
released this
2026-10-20 08:33:15 +00:00 | 64 commits to main since this releaseField-mapping tables no longer render the <= / >= arrow glyph. Direction is shown only by the dropdown label (AirWatch -> GLPI / GLPI -> AirWatch), in both the editable table and the inherited-rules table.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
AirWatch Sync 1.6.4 Stable
released this
2026-10-20 07:37:40 +00:00 | 67 commits to main since this releaseAirWatch Sync 1.6.4
- Full French translation: locales/fr_FR.po + compiled locales/fr_FR.mo (291 strings)
- Every plugin string wrapped in __('...', 'airwatchsync') so it resolves against the plugin domain
- Sync preview / action labels translated server-side via SyncEngine::actionLabel()
- JS labels injected from PHP through the __('...') dictionary (no gettext in JS)
- tools/build_mo.py compiles the .po into a valid GNU .mo without msgfmt; tools/check_locale.py audits coverage
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
AirWatch Sync 1.6.3 Stable
released this
2026-10-20 05:46:43 +00:00 | 68 commits to main since this release1.6.3
Sync profile deletion
The "Sync profiles" table on the Connection tab now has a Delete button for every profile that belongs to an entity. Deleting a profile makes that entity fall back to the profile of its nearest ancestor, and an optional checkbox also removes the entity's own field mappings so no orphan rules are left behind. The global profile (entity 0) cannot be deleted - it is the fallback every entity without a profile of its own uses.
Asset tab on Computer / Phone
The AirWatch Sync panel is now a real GLPI tab (
CommonGLPI::registerStandardTab()) instead of an inline hook. GLPI 11 renders item forms with Twig and only dispatchespost_show_itemfromCommonGLPI::displayStandardTab(), reached throughajax/common.tabs.php, so an inline panel injected by a hook never appears on the initial page load. The tab shows the console deep link, a "Sync this device" button, a "Dry run" variant, and the last sync date.Flash messages
front/config.phpnow callsHtml::displayMessageAfterRedirect()explicitly; GLPI 11 does not emit redirect messages fromHtml::header(), so confirmation and error toasts were silently dropped.Migration
Migration.phpchecks for the unique entity index before adding it, making the upgrade idempotent on instances where the constraint already exists.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
AirWatch Sync 1.6.1 Stable
released this
2026-10-20 04:24:23 +00:00 | 69 commits to main since this releaseFixes the CSRF token reuse that made the second button (dry run after a sync) fail with "Unexpected token <". Plugin front files are served by the Symfony kernel in GLPI 11, which consumes the CSRF token on every non-AJAX POST; the JS now sends X-Requested-With + X-Glpi-Csrf-Token so the token is preserved, and retries once with a fresh token from ?endpoint=token. Also fixes an ArgumentCountError that made the full synchronisation return HTTP 500.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
AirWatch Sync v1.5.2 Stable
released this
2026-10-19 19:14:16 +00:00 | 70 commits to main since this releasev1.5.2
Default entity is now a dropdown of reachable entities.
Config::getAccessibleEntities()builds the list from the active profile's entity grants (expanded when recursive) plus the ancestors of the currently active entity, mirroring how GLPI builds its own entity selector.- The free-text "Default entity ID" field is replaced by a
<select>listing every entity the profile can actually reach, ordered by level and complete name. Config::resolveDefaultEntity()never returns an id outside that list: it falls back to the active entity, then to the first reachable one.- Saving an entity that no longer exists (or is not reachable with the profile) is rejected server-side, an error message is shown, and a valid entity is stored instead.
SyncEnginenow usesresolveDefaultEntity()when creating assets, so a stale configured id can no longer create assets in a non-existent entity.- Added a warning style for the entity-correction notice.
Install
Unzip into
glpi/plugins/so the folder isglpi/plugins/airwatchsync, then activate the plugin from Setup > Plugins.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
AirWatch Sync 1.5.1 Stable
released this
2026-10-19 18:02:48 +00:00 | 72 commits to main since this releaseGLPI 11 compatible VMware Workspace ONE UEM (AirWatch) asset synchronisation plugin.
Changes in 1.5.1:
- Buttons now use GLPI/Tabler classes (btn btn-primary, btn btn-secondary, btn btn-ghost-secondary) with ti icons, so they inherit the GLPI theme instead of being unstyled.
- Sync direction is strictly one-way per mapping: AirWatch -> GLPI or GLPI -> AirWatch. The ambiguous "both ways" option is gone.
- Certificate (CMSURL) authentication: upload a .pfx/.p12/.pkcs12 file, or a bare PEM certificate plus its private key. Uploaded certificates are listed with subject and expiry, and the CMS signature is built with openssl.
- Dry run: a full read-only synchronisation that reports what would change without writing anything to GLPI or to the console.
- Per-device sync: an AirWatch panel on each Computer/Phone form with "Sync this device" and "Dry run" buttons.
- sync_one now returns an explicit ok/message for error, dry run and success cases.
- Hook registered on POST_SHOW_ITEM (GLPI 11 does not dispatch PRE_ITEM_FORM), as a single callable rather than an itemtype-keyed table.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
AirWatch Sync 1.4.0 Stable
released this
2026-10-19 15:03:22 +00:00 | 76 commits to main since this releasePlugin GLPI 11 / VMware Workspace ONE UEM (AirWatch) asset synchronisation.
New in 1.4.0:
- Dedicated "Field mapping" tab: pick the GLPI field, the sync direction and the AirWatch field from dropdowns.
- Directions: AirWatch -> GLPI, GLPI -> AirWatch, or bidirectional.
- Bidirectional mappings preserve the GLPI-side edit and push it back to the console instead of overwriting it.
- Per-mapping asset type (Computer / Phone / all) and value transform (raw, model name, dropdown value).
- Custom AirWatch field escape hatch for fields not in the built-in list.
- Inline CSS/JS, required because GLPI 11 does not serve static files from the plugin root.
Install: unzip into plugins/airwatchsync, then bin/console plugin:install airwatchsync --allow-superuser.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads