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 |