Commit Graph

83 Commits

Author SHA1 Message Date
d8a526368e Refonte synchro iTop bidirectionnelle complète
- Import: typologies directement depuis iTop (Environnement, DomaineApplicatif, Zone, DomainLdap)
- Import: contacts, VMs avec tous champs custom, serveurs physiques, IPs
- Export: typologies + serveurs avec champs patching (tier, ssh, freq, window, excludes)
- Timestamp dernière synchro import/export
- Bandeau synchro visible sur TOUS les onglets du referentiel
2026-04-11 13:19:10 +02:00
1ff6b3fd4d Sync to iTop: export referentiel (environnements, domaines, zones) + serveurs 2026-04-11 04:17:22 +02:00
66eeff99e8 Sync iTop: import IPs dans server_ips + traceback sur erreur sync 2026-04-11 03:54:45 +02:00
322fa71324 Fix sync iTop: champs corrects (patch_window, contacts.role, ssh_method constraint, rollback) 2026-04-11 03:20:04 +02:00
be6c5158b8 Sync iTop: tous les champs custom (tier, connexion, ssh_user, patch_freq, pref_jour/heure, domain_ldap, excludes)
Correspondance complete iTop <-> PatchCenter:
- tier_name -> tier (Tier 0 -> tier0)
- connexion_method_name -> ssh_method
- ssh_user_name -> ssh_user
- patch_frequency_name -> patch_frequency (Monthly -> monthly)
- pref_patch_jour_name -> pref_patch_jour
- pref_patch_heure_name -> pref_patch_heure
- patch_excludes -> patch_excludes
- domain_ldap_name -> domain_ltd
2026-04-11 02:28:39 +02:00
3b5f0992b3 Refonte sync iTop: import complet contacts/domaines/envs/zones/serveurs
- Tables referentielles videes (iTop = maitre)
- Import: Person -> contacts, domaine_applicatif -> domains, environnement -> environments, zone -> zones
- Import: domain_environments auto-crees depuis les combinaisons VM
- Import: VirtualMachine + Server avec responsable_serveur, responsable_domaine, IP, OS, description
- Export: status, description, creation VMs manquantes
- Matching par hostname court (sans FQDN)
2026-04-11 01:58:31 +02:00
ba48e75b68 Fix matching iTop: compare aussi par hostname court (sans .mpcz.fr) 2026-04-11 00:23:33 +02:00
db74111d58 Sync iTop enrichie: responsable_serveur + responsable_domaine + creation VMs
- Import: responsable_serveur_name → responsable_nom, responsable_domaine_name → referent_nom
- Import: environnement iTop synchronise
- Export: cree les VMs manquantes dans iTop (classe VirtualMachine, org MPCZ)
- Export: hostname comme nom (pas fqdn)
2026-04-11 00:14:09 +02:00
53e59e7305 Sync iTop: ajout responsable serveur (contacts_list) + commentaire/description 2026-04-10 23:23:48 +02:00
f73ea25d5d Referentiel: boutons sync iTop (import/export) + messages status 2026-04-10 23:17:58 +02:00
acf20c5890 Service iTop REST: synchro bidirectionnelle serveurs + contacts
- ITopClient: wrapper REST API v1.3 (get/create/update servers, contacts)
- sync_from_itop: import serveurs + contacts iTop vers PatchCenter
- sync_to_itop: export serveurs PatchCenter vers iTop
- Correspondance champs: hostname/name, os/osversion, etat/status, contacts
- Config iTop dans app_secrets (url, user, pass)
2026-04-10 23:11:32 +02:00
33dd3a779e Fix: GET /audit/realtime redirige vers dashboard au lieu de crash int_parsing 2026-04-10 22:49:05 +02:00
4801d805b1 Fix: ip_type='primary' au lieu de 'ipv4' dans server_ips 2026-04-10 20:57:14 +02:00
b190c04147 Fix: hosts manquants + no-cache sur resultats audit (evite re-POST) 2026-04-10 20:38:44 +02:00
1be5e867dc Fix: server_ips colonne ip_address au lieu de ip 2026-04-10 20:18:59 +02:00
369ca7e5a3 Audit: mise a jour table servers avec IP, OS, FQDN depuis resultats audit
- Apres un audit reussi, update servers.os_version et servers.fqdn
- Resout l'IP via DNS et l'insere dans server_ips
- Ne touche que les serveurs avec status OK
2026-04-10 20:10:27 +02:00
16315ab3b5 Fix SSH audit: lire settings DB au lieu de hardcoder user/key/suffixes
- SSH key et user lus depuis app_secrets (ssh_key_file, ssh_user)
- Ajout .mpcz.fr dans DNS_SUFFIXES
- Auto-detect Ed25519/RSA/ECDSA
- Fallback password depuis secrets
2026-04-10 20:01:15 +02:00
c2f3d669eb Mode Demo/Reel au login + base patchcenter_demo
- Choix Production/Demo sur la page de login
- Base patchcenter_demo avec schema identique + 10 serveurs mpcz
- Le mode est stocke dans le JWT token
- La session DB bascule automatiquement selon le mode
2026-04-10 19:39:35 +02:00
Khalid MOUTAOUAKIL
e96d79aae3 QuickWin: prereq/snapshot services, referentiel, logs, correspondance
- Split quickwin services: prereq, snapshot, log services
- Add referentiel router and template
- QuickWin detail: prereq/snapshot terminal divs for production
- Server edit partial updates
- QuickWin correspondance and logs templates
- Base template updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 18:13:00 +02:00
Khalid MOUTAOUAKIL
13290c1ebb Phase 1 securite: permission checks sur tous les routers
- auth: verification is_active au login (compte desactive = bloque)
- settings: enforcement backend can_edit(settings) + role/section
- servers: can_view/can_edit(servers) sur toutes les routes
- planning: can_view/can_edit(planning) sur toutes les routes
- specifics: can_view/can_edit(specifics) sur toutes les routes
- contacts: rattache au module servers (can_view/can_edit)
- campaigns: can_view/can_edit(campaigns) sur toutes les routes manquantes
- audit/audit_full: can_view/can_edit(audit) sur toutes les routes
- qualys: can_view/can_edit(qualys) sur toutes les routes
- safe_patching: perm checks + authentification sur SSE stream
- quickwin: can_view/can_edit(campaigns|quickwin) sur toutes les routes

