Aller au contenu

SIRRAT — Le Gardien du Chemin

SIRRAT signifie chemin en wolof. C'est la plateforme interne DYNORS qui garde les portes entre les environnements. Son rôle : juger le code à chaque étape et ne laisser passer que ce qui mérite d'avancer.

"Tu ne passeras pas… sans Quality Gate !"


Les 5 Cercles du développement

Cercle Environnement Emoji Status SIRRAT
1 LOCAL (machine dev) 😈 Non intégré — le chaos est permis
2 DEV (serveur DYNORS) 🔥 Intégré — tests automatiques
3 RMOA DYNORS (recette interne) 🌫 Intégré — purification QA
4 RMOA CLIENT (validation client) 🌟 Intégré — jugement client
5 PRODUCTION 😇 Intégré — paradis des utilisateurs
😈 LOCAL  →  🔥 DEV  ──[🚪PORTE #1]──►  🌫 RMOA DYNORS  ──[🚪PORTE #2]──►  🌟 RMOA CLIENT  ──[🚪PORTE #3]──►  😇 PROD
               tests auto                  QA interne                         validation client                  CTO + PV signé

Les 3 Portes Sacrées (Quality Gates)

Porte #1 — Le Jugement des Tests (DEV → RMOA DYNORS)

Gardien : SIRRAT automatique + QA DYNORS
Type : automatique et manuel

Critères automatiques (bloquants) :

  • Tests unitaires : 100 % ✅
  • Tests intégration : 100 % ✅
  • Couverture code : ≥ 70 % ✅
  • Scan sécurité : 0 vulnérabilité critique ✅

Critères manuels (QA DYNORS) :

  • Tests fonctionnels validés
  • Tests UI/UX validés
  • 0 bug bloquant, ≤ 3 bugs majeurs
  • Durée minimale : 3 jours en RMOA DYNORS

Porte #2 — La Validation Humaine (RMOA DYNORS → RMOA CLIENT)

Gardien : Tech Lead + Client
Type : 100 % manuel

  • Validation interne Tech Lead / CTO
  • Documentation release prête
  • Release notes rédigées
  • Guide de test client fourni

Porte #3 — Le Sceau du CTO (RMOA CLIENT → PRODUCTION)

Gardien : CTO DYNORS
Type : manuel + vérification PV

  • PV de Recette CLIENT signé ✅ (bloquant absolu)
  • Backup PROD récent (< 24h)
  • Plan de rollback documenté
  • Équipe on-call disponible
  • Fenêtre de maintenance planifiée

PV de Recette — le Sceau Divin

Le PV de recette est le document contractuel qui ouvre les portes de la production.

Workflow

1. SIRRAT génère automatiquement le PV (version, features, tests, bugs)
   ↓
2. Client reçoit une notification (email + Slack)
   ↓
3. Client teste sur RMOA CLIENT (7–14 jours)
   ↓
4. Client signe dans SIRRAT (OTP / DocuSign / scan)
   ↓
5. PV scellé (hash SHA-256, horodatage, archivage 7 ans)
   ↓
6. Porte #3 débloquée → CTO peut valider → PROD

Modes de signature

Mode Description Recommandé
OTP électronique Code envoyé par email/SMS, saisi dans SIRRAT Oui (simple)
DocuSign Intégration API DocuSign, certificat archivé Oui (légal fort)
Scan PDF PDF signé papier uploadé dans SIRRAT Fallback

Karma du Code

SIRRAT calcule un score 0–100 à chaque étape du cycle.

Score Niveau Emoji Rang
0–20 Code Damné 😈 F
21–40 Code Pécheur 🔥 D
41–60 Code en Rédemption 🌫 C
61–80 Code Pur 🌟 B
81–95 Code Béni 😇 A/S
96–100 Code Divin S+

Attribution de points :

Événement Points
Tests unitaires 100 % +30
Tests intégration 100 % +20
Couverture > 80 % +15
0 vulnérabilité critique +10
Performance < 500 ms +10
Client satisfait (5 étoiles) +20
Déploiement PROD sans incident +50
Bug mineur trouvé -5
Bug majeur -10
Bug critique -20

Badges :

Badge Déclencheur
🥇 Premier Sang 1er déploiement DEV
🧪 Maître des Tests 100 % tests pass
🛡 Forteresse 0 vulnérabilités critiques
👑 Paradis Atteint Déploiement PROD réussi
✨ Code d'Or Karma 100/100

Intégrations SIRRAT

SIRRAT s'intègre aux outils existants :

Outil Usage
GitLab CI Réception des résultats de tests, déclenchement de déploiements, vérification des quality gates
Slack Notifications par canal et par environnement (#dev-projet, #qa-projet, #prod-alerts)
Grafana Dashboard monitoring post-déploiement
Sentry Tracking d'erreurs par environnement
DocuSign Signature électronique légale des PV de recette
SendGrid Emails de notification aux clients

Stack technique SIRRAT

SIRRAT est une application Spring Boot interne DYNORS avec :

  • Backend : Spring Boot + dynors-security + dynors-db + dynors-interapp-client
  • Frontend : Angular (application DYNORS interne dans TAKKU ou standalone)
  • Base de données : PostgreSQL multi-tenant (une DB SIRRAT par instance)
  • Cache : Redis (état des quality gates, sessions)
  • Déploiement : Docker Compose sur serveur DYNORS DEV/PROD

sirrat.config.yml — fichier de configuration projet

Chaque projet satellite ajoute un fichier sirrat.config.yml à sa racine. Exemple minimal :

sirrat:
  version: "2.0"
  project:
    id: supergest-001
    name: "SuperGest"
    client: "Client Dakar"
    scenario: on-premise  # managed | on-premise | cloud-client | regie

  environments:
    dev:
      url: https://dev-supergest.dynors.com
      branch: develop
      auto_deploy: true
    rmoa-dynors:
      url: https://rmoa-supergest.dynors.com
      quality_gate: gate-1
    rmoa-client:
      url: https://recette.supergest.client.sn
      quality_gate: gate-2
      pv_recette:
        enabled: true
        signatories:
          - email: "moa@client.sn"
            role: "MOA Client"
          - email: "cto@dynors.com"
            role: "CTO DYNORS"
    production:
      url: https://supergest.client.sn
      quality_gate: gate-3
      backup:
        enabled: true
        schedule: "0 2 * * *"

Roadmap SIRRAT

Phase Contenu Status
v1 Quality gates manuels, PV recette OTP, intégration GitLab CI À développer
v2 Karma, badges, dashboard, intégration Grafana/Sentry Planifié
v3 Multi-projets, reporting client, DocuSign, mobile Futur