81227833c1
Add link_patch_history_intervenants : lie patch_history.intervenant_name -> users.id (FK)
2026-04-17 12:31:40 +00:00
7ec7c49c34
import_ldap_group_users : fallback UPN/sam@sanef.com si mail absent, inclut comptes admin sans mail
2026-04-17 12:26:12 +00:00
2a4c785535
Add import_ldap_group_users + FK users.contact_id + contacts.ldap_dn
2026-04-17 12:16:24 +00:00
2ab2ceabba
Historique patching : filtres OS/zone/domaine/intervenant + colonnes table
2026-04-17 12:10:45 +00:00
14f809335e
Add tool import_plan_patching_xlsx : historique 2025+2026 (vert = patche)
2026-04-17 11:56:32 +00:00
c9890a274f
Add tools/import_planning_xlsx.py : import patch_planning depuis xlsx Ayoub
2026-04-17 08:32:56 +00:00
55cd35eaf1
import_applications_ioda: gestion conflits nom_court (UNIQUE existant)
...
Strategy SELECT puis INSERT/UPDATE plutot que ON CONFLICT:
- Cherche par ioda_libelle d'abord, sinon par nom_court (apps non-IODA)
- Si UPDATE existant -> enrichit avec champs IODA
- Si INSERT et nom_court deja pris -> suffixe avec -IODA-<POS>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 14:21:37 +02:00
34c8025b56
import_applications_ioda: cast str() pour cellules non-string (int)
...
Le fichier IODA a parfois des integers/floats dans lib_court ou autres
cols texte. Helper s() coerce + trim + None si vide.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 14:19:29 +02:00
b55e8d4e26
Import IODA applications + table qualys_missing_servers
...
- Migration deploy/migrations/2026-04-16_ioda_qualys_missing.sql:
* ALTER applications: 13 colonnes ioda_* (libelle, code_pos, type, statut,
perimetre, dept_domaine, resp_metier, resp_dsi, nb_components, etc.)
* Index unique sur ioda_libelle (cle d'upsert idempotente)
* Nouvelle table qualys_missing_servers avec server_id FK,
reason_category enum (appliance/ot_scada/virtualisation/oubli/...),
status (a_traiter/a_enroler/exempt/enrole/decom), priority 1-5,
trigger updated_at
- tools/import_applications_ioda.py: lit deploy/ServeursAssoci*IODA*.xlsx
sheet "Services Metiers", upsert sur ioda_libelle
- tools/import_qualys_missing.py: lit deploy/comparaison*.xlsx sheet
RECAP, filtre col J (COMP1) sans 'Qualys', categorise auto via
heuristique nom (BAC_/BEU_/... = ot_scada, esx*/vp*esx = virtu,
presence 3 sources sans Qualys = oubli urgent), lien auto vers
servers.id si match hostname/fqdn
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:59:53 +02:00
36c638c8ce
Add link_qualys_by_ip: lie qualys_assets a servers via IP quand hostname mismatch (cas node3->vdameasxt3)
2026-04-15 12:22:04 +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
1cc8d42e4a
Add fill_domaine_from_weekly: extrait servers.domaine depuis col D des sheets S02..S16
2026-04-15 00:07:55 +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
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
5883ba5cc4
Add import_sanef_applications: import Solutions Applicatives iTop (nom/etat/responsable/admin)
2026-04-14 22:20:40 +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
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
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
0cfdab7c61
Add fill_domain_ltd_by_dns: resolution DNS multi-suffix pour cas residuels
2026-04-14 20:31:41 +02:00
b315cee98b
Add fill_domain_ltd_by_prefix: convention SANEF vp/vi=sanef.groupe, vr/vt/vd=sanef-rec.fr
2026-04-14 20:21:29 +02:00
de41b66a34
Add import_domain_ltd_from_qualys: extrait domain_ltd depuis Qualys FQDN
2026-04-14 20:18:06 +02:00
489524ac38
import_ips_from_qualys: enleve suffixe /32 inet
2026-04-14 20:15:52 +02:00
154faceaff
Fix: qualys_assets.ip_address est inet pas text, cast en text
2026-04-14 20:15:05 +02:00
e072adb717
Add import_ips_from_qualys: fallback IPs depuis Qualys pour serveurs sans IP iTop
2026-04-14 20:13:11 +02:00
c8a5f73616
import_sanef_ips: csv.reader par indice (evite conflit Nom/Nom duplique)
2026-04-14 20:10:51 +02:00
a66e0d853e
Fix schema server_ips: ip_type au lieu de is_primary, VRF/GW/MASK dans description
2026-04-14 19:55:42 +02:00
c905ab6db3
import_sanef_ips: CAST inet + hostname multi-source + skip doublons
2026-04-14 19:50:40 +02:00
b66ef0a122
Fix SQLAlchemy: CAST(:ip AS inet) au lieu de :ip::inet (conflit avec bind marker)
2026-04-14 19:48:42 +02:00
e2f61af818
Add import_ips_from_assets: lit colonne IP directe des CSV VM/physical
...
Contourne l'export Interface Réseau (souvent incomplet). Utilise la
colonne IP directe du CSV VMs (attribut iTop sur la VM) + VRF si
present. Gère plusieurs IPs separees par virgule.
2026-04-14 19:47:37 +02:00
78ad32045e
import_databases: lire Systeme->Nom en priorite (Serveur->Nom vide pour VM)
2026-04-14 19:39:35 +02:00
7c56725f6e
Add import_sanef_databases: table server_databases + import CSV iTop
...
Cree server_databases (FK servers.id, UNIQUE hostname+instance_name).
Pour chaque instance BDD iTop: match hostname via Serveur->Nom, store
type (SAP Hana/Oracle/PostgreSQL/SQL Server/MySQL), version, edition,
cluster, environnement, etat.
2026-04-14 19:36:11 +02:00
2379a2fdc0
align_from_ayoub: dedoublonne les domaines case/accent-insensitive
...
Fusionne 'Flux Libre'/'flux libre', 'Péage'/'peage'/'PeagE' en gardant la
forme propre (avec accents et capitale). Update domain_environments.domain_id
vers le keeper et supprime les doublons.
2026-04-14 19:32:28 +02:00