patchcenter/app/services
Admin MPCZ edec1f7db5 feat(teams): mode SharePoint sync (calque .exe Sanef Patch Manager) + rules-based routing
- Migration: ajoute sp_route/mode/is_reboot_channel/is_dynamic_dm sur teams_channels,
  cree table teams_channel_rules (match resp/domain/env/msg_type/hostname pattern)
- Service teams_service.py: format texte plat compatible workflows existants,
  write_sharepoint_notification (ecrit fichier .txt dans <sp_base>/<sp_route>/),
  resolve_channel_for_server rules-based avec priorite reboot,
  send_notification orchestre resolution + envoi
- Settings UI: CRUD canaux etendu (mode SP/webhook + flags reboot/dyn_dm),
  CRUD regles avec match conditions, sharepoint_notif_path en secret app,
  bouton Test ecrit fichier .txt en mode SP
- Mode is_dynamic_dm: prefixe le contenu par 'TO: <email>' pour permettre
  un workflow PA unique qui dispatch dynamiquement aux responsables
- Pas d'OAuth requis: PatchCenter ecrit fichiers, Workflows PA cote SharePoint
  (deja en place pour le .exe) declenchent et postent sur Teams

Mode webhook conserve mais inactif tant qu'OAuth Entra ID pas mis en place chez SANEF
2026-05-06 09:57:42 +02:00
..
__init__.py PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
agent_deploy_service.py Admin applications + correspondance cleanup + tools presentation DSI 2026-04-13 21:11:58 +02:00
audit_service.py Sync SANEF : audit_service + schema.sql + data deploy + gitignore 2026-04-17 09:20:57 +02:00
cache.py Cache mémoire 10min pour Qualys API, bouton Resync temps réel, page Agents (activation keys + versions) 2026-04-06 23:04:48 +02:00
campaign_service.py Migre etat vers labels iTop verbatim (Production, Nouveau, etc.) 2026-04-14 18:40:56 +02:00
correspondance_service.py Migre etat vers labels iTop verbatim (Production, Nouveau, etc.) 2026-04-14 18:40:56 +02:00
itop_service.py fix(servers/edit): timeout iTop reduit (3s connect / 10s read au lieu de 30s) + indicateur de chargement htmx visible (bouton change en 'Sauvegarde...' + message en bas du form) 2026-05-05 15:47:12 +02:00
ldap_service.py LDAP: restriction groupe AD + auto-provisioning users (sans permissions) 2026-04-15 11:45:33 +02:00
patch_run_service.py feat(patching/iexec B3.6): bouton 3e Reboot manuel (double confirmation, jamais auto) + 3f Wait reconnexion (poll TCP/22 + SSH uptime, timeout 10min) - shutdown -r +1 avec audit log 2026-05-05 12:06:50 +02:00
prepatch_check_service.py feat(check satellite): cascade LAN+DMZ avec fallback automatique + migration servers.satellite_url + override BDD prioritaire 2026-05-05 14:34:47 +02:00
prereq_service.py feat(servers): drop colonnes legacy (snapshot_required/pre_patch_script/post_patch_script/satellite_host/need_pct) avec migration donnees + recreation views v_servers / v_patchable / v_conformity_todo + adaptation prereq_service et server_detail.html 2026-05-05 15:11:30 +02:00
profile_service.py Users/Contacts: workflow profils + LDAP + sync iTop + etat aligne 2026-04-12 18:50:43 +02:00
qualys_service.py fix(qualys): strip() defensif sur credentials + extraction enrichie de l erreur Qualys (responseCode + errorMessage + errorResolution + RAW fallback si format inconnu) 2026-05-05 18:28:13 +02:00
qualys_tags_service.py fix(qualys): API 2.0 confirmee (3.0 OTHER_ERROR car endpoint inexistant, 5.0 INVALID_API_VERSION) + body XML + mapping field user-friendly vers nom Qualys (hostname->name, fqdn->dnsHostName, ip->address) - cause racine 401 = mot de passe API expire 2026-05-05 16:56:56 +02:00
query_helpers.py Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers 2026-04-17 23:19:18 +00:00
quickwin_log_service.py QuickWin: prereq/snapshot services, referentiel, logs, correspondance 2026-04-10 18:13:00 +02:00
quickwin_prereq_service.py QuickWin: prereq/snapshot services, referentiel, logs, correspondance 2026-04-10 18:13:00 +02:00
quickwin_service.py Migre etat vers labels iTop verbatim (Production, Nouveau, etc.) 2026-04-14 18:40:56 +02:00
quickwin_snapshot_service.py chore(snapshot): strip() defensif sur credentials vCenter (copier-coller peut ajouter newline/CR) 2026-05-04 16:29:20 +02:00
realtime_audit_service.py fix(audit): _resolve verifie la coherence FQDN BDD vs convention prefixe SANEF (vr*=.sanef-rec.fr, vp*=.sanef.groupe) - fallback sur suffixes ordonnes si FQDN incoherent + extension v[tdv] pour recette 2026-05-05 14:09:49 +02:00
secrets_service.py PatchCenter v2.0 — Initial commit 2026-04-04 03:00:12 +02:00
server_service.py fix(servers): filtre Zone=LAN match aussi zone_id IS NULL (la colonne affiche 'LAN' par defaut quand zone vide) + comparaison case-insensitive sur z.name 2026-05-05 16:05:25 +02:00
teams_service.py feat(teams): mode SharePoint sync (calque .exe Sanef Patch Manager) + rules-based routing 2026-05-06 09:57:42 +02:00