Modèle de données Aquila PRO V1¶
Cette page décrit les principaux objets de configuration et de stockage utilisés par l’édition PRO.
1. Configuration globale (global_policy.json)¶
Exemple de structure simplifiée :
{
"allow_weekend": false,
"allowed_hours": {
"start": "08:00",
"end": "20:00"
},
"freeze": {
"enabled": false,
"reason": null
},
"cooldown": {
"enabled": true,
"minutes": 30
}
}
Champs typiques :
allow_weekend: autorisation ou non des exécutions le week‑end.allowed_hours: fenêtre horaire d’exécution (exprimée en heure locale ou UTC selon convention).freeze: activation d’un gel global.cooldown: configuration du délai entre deux exécutions pour un même couple projet / pipeline / branche.
2. Configuration projets (projects.json)¶
Exemple abrégé :
{
"projects": [
{
"name": "service-api",
"repository": "org/service-api",
"pipelines": [
{
"name": "deploy-prod",
"allowed_branches": ["main", "release/*"],
"environment": "production"
}
]
}
]
}
Champs typiques :
name: nom logique du projet.repository: identifiant unique du référentiel (ex.<org>/<repo>).pipelines: liste des pipelines gérés pour ce projet.name: identifiant du pipeline côté CI.allowed_branches: branches autorisées pour ce pipeline.environment: information environnement (recette, pré‑prod, prod).
3. Licence PRO (licence.json)¶
Fichier JSON signé par une autorité de licence et vérifié côté Aquila via une clé publique RSA.
Exemple logique :
{
"edition": "PRO",
"customer": "Entreprise X",
"organisation": "github.com/entreprise-x",
"expires_at": "2026-12-31T23:59:59Z",
"features": {
"max_projects": 50,
"history_retention_days": 365
},
"signature": "..."
}
4. Modèle d’historique¶
L’historique stocke les décisions prises par Aquila PRO. Les colonnes finales dépendent du SGBD choisi, mais on retrouve en général :
- métadonnées techniques :
- identifiant interne ;
- timestamp de demande ;
- source (repository, pipeline, branche).
- contenu de la demande :
- payload reçu (
request_payload) ; - informations enrichies par l’agent (environnement, projet résolu, etc.).
- décision :
- statut (
accepted/refused) ; - raison principale ;
- règles déclenchées.
Les détails sont exploités par /agent/history et /agent/stats.