97 points d'injection securises, 0 route sans controle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:46:05 +02:00
Khalid MOUTAOUAKIL
5cc10c5b6c Module QuickWin complet + filtres serveurs OS/owner
- QuickWin: campagnes patching rapide avec exclusions générales (OS/reboot) et spécifiques (applicatifs)
- Config serveurs: pagination, filtres (search, env, domain, zone, per_page), dry run, bulk edit
- Détail campagne: pagination hprod/prod séparée, filtres (search, status, domain), section prod masquée si hprod non terminé
- Auth: redirection qw_only vers /quickwin, profil lecture seule quickwin
- Serveurs: filtres OS (Linux/Windows) et Owner (secops/ipop/na), exclusion EOL
- Sidebar: lien QuickWin conditionné sur permission campaigns ou quickwin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:27:45 +02:00
Khalid MOUTAOUAKIL
c550597a86 Export CSV serveurs avec filtres (domaine, env, tier, état, recherche)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:49:23 +02:00
Khalid MOUTAOUAKIL
769e199735 Export CSV patching avec filtres (année, scope, domaine, recherche)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:30:17 +02:00
Khalid MOUTAOUAKIL
7f5e5c83eb Export CSV: serveurs sans agent + agents inactifs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:24:49 +02:00
Khalid MOUTAOUAKIL
5db47c497f Agents sans Qualys: filtres Alpine.js sur hostname, OS, domaine, env, état
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:20:59 +02:00
Khalid MOUTAOUAKIL
6a5bdefde5 Sans agent: lister tous les serveurs sans exclusion
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:13:49 +02:00
Khalid MOUTAOUAKIL
b159960522 Qualys agents: colonne État ajoutée, exclure décommissionnés de la liste sans agent
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 01:06:49 +02:00
Khalid MOUTAOUAKIL
c22ad75ee8 État édition: labels avec accents (Éteint, En implémentation, Décommissionné, EOL)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:59:54 +02:00
Khalid MOUTAOUAKIL
e551ddf575 Tooltip survol sur env/etat tronqués, dropdown labels lisibles, état eteint ajouté
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:55:53 +02:00
Khalid MOUTAOUAKIL
c16c628e96 Fix: last_checkin datetime to string avec |string filtre Jinja2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:39:30 +02:00
Khalid MOUTAOUAKIL
067dec6bcd Agents inactifs: KPI cliquable avec *, légende RHEL5/EOL, liste détaillée
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:33:54 +02:00
Khalid MOUTAOUAKIL
29a377887f KPI agents Qualys: actifs/inactifs/sans agent sur dashboard + page Agents avec liste détaillée
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:01:57 +02:00
Khalid MOUTAOUAKIL
ca16e42ef8 Cache 10min sur détail vulnérabilités (HTMX), indication (cache) affichée
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:52:55 +02:00
Khalid MOUTAOUAKIL
e11714c421 Comparaison même semaine 2026 vs 2025: barres, écart pts, objectif, données incomplètes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:47:01 +02:00
Khalid MOUTAOUAKIL
340970c108 Comparaison 2026 vs 2025: barres progression, écart serveurs et points
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:45:17 +02:00
Khalid MOUTAOUAKIL
8286fe0624 Fix histogramme: cancelled_weeks séparés, barres empilées vert+rouge par semaine
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:30:30 +02:00
Khalid MOUTAOUAKIL
4517dcdd39 Histogramme patching: barres empilées vert (patché) + rouge (annulé/reporté), total affiché
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:27:14 +02:00
Khalid MOUTAOUAKIL
c05ec932db Fix histogramme patching: exclure annulés/reportés du graphe semaines
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:25:36 +02:00
Khalid MOUTAOUAKIL
a43dd01b7e Loading spinner sur vulns et détail asset (HTMX), masqué après réponse
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:13:33 +02:00
Khalid MOUTAOUAKIL
1d8502d25b Loading overlay sur bouton Rechercher Qualys
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:09:43 +02:00
Khalid MOUTAOUAKIL
c94d952948 Fix resync: retirer data-loading, ajouter texte explication cache 10min
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:07:21 +02:00
Khalid MOUTAOUAKIL
c139dfbaa2 Cache mémoire 10min pour Qualys API, bouton Resync temps réel, page Agents (activation keys + versions)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:04:48 +02:00
Khalid MOUTAOUAKIL
0dc0fc7643 Vulns: parser results en tableau Package/Version installée/Version requise
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:51:50 +02:00
Khalid MOUTAOUAKIL
31bf62651c Qualys vulns: clic sur badges ouvre detail (QID, titre, CVE avec lien NVD, CVSS3, detection, solution)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:48:44 +02:00
Khalid MOUTAOUAKIL
662b9c3535 Fix vulns: utiliser IPs au lieu de QPS asset IDs pour API VMDR
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:42:30 +02:00
Khalid MOUTAOUAKIL
f04d04224d Qualys: vulnérabilités severity 3/4/5 dans résultats recherche (API VMDR)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:38:56 +02:00
Khalid MOUTAOUAKIL
40b0307f62 Accents dans tous les templates: audité, réseau, corrélation, patché, données, décommissionnés
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:28:33 +02:00
Khalid MOUTAOUAKIL
cb8ade24e4 Patching: filtre SecOps/Hors SecOps, KPIs par perimetre, detail partial "pas encore audite"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:11:35 +02:00
Khalid MOUTAOUAKIL
390a162cf4 Fix: inclure status partial (serveurs Ayoub) dans toutes les requetes audit/patching/dashboard
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 18:20:33 +02:00
Khalid MOUTAOUAKIL
dc3efd081e Fix sidebar Complet/Patching actif, domaines cliquables dans patching
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 18:18:44 +02:00