4f31d0c8c5
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / CRM · Financement Bancaire (gate hypothécaire RD) (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / PIE · manifest de dépendances (Annexe 12 · V10.1) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
143 lines
7.5 KiB
JSON
143 lines
7.5 KiB
JSON
{
|
|
"runbook": "OTO Enterprise OS · Run-book de déploiement VPS unifié",
|
|
"version": "1.0",
|
|
"reference_cadre": "Roadmap Sprint 8 · DevOps « Deployment production complet + monitoring » · CLAUDE.md #8 (VPS pour TOUS projets · le worker n'écrit jamais sur le VPS)",
|
|
"self_module": "devops/deploy_runbook",
|
|
"cible_portage": "agent DevOps / ERPNext Backend",
|
|
"phases": [
|
|
{
|
|
"order": 1,
|
|
"id": "prerequis",
|
|
"titre": "Prérequis VPS : modules custom OTOV7 + spec RBAC validée",
|
|
"responsable": "vps",
|
|
"rationale": "Rien ne s'importe tant que les modules d'application custom (OTOV7 Ventes, OTOV7 CONFOTUR, …) n'existent pas et que le contrat RBAC 50 rôles n'est pas validé comme source de vérité unique.",
|
|
"depends_on": [],
|
|
"confirmations": ["custom_modules"]
|
|
},
|
|
{
|
|
"order": 2,
|
|
"id": "doctypes",
|
|
"titre": "DocTypes custom (structure) avant tout ce qui les référence",
|
|
"responsable": "vps",
|
|
"rationale": "Les Custom DocPerm, le Workflow vente et les Workspaces référencent des DocTypes custom qui doivent exister au préalable (contrainte dure ERPNext v15).",
|
|
"depends_on": ["prerequis"],
|
|
"confirmations": ["custom_doctypes"]
|
|
},
|
|
{
|
|
"order": 3,
|
|
"id": "rbac-apply",
|
|
"titre": "RBAC : Role + Custom DocPerm + User Permission + Role Profile",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Le run-book RBAC (rbac/apply_plan) ordonne déjà ce volet ; on l'insère ici en bloc car les Has Role d'un Role Profile et les DocPerm référencent des Role/DocTypes qui doivent préexister.",
|
|
"depends_on": ["doctypes"],
|
|
"confirmations": []
|
|
},
|
|
{
|
|
"order": 4,
|
|
"id": "workflow-metier",
|
|
"titre": "Workflow vente + règles métier (commissions, e-CF DGII, dépôts CONFOTUR)",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Le Workflow pilote le DocType Dossier Vente et s'appuie sur les rôles ; commissions et e-CF se déclenchent sur ses états soumis. Paramètres réglementaires à confirmer avant activation.",
|
|
"depends_on": ["doctypes", "rbac-apply"],
|
|
"confirmations": ["taux_commission", "rnc_emisor", "itbis_tipocambio", "seuil_uaf"]
|
|
},
|
|
{
|
|
"order": 5,
|
|
"id": "frontend",
|
|
"titre": "Frontend : Workspaces desk portails + Custom Block chat OTOIA + config app mobile",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Les Workspaces (Has Role) et le Custom Block de chat s'ancrent sur les rôles RBAC et les DocTypes déjà en place ; l'endpoint OTOIA reste à renseigner. La config de l'app mobile (Expo/EAS) s'ancre sur la même surface RBAC (navigation par rôle) ; build Expo 54 + submit App Store #32 / Play Store restent hors repo (agent Mobile · #8).",
|
|
"depends_on": ["rbac-apply"],
|
|
"confirmations": ["endpoint_otoia"]
|
|
},
|
|
{
|
|
"order": 6,
|
|
"id": "contenu",
|
|
"titre": "Contenu projets & publication : Publiciste, Faisabilité, Bancable, SEO, Démo",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Génération et publication du contenu projet (data_room, dossiers bancables, balises SEO, run-sheet de démo) une fois la plateforme et le frontend en place.",
|
|
"depends_on": ["workflow-metier", "frontend"],
|
|
"confirmations": []
|
|
},
|
|
{
|
|
"order": 7,
|
|
"id": "verification-qa",
|
|
"titre": "Vérification post-déploiement : HTTP + audits QA (5D · 4Big · régression)",
|
|
"responsable": "vps",
|
|
"rationale": "Gate final : vérification HTTP puis exécution des audits de conformité 5D, de qualité 4Big (≥95/100) et de la matrice de régression sur le desk réel.",
|
|
"depends_on": ["workflow-metier", "frontend", "contenu"],
|
|
"confirmations": []
|
|
}
|
|
],
|
|
"module_phase": {
|
|
"rbac": "prerequis",
|
|
"crm/dossier_vente": "doctypes",
|
|
"legal/confotur": "doctypes",
|
|
"rbac/fixtures_gen": "rbac-apply",
|
|
"rbac/userperm_gen": "rbac-apply",
|
|
"rbac/roleprofile_gen": "rbac-apply",
|
|
"rbac/apply_plan": "rbac-apply",
|
|
"crm/workflow_vente": "workflow-metier",
|
|
"crm/commissions": "workflow-metier",
|
|
"crm/financement_bancaire": "workflow-metier",
|
|
"fiscal/ecf_dgii": "workflow-metier",
|
|
"frontend/portails": "frontend",
|
|
"frontend/chat_otoia": "frontend",
|
|
"mobile/app_config": "frontend",
|
|
"publiciste": "contenu",
|
|
"faisabilite/generator": "contenu",
|
|
"faisabilite/bancable": "contenu",
|
|
"seo": "contenu",
|
|
"demo/scenarios": "contenu",
|
|
"pie/manifest": "contenu",
|
|
"qa/audit_5d": "verification-qa",
|
|
"qa/audit_4big": "verification-qa",
|
|
"qa/regression": "verification-qa",
|
|
"qa/acceptance": "verification-qa"
|
|
},
|
|
"confirmations": {
|
|
"custom_modules": {
|
|
"libelle": "Créer les modules d'application custom (OTOV7 Ventes, OTOV7 CONFOTUR, …) avant tout import de fixtures",
|
|
"owner": "ERPNext Backend",
|
|
"source": "sessions 12/15/16 · création module OTO Ventes / OTOV7 CONFOTUR (hors périmètre worker · CLAUDE.md #8)"
|
|
},
|
|
"custom_doctypes": {
|
|
"libelle": "Créer les DocTypes custom (OTO Dossier Vente, CONFOTUR Application, Faisabilité, Publiciste Log) avant l'import des Workspaces et du Workflow",
|
|
"owner": "ERPNext Backend",
|
|
"source": "session 15 · DocTypes custom à créer avant import Workspaces (run-book RBAC)"
|
|
},
|
|
"taux_commission": {
|
|
"libelle": "Confirmer les taux de commission vendeurs (barème reste taux_pct null tant que non confirmé)",
|
|
"owner": "Direction",
|
|
"source": "qa/audit_5d contrôle D1.1 (A_CONFIRMER)"
|
|
},
|
|
"rnc_emisor": {
|
|
"libelle": "Confirmer le RNC émetteur pour l'émission e-CF DGII",
|
|
"owner": "Compta",
|
|
"source": "qa/audit_5d contrôle D1.2 (A_CONFIRMER)"
|
|
},
|
|
"itbis_tipocambio": {
|
|
"libelle": "Confirmer le taux ITBIS et le TipoCambio USD/DOP pour l'e-CF",
|
|
"owner": "Compta Fiscaliste eCF",
|
|
"source": "qa/audit_5d contrôle D1.3 (A_CONFIRMER)"
|
|
},
|
|
"seuil_uaf": {
|
|
"libelle": "Confirmer le seuil d'opération de déclaration UAF (Ley 155-17)",
|
|
"owner": "Oficial de Cumplimiento",
|
|
"source": "qa/audit_5d contrôle D2.3 (A_CONFIRMER)"
|
|
},
|
|
"endpoint_otoia": {
|
|
"libelle": "Renseigner l'endpoint runtime du chat OTOIA (reste null / a_confirmer côté livrable)",
|
|
"owner": "ERPNext Backend",
|
|
"source": "session 19 · endpoint OTOIA = null (a_confirmer)"
|
|
}
|
|
},
|
|
"notes": [
|
|
"Agrégateur de MÉTA-NIVEAU, une couche au-dessus du run-book RBAC (rbac/apply_plan) : il ordonne le déploiement VPS de TOUS les livrables gated du mandat en un seul plan de phases, pas seulement des 3 volets RBAC.",
|
|
"Périmètre PROUVÉ, pas déclaré : l'ensemble des modules à déployer est DÉRIVÉ de .gitea/workflows/ci.yml (réutilise q4lib/registry.parse_ci — zéro duplication · #5), jamais listé à la main. La couverture module→phase est BIJECTIVE avec le CI (moins le module lui-même).",
|
|
"Séparation des pouvoirs (ISA 315) : le run-book s'exclut lui-même (self_module) — il ne s'auto-déploie pas et ne se compte pas.",
|
|
"ANTI-INVENTION (#6) : ce spec ne contient AUCUN chiffre métier (taux, montant, seuil). Les paramètres réglementaires non confirmés restent des CONFIRMATIONS sourcées (owner + source), jamais une valeur fabriquée « pour faire PASS ». Chaque confirmation cite sa source (contrôle audit_5d ou session).",
|
|
"Le worker N'ÉCRIT JAMAIS sur le VPS (CLAUDE.md #8) : ce module produit un plan ordonné en-repo ; l'application réelle (bench migrate, imports, vérifications HTTP) reste côté serveur, pilotée par l'agent DevOps / ERPNext Backend."
|
|
]
|
|
}
|