Journal des modifications¶
Dernière mise à jour : 25 juin 2026
Toutes les modifications notables de ce projet sont documentées dans ce fichier.
[v202606] - 25/06/2026¶
Ajouts¶
CUC (Cisco Unity Connection) — nouveau module produit¶
- Nouveau module produit
cuc, conditionné par le claim de licence signé"cuc". - Versions supportées : CUC v14 & v15.
- 13 outils MCP répartis entre CUPI REST (
get_version,cupi_list,cupi_call, …), SSH OS Admin (os_run_command), diagnostics de connectivité et gestion des identifiants. - Prompts :
cuc/procedure,cuc/security_audit. - Ressources : 8 chapitres du guide CLI VOS, 3 chapitres du Security Guide (optionnels), ainsi qu'un catalogue d'endpoints CUPI (~80 endpoints) packagé sous
docs://cuc/cupi/referenceet référencé par les prompts CUC. - À noter : client CUPI (REST
/vmrest/) avec vérification TLS obligatoire ; même modèle RBAC et même schéma d'identifiants que CUCM / IMP.
Autres ajouts¶
- Mutualisation des sessions SSH (SSH Pooling)
- Métriques Prometheus du pool SSH : occupation en temps réel, histogramme de réutilisation des commandes, compteur de succès.
- Auto-découverte RBAC pour les clients MCP : nouvel outil
infra_get_my_permissions(product?)et matrice intégrée àinfra_init_session. - Découverte documentaire pour les clients tools-only : nouveaux outils
infra_list_docs()/infra_get_doc(name|uri).
Modifications¶
- Mentions « read-only » trompeuses supprimées des outils
*_axl_call,*_os_run_command,cuc_cupi_callet listings associés — les permissions dépendent désormais du profil RBAC de l'appelant. - Prompts
procedure(CUCM / IMP / CUC) : le LLM est invité à appelerinfra_get_my_permissions(<product>)avant toute opération d'écriture/admin.
Dépendances¶
- bcrypt==5.0.0
- colorlog==6.10.1
- cryptography==49.0.0
- fastmcp==3.2.4
- lxml==6.1.1
- Markdown==3.10.2
- matplotlib==3.11.0
- mcp==1.28.0
- numpy==2.5.0
- paramiko==5.0.0
- Pillow==12.2.0
- prometheus_client==0.25.0
- pydantic==2.13.4
- pydantic-settings>=2.14.2
- PyJWT==2.13.0
- python-dotenv==1.2.2
- python-multipart==0.0.32
- requests==2.34.2
- starlette==1.3.1
- urllib3==2.7.0
- weasyprint==69.0
- zeep==4.3.3
Dépendances (dev)
- bandit>=1.7
- freezegun==1.5.5
- httpx==0.28.1
- msgpack>=1.2.1
- mypy>=1.11
- pip>=26.1.2
- pip-audit>=2.7
- pre-commit==4.6.0
- pymupdf4llm>=0.0.17
- pytest==9.1.1
- pytest-asyncio==1.4.0
- pytest-cov==7.1.0
- pytest-timeout>=2.3
- pytest-xdist>=3.6
- PyYAML>=6.0.2
- ruff==0.15.19
[v202605] - 31/05/2026¶
Ajouts¶
Cœur applicatif¶
- Serveur FastMCP Streamable HTTP, configuré via
.env. - Bootstrap automatique au démarrage : paire de clés RSA-4096, sel serveur, répertoires clients, tokens JWT, vérification de la licence.
- Synchronisation des clients avec
AUTH_CLIENTSà chaque démarrage (création / renouvellement / purge). - Endpoints HTTP :
/health,/metrics(Prometheus),/status. - Journalisation structurée (
app.logJSON +audit.logdédié).
Sécurité¶
- Déploiement air-gapped ou hybride, sans dépendance cloud.
- TLS obligatoire (auto-signé ou signé par une CA).
- Authentification client : tokens bearer RS256, mode JWT ou OAuth2 Client Credentials (avec PKCE).
- RBAC avec profils
admin/operator/auditor, personnalisables par client. - Isolation des données par client ; identifiants chiffrés par une clé Fernet dédiée (PBKDF2-SHA512).
- Piste d'audit JSON complète avec assainissement des caractères de contrôle.
- Durcissement transport : HTTPS, protection DNS rebinding, validation Host/Origin/Content-Type.
- Vérification d'empreinte SSH + certificat HTTPS avant toute connexion Cisco UC.
- Validation Pydantic sur toutes les entrées d'outils MCP.
- Rate limiting par client (fenêtre glissante) et détection Fail2ban par IP.
- Politique de configuration
.env-only.
Performance & Stabilité¶
- Caches LRU bornés sur les clients Zeep/WSDL.
- Réduction de la contention sur le verrou de stockage des identifiants.
Observabilité¶
- Fenêtres glissantes 24 h en mémoire, compteurs Prometheus pour les requêtes HTTP et les appels d'outils MCP.
- Lignes d'audit dédiées aux échecs (outils / ressources / prompts) avec type d'erreur et incrément de métrique.
- Redaction étendue des bundles show-tech sur tous les motifs de clés sensibles.
Licences¶
- Licences JWT signées RS256 émises hors ligne (
VALID/GRACE/EXPIRED/INVALID), liaison hostname optionnelle, watchdog en arrière-plan, inspecteur CLI autonome.
Sauvegarde & Restauration¶
- Sauvegardes chiffrées périodiques (RSA-4096 + AES-256-GCM + sidecar SHA-512), rétention locale, export SFTP optionnel.
- Script de restauration avec vérification d'intégrité et remplacement en place sécurisé.
Mise à jour¶
- Bundles de mise à jour signés (vérification RSA-PSS), prévisualisation
--dry-run, sauvegarde automatique pré-upgrade, fusion.envsans écraser les valeurs client.
Rapports¶
- Outils MCP
write_report/read_report/export_report_pdfavec sortie Markdown, 9 types de graphiques et export PDF via WeasyPrint.
CUCM¶
- Versions supportées : CUCM v14 & v15.
- 20 outils MCP répartis entre AXL, RisPort70, SSH OS Admin et accès web des téléphones.
- Prompts :
cucm/procedure,cucm/security_audit. - Ressources : 8 chapitres du guide CLI VOS et 5 chapitres du Security Guide (R15).
- À noter : capture d'écran des téléphones IP (
phone_screenshot) ; prompt d'audit de sécurité basé sur le Cisco Security Guide R15.
IMP¶
- Versions supportées : IMP v14 & v15.
- 14 outils MCP répartis entre AXL et SSH OS Admin.
- Prompts :
imp/procedure,imp/security_audit. - Ressources : 8 chapitres du guide CLI VOS et 3 chapitres du Security Guide (R15).
- À noter : même modèle RBAC et même schéma d'identifiants que CUCM.
Déploiement & Chaîne d'approvisionnement¶
Dockerfilede production (multi-stage) etdocker-compose.yml, runtime non-root durci.- Image de base et GitHub Actions épinglées par digest ; Dependabot les rafraîchit chaque semaine.
- Gestion des dépendances migrée vers
uvavecuv.lockhaché.
Documentation¶
SECURITY.mdrégénéré et aligné avec le site de documentation.- Guides de setup mis à jour pour insister sur la politique
.env-only.
Tests & CI¶
- 839+ tests unitaires, 93%+ de couverture (seuil de 90 % imposé), tests d'intégration sur CUCM réel, matrice Python 3.12 + 3.13.
- SAST Bandit, scan de secrets Gitleaks, scan d'image Trivy — tous bloquants.
- Rapport Mypy (non bloquant) et pip-audit sur les arbres de dépendances runtime + dev.
- SBOM CycloneDX signé hors ligne au moment de la release.
Dépendances¶
- bcrypt==5.0.0
- colorlog==6.10.1
- cryptography==48.0.0
- fastmcp==3.2.4
- lxml==6.1.1
- Markdown==3.10.2
- matplotlib==3.10.9
- mcp==1.27.1
- numpy==2.4.6
- paramiko==5.0.0
- Pillow==12.2.0
- prometheus_client==0.25.0
- pydantic==2.13.4
- PyJWT==2.13.0
- python-dotenv==1.2.2
- requests==2.34.2
- starlette==1.2.0
- urllib3==2.7.0
- weasyprint==68.1
- zeep==4.3.2
Dépendances (dev)
- freezegun==1.5.5
- httpx==0.28.1
- pre-commit==4.6.0
- pymupdf4llm>=0.0.17
- pytest==9.0.3
- pytest-asyncio==1.4.0
- pytest-cov==7.1.0
- PyYAML>=6.0.2
- ruff==0.15.15