Visual Program Composer & Node-Based CodeGen Engine >
⚠️ ACCÈS RÉSERVÉ AU PERSONNEL AUTORISÉ — SECURE ENVIRONMENT
Dans les environnements d'infrastructure modernes (Hybride, Cloud, On-Premises), la gestion des scripts d'automatisation devient rapidement un défi critique. Les administrateurs système et ingénieurs DevOps se retrouvent souvent confrontés à :
- Des scripts "spaghetti" redondants, mal documentés ou contenant des identifiants en dur.
- Un manque de standardisation dans l'application des modules de sécurité et de journalisation.
- Une barrière à l'entrée pour les équipes de support (Niveau 1/2) qui doivent exécuter ou comprendre des automatisations complexes sans maîtriser la syntaxe pure de PowerShell ou C#.
CodeForge v2.0 a été conçu par la DSI d'INGEN Systems pour résoudre ces problématiques. Son but principal est de passer d'une approche de scripting textuel et isolé à une ingénierie de workflows standardisée, visuelle et assistée.
En combinant la puissance de la programmation par blocs et la rigueur d'un compilateur piloté par les données, CodeForge permet de concevoir graphiquement des architectures de scripts robustes, 100 % conformes aux normes de sécurité de l'entreprise.
Pour utiliser et étendre CodeForge efficacement, il est essentiel de comprendre ses 4 piliers conceptuels :
Au lieu d'écrire des lignes de code séquentielles, l'utilisateur assemble un Graphe Orienté Acyclique (DAG).
- Les Flux (
Flow) : Représentés par les ports verticaux (flow_inetflow_out). Ils dictent l'ordre d'exécution logique (l'ordonnancement) des blocs. - Les Données (
Data) : Représentés par les paramètres d'entrée et de sortie. Ils permettent de faire passer des valeurs (chaînes de caractères, entiers, objets complexes, identifiants) d'un bloc à un autre sans risque d'effets de bord ou de variables orphelines.
Inspiré des arts martiaux, le framework applique une métrique de réutilisation stricte :
- Le Kata (La Fonction / Variable) : C'est la brique élémentaire immuable définie dans
library.json. Une fonction (ex:New-ADUserDSI) fait une seule chose, mais elle la fait parfaitement, de manière sécurisée et validée. - L'Enchaînement (Le Template / Projet) : C'est la combinaison logique de plusieurs Katas pour accomplir un processus métier complet (ex: Onboarding, Audit de sécurité). La puissance ne réside pas dans le script isolé, mais dans la flexibilité de l'assemblage.
Le moteur de CodeForge n'est pas un simple éditeur graphique : c'est un compilateur d'état. À chaque déplacement de bloc ou création de lien, le moteur analyse topologiquement le graphe pour vérifier la cohérence des types de données et régénérer instantanément un code propre, indenté, et directement exécutable en production (PowerShell ou C#).
Tout composant présent dans la bibliothèque possède un statut de validation. Le framework agit comme une barrière de sécurité : un opérateur ne peut pas injecter de code malveillant ou non conforme, car il est restreint aux composants audités par l'équipe d'architecture de la DSI.
CodeForge v2.0 est une station de travail avancée de composition visuelle de programmes et de génération de code orientée flux de données (Dataflow). Développée par la DSI d'INGEN Systems, elle permet aux administrateurs système, ingénieurs DevOps et professionnels MLOps d'assembler graphiquement des scripts et processus complexes sous forme de blocs interconnectés (Noeuds/DAG).
Inspiré de la philosophie du judo, CodeForge applique le principe suivant :
« Chaque fonction est un kata, chaque template est un enchaînement. C'est la combinaison qui fait la victoire. »
L'application automatise la génération de code propre, typé et documenté en PowerShell et C#, tout en intégrant des fonctionnalités d'ergonomie avancées (Arbre de commandes Undo/Redo, Auto-Layout par solveur de graphes, et une interface rétro-futuriste à effet CRT).
- Éditeur de Graphes Nodal (Canvas) : Glissez-déposez des fonctions et des variables, puis connectez leurs ports de flux (
flow_in/flow_out) ou de données pour modéliser vos enchaînements logiques. - Génération de Code Temps Réel : Compilateur dataflow intégré qui convertit instantanément le graphe visuel en script PowerShell ou code C# structuré, sans variables orphelines ni conflits de portée.
- Bibliothèque de Composants (Library) : Chargement dynamique de catalogues de fonctions et variables d'infrastructure validées (Gestion Active Directory, Sécurité, Réseau, Droits, Backups, etc.).
- Solveur Auto-Layout DAG : Algorithme de tri topologique intégré permettant de réorganiser automatiquement et proprement la disposition spatiale des blocs en un clic.
- Arbre d'Annulation (Undo-Tree System) : Système d'historique de commandes non-linéaire permettant d'annuler ou de rétablir n'importe quelle action graphique sans perte d'état.
- Interface Terminal Spécialisée : Esthétique "Cyberpunk/CRT Monitor" avec animations de chargement système au démarrage, monitoring de la mémoire et journalisation des événements de compilation.
Le framework s'articule autour de trois composants principaux :
├── codeforge_v2.py # Code source de l'application principale (Interface PyQt5 & Moteur de Génération)
├── library.json # Catalogue des briques de base (Fonctions et variables globales approuvées par la DSI)
├── templates.json # Modèles d'enchaînements types prêts à l'emploi (Onboarding AD, Audit, CI/CD, MLOps)
└── README.md # Cette documentation détaillée
- Python 3.8+
- PyQt5 (Bibliothèque graphique)
Installez les dépendances nécessaires via pip :
pip install PyQt5
Exécutez simplement le script principal :
python codeforge_v2.py
Note : Au lancement, l'application cherche automatiquement le fichier library.json dans son répertoire pour précharger la bibliothèque système DSI.
L'écran est divisé en quatre zones clés :
- Panneau Latéral Gauche (Library Explorer) : Liste les variables globales et les fonctions disponibles, classées par familles (ActiveDirectory, Security, Network, Logging...).
- Zone Centrale (Le Canvas) : Espace de travail interactif où vous déposez vos blocs et créez les liaisons graphiques.
- Panneau Latéral Droit (Génération de code & Propriétés) : Affiche l'inspecteur du bloc sélectionné ainsi que l'onglet "Generated Code" mis à jour dynamiquement.
- Barre de Statut (Console Terminal) : Affiche l'état du compilateur et les messages système.
- Ajouter un bloc : Double-cliquez sur une fonction ou une variable dans l'explorateur de gauche, ou faites un glisser-déposer vers le canvas.
- Créer une connexion : Cliquez sur le port de sortie d'un bloc (ex:
flow_out) et glissez votre souris vers le port d'entrée d'un autre bloc (ex:flow_in). - Supprimer un élément : Sélectionnez un bloc ou un lien et appuyez sur la touche
Suppr(ou via le clic droit). - Auto-Layout : Si votre graphe devient confus, cliquez sur le bouton "Auto-Layout" de la barre d'outils pour réaligner automatiquement vos blocs de gauche à droite selon l'ordre d'exécution logique.
Le framework est entièrement basé sur une architecture JSON pilotée par les données.
Chaque fonction expose ses paramètres entrants, son type de retour, sa famille et ses tags :
{
"id": "fn_100",
"type": "function",
"name": "Write-SysLog",
"language": "PowerShell",
"famille": "Logging",
"description": "Journalise un message horodaté dans un fichier texte.",
"parameters": [
{ "name": "Message", "datatype": "string", "required": true },
{ "name": "Level", "datatype": "string", "required": false, "default": "INFO" }
],
"returns": { "datatype": "void", "description": "" }
}
Le catalogue fournit des scénarios pré-configurés pour accélérer les opérations courantes :
- ONBOARDING (ActiveDirectory) : Enchaînement complet créant un utilisateur AD (
New-ADUserDSI), lui affectant ses droits, envoyant un email de bienvenue (Send-AlertMail) et journalisant l'action (Write-SysLog). - AUDIT & DURCISSEMENT (Security) : Scanne les ports ouverts, liste les privilèges administrateurs locaux et génère un rapport HTML d'anomalies.
- DÉPLOIEMENT AUTOMATISÉ (DevOps/CI-CD) : Clône un dépôt Git, valide la signature des scripts, déploie sur IIS/Serveurs cibles et notifie l'équipe sur Teams/Slack.
- SUPERVISION DE MODÈLE (MLOps) : Vérifie la dérive des données (Data Drift), réentraîne un modèle local en cas de besoin et archive les anciennes versions.
| Raccourci | Action |
|---|---|
Ctrl + Z |
Annuler la dernière action graphique |
Ctrl + Y |
Rétablir l'action annulée |
Ctrl + L |
Exécuter l'Auto-Layout automatique (Solveur DAG) |
Ctrl + S |
Sauvegarder le projet actuel au format .cfproj |
Ctrl + O |
Ouvrir un projet existant |
Suppr / Delete |
Supprimer le bloc ou la connexion sélectionné(e) |
Le catalogue de fonctions (library.json) porte la mention "validation_status": "APPROVED". Toute modification ou ajout de fonction dans le référentiel doit respecter les règles suivantes :
- Strict Typage : Les types de données (
datatype) acceptés sont restreints à :string,int,bool,PSCredential,string[],hashtable. - Gestion des Erreurs : Toutes les fonctions de la bibliothèque intègrent des blocs
try/catchnatifs avec remontée d'alertes centralisée. - Aucun Hardcoding : Les valeurs sensibles (mots de passe, tokens) doivent obligatoirement transiter via des variables de type
PSCredentialou être lues depuis le gestionnaire de secrets d'infrastructure.
Ce framework est maintenu par la DSI — INGEN Systems.
Pour toute demande de mise à jour du catalogue de fonctions globales ou signalement de bug sur le moteur de rendu graphique, veuillez ouvrir une Issue sur ce dépôt ou contacter l'équipe d'architecture DevOps.
© 2026 INGEN Systems. Propriété exclusive de la DSI. Usage interne uniquement.