keycloak : un client absent ne fait plus echouer les mappers de groupes et de roles

Sous set -euo pipefail, grep sans correspondance sortait AVANT la branche client absent.
Trouve par la reconstruction de Technolibre (plus de client forgejo).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-09-30 01:12:03 -04:00
parent f3e8883083
commit bdbf7d8317
2 changed files with 8 additions and 2 deletions

View file

@ -21,7 +21,10 @@
"$KC" config credentials --server http://localhost:8080 --realm master \
--user {{ serveur_keycloak_admin_user }} --password "$KC_ADMIN_PW" >/dev/null
CID=$("$KC" get clients -r {{ serveur_keycloak_realm }} -q clientId={{ item }} 2>/dev/null \
| grep -oP '"id"\s*:\s*"\K[^"]+' | head -1)
| grep -oP '"id"\s*:\s*"\K[^"]+' | head -1 || true)
# `|| true` : un client ABSENT fait rendre 1 a `grep`, que `pipefail` propage et que
# `set -e` transforme en sortie — AVANT la branche prevue pour ce cas. Trouve par la
# reconstruction de Technolibre du 2026-09-30 (plus de client `forgejo`).
if [ -z "$CID" ]; then echo "SETOPS_OK client absent"; exit 0; fi
if "$KC" get clients/$CID/protocol-mappers/models -r {{ serveur_keycloak_realm }} 2>/dev/null \
| grep -q '"groupes-membres"'; then

View file

@ -12,7 +12,10 @@
"$KC" config credentials --server http://localhost:8080 --realm master \
--user {{ serveur_keycloak_admin_user }} --password "$KC_ADMIN_PW" >/dev/null
CID=$("$KC" get clients -r {{ serveur_keycloak_realm }} -q clientId={{ item }} 2>/dev/null \
| grep -oP '"id"\s*:\s*"\K[^"]+' | head -1)
| grep -oP '"id"\s*:\s*"\K[^"]+' | head -1 || true)
# `|| true` : un client ABSENT fait rendre 1 a `grep`, que `pipefail` propage et que
# `set -e` transforme en sortie — AVANT la branche prevue pour ce cas. Trouve par la
# reconstruction de Technolibre du 2026-09-30 (plus de client `forgejo`).
if [ -z "$CID" ]; then echo "SETOPS_OK client absent"; exit 0; fi
if "$KC" get clients/$CID/protocol-mappers/models -r {{ serveur_keycloak_realm }} 2>/dev/null \
| grep -q '"realm-roles"'; then