53d4f71607
LDAP: restriction groupe AD + auto-provisioning users (sans permissions)
...
- Settings ldap_required_group (DN groupe autorise) + ldap_default_role
- ldap_authenticate verifie memberOf vs required_group avant bind
- auth.py: si user inconnu + LDAP + groupe OK -> auto-create user, role default,
zero permission (admin doit assigner via /users)
2026-04-15 11:45:33 +02:00
d72d4a711f
Add test_ldap: diagnostic LDAP/AD step-by-step (bind admin + search user + bind user)
2026-04-15 11:21:50 +02:00
bfc996e50e
Add SANEF Qualys Tags V3 ref (docx + xlsx) dans deploy/docs/
...
- tools/gen_tags_v3_xlsx.py: generateur Excel (3 sheets: DYN / STAT / Prefixes)
- deploy/docs/SANEF_Qualys_Tags_V3_RuleTypes.docx: reference Word
- deploy/docs/SANEF_Qualys_Tags_V3_RuleTypes.xlsx: reference Excel
2026-04-15 10:57:46 +02:00
adc8d40df3
Add gen_tags_v3_docx: genere un Word avec tableaux Tag V3/RuleType/Valeur/Couleur
2026-04-15 10:56:30 +02:00
52e859ba08
Sidebar: ajoute liens Tags V3 (vue / catalogue / gap) sous Qualys > Tags
2026-04-15 10:23:58 +02:00
d508072969
Add /qualys/tagsv3/catalog: page de reference nom/type/QQL/couleur par categorie
...
- Template catalog.html affiche les 6 categories + prefixes
- Tags avec QQL en font mono user-select:all pour copy-paste facile
- Export JSON dispo via /qualys/tagsv3/catalog.json
- Navigation croisee entre Vue/Catalog/Gap
2026-04-15 10:20:41 +02:00
ec7712f0c9
Add module Qualys Tags V3: catalogue YAML + service + pages /qualys/tagsv3 et /gap
...
- deploy/qualys_tags_v3.yaml: catalogue 19 DYN + 6 SPEC manuel + prefixes
- app/services/qualys_tags_service.py: list/analyze_gap/create_static/delete via API
- app/routers/qualys_tags.py: routes /qualys/tagsv3 et /gap
- templates: qualys_tagsv3.html (liste) + qualys_tagsv3_gap.html (diff catalogue)
- Route /qualys/tagsv3/create-all-static pour creer les STAT manquants en bulk
- DYN manquants affiches avec QQL copy-paste pour console Qualys (API ne permet pas)
- PyYAML ajoute aux requirements
2026-04-15 10:14:10 +02:00
105a756008
Qualys hostname: retour a priorite name (sauf IP/localhost/vide), fqdn/netbios en fallback
2026-04-15 01:38:56 +02:00
c7291d3e6d
Qualys _parse_assets_full: hostname FQDN > NetBIOS > name (fix aussi cette fonction)
2026-04-15 01:20:28 +02:00
71260e20c3
Qualys sync: hostname depuis FQDN > NetBIOS > name (evite troncature display name)
2026-04-15 01:11:08 +02:00
7eb56bc9cd
Qualys sync: filtre SRV au lieu de server (matche OS-WIN-SRV/OS-LIN-SRV DYN SANEF v3)
2026-04-15 01:00:37 +02:00
8e085564ac
Fix audit.html: {% endif %} manquant pour le bloc active_jobs
2026-04-15 00:32:20 +02:00
7480bbf5ac
audit _run: fallback sans sudo si sudoers refuse bash -c (commandes read-only OK sans root)
2026-04-15 00:26:42 +02:00
2a10ec55ab
Page /audit: liste les audits en cours avec bouton Reprendre
2026-04-15 00:22:22 +02:00
3c4244597c
Audit: ThreadPoolExecutor avec parallel borne (evite saturation DB/PSMP)
2026-04-15 00:20:12 +02:00
48efb07b49
Audit exclusion: match par nom ET code (form UI envoie l'un ou l'autre)
2026-04-15 00:14:39 +02:00
1cc8d42e4a
Add fill_domaine_from_weekly: extrait servers.domaine depuis col D des sheets S02..S16
2026-04-15 00:07:55 +02:00
ca4f779e48
Fix audit exclusion: NULL domaine = exclu (evite audit de 690 serveurs non-tagges)
2026-04-15 00:05:16 +02:00
69cedff0fe
Fix audit exclusion: match sur servers.domaine OR d.name OR d.code, NULL = non-exclu
...
Les serveurs sans domain_env_id (majorite) etaient exclus a tort car
d.code=NULL et 'NULL NOT IN (...)' = NULL. Utilise COALESCE avec la
colonne plain-text s.domaine en priorite.
2026-04-14 23:59:36 +02:00
596276441b
audit realtime: route via PSMP CyberArk si ssh_method=ssh_psmp
...
Nouvelle fonction _connect_via_psmp avec auth_interactive Vault Password,
lookup ssh_method par hostname avant _connect. Fallback SSH direct si
PSMP echoue.
2026-04-14 23:48:00 +02:00
8729b8470b
test_psmp: derivation Fernet exacte identique a secrets_service
2026-04-14 23:46:23 +02:00
cdf976a9e8
test_psmp: dechiffre Fernet via secrets_service (mot de passe stocke chiffre)
2026-04-14 23:45:05 +02:00
1fc24f4684
Add test_psmp: diagnostic connexion PSMP CyberArk step-by-step
2026-04-14 23:41:05 +02:00
9b3840bfa6
audit realtime: FQDN base = retour direct (plus de check port 22), boucle suffixes uniquement en fallback
2026-04-14 23:30:47 +02:00
09e92c8b70
Fix export CSV: colonne zone (alias dans SELECT = 'zone' pas 'zone_name')
2026-04-14 23:26:30 +02:00
41f5e07e72
Add link_servers_applications: lie servers->applications depuis 2 Excel (ponderation 3/2/1)
2026-04-14 22:56:57 +02:00
fe6b05353c
Add fill_responsables_by_probability: agregation ponderee des 2 Excel + contacts + domain_env
...
Source 1 (poids 3): Ayoub/Serveurs patchables 2026
Source 2 (poids 2): Plan de Patching/Histo-2025
Source 3 (poids 1 chacune): Plan de Patching/S02..S52 weekly
Source 4 (poids 1): fallback domain_environments
Par hostname et par role (responsable/referent), retient le nom au score max.
Canonicalise via contacts.name (case/accent-insensitive) avant ecriture.
2026-04-14 22:49:29 +02:00
b2b1b05028
tag_obsolete_os: normalise 'eol' -> 'obsolete' (filtre unifie)
2026-04-14 22:35:51 +02:00
47a4917d96
tag_obsolete_os: etend CHECK licence_support pour accepter 'obsolete'
2026-04-14 22:32:53 +02:00
0be4849ef2
Fix filtres zone/licence perdus lors tri/pagination/export CSV
...
Les macros sort_url et qs + le lien Export CSV ne propageaient pas les
parametres zone/licence ajoutes recemment. Ajout dans:
- servers.html (macros + export link)
- servers.py (endpoint export-csv: signature + filters dict)
2026-04-14 22:25:57 +02:00
5883ba5cc4
Add import_sanef_applications: import Solutions Applicatives iTop (nom/etat/responsable/admin)
2026-04-14 22:20:40 +02:00
e2b984c2c4
Servers: filtre licence (active/obsolete/els/sans licence)
2026-04-14 22:17:09 +02:00
2a11a27675
Add link_prod_nonprod: lie v[rtd]XXX <-> v[pi]XXX dans server_correspondance
2026-04-14 22:16:17 +02:00
52cb7b4cfc
Add enrich_servers_from_qualys: pousse fqdn/os_family/os_version/domain_ltd depuis Qualys
2026-04-14 21:54:36 +02:00
8317dcd36b
Add fill_ips_by_dns: fallback IP via DNS multi-suffix pour serveurs sans IP
2026-04-14 21:53:50 +02:00
5e9625764a
Dashboard: try/except autour KPIs DMZ/patch_history (resilient si table absente)
2026-04-14 21:47:41 +02:00
6ec1c4575d
Dashboard: KPIs DMZ + patching 2026 depuis patch_history
...
- Stats DMZ (cliquable vers filtre zone)
- Patched 2026, never patched, last week (depuis patch_history Excel)
- Couverture patching = patched / patchable
- KPIs cards cliquables (lien vers /servers filtre pre-applique)
- Fix alias stats.eol -> stats.obsolete
2026-04-14 21:45:36 +02:00
ec82a7cd1e
align_dmz: auto-detecte sheet (Histo-2025 prioritaire) + index DMZ via header
2026-04-14 21:39:14 +02:00
38756fbfd6
Add import_patch_history_xlsx: lit sheets hebdo S02..S52, detecte lignes vertes
...
Pour chaque serveur avec fond vert col A: insere patch_history avec
date (col N), heure (col O si presente), note 'Semaine XX'. Fallback
sur le lundi de la semaine ISO si pas de date.
2026-04-14 21:30:43 +02:00
90b03ec20b
align_dmz: reconnait Exposition internet/Expo indirecte (SANEF)
2026-04-14 21:20:42 +02:00
4300eb1210
Fix zone filter: subquery sur zone_id (count query n'a pas le JOIN zones)
2026-04-14 21:17:56 +02:00
3211b81e60
Servers: filtre zone (liste zones + DMZ + Sans zone)
2026-04-14 21:15:49 +02:00
197296b811
Add align_dmz_from_ayoub: tag servers.zone_id DMZ depuis colonne DMZ Excel
2026-04-14 20:55:04 +02:00
55d1c2b43d
Add cleanup_referentiel + --overwrite sur fill_emails
...
cleanup_referentiel: aligne envs sur canoniques iTop (Test1/Test2->Test,
Developpement->Développement, Pre-production->Pré-Prod) + fusion domains
avec stem (Peages->Péage).
fill_emails --overwrite: force la reecriture des emails existants.
2026-04-14 20:51:16 +02:00
1ce72a8757
fill_emails: fallback prenom.nom@sanef.com si pas de match contact
2026-04-14 20:46:42 +02:00
7f7b04e775
fill_ssh_method: etend CHECK pour accepter rdp_local/rdp_psmp/ssh_psmp + cleanup_domains standalone
2026-04-14 20:45:31 +02:00
a39a4866f3
Add fill_ssh_method_by_default: modes connexion SANEF par OS+env
...
Linux+Prod=ssh_psmp, Linux+other=ssh_key
Windows+Prod=rdp_psmp, Windows+other=rdp_local
2026-04-14 20:43:51 +02:00
6c8e2a3339
Add fill_emails_from_contacts: complete domain_environments emails depuis contacts
2026-04-14 20:41:29 +02:00
9f4d7707ef
DNS fill timeout via thread + tag_obsolete_os supporte els/obsolete separement
2026-04-14 20:37:46 +02:00
7f6ccc763b
Add tag_obsolete_os: licence_support=obsolete pour OS EOL (RHEL 5/6/7, Win 2008/2012, Debian 8-10, etc.)
2026-04-14 20:36:19 +02:00