CIACEMS · OCPV · 18 septembre 2026 · Proposition 1.3

Cahier des charges — E-Grenier V2.1

Commercialisation des produits vivriers, traçabilité des lots et convergence avec OCPV Info-Prix
Bénéficiaire : Office d’aide à la Commercialisation des Produits Vivriers — OCPV
Proposition élaborée par : CIACEMS
Date : 18 septembre 2026
Version : 1.4 — projet de cahier des charges à examiner avec l’OCPV
Document associé : Offre technique et financière CIACEMS — E-Grenier V2.1, version 1.4

1. Objet et résultats attendus

Le présent cahier des charges définit la plateforme E-Grenier V2.1 à concevoir, réaliser, déployer et accompagner pour l’OCPV. La solution reliera les producteurs, les acheteurs, les agents des hubs et les services de pilotage autour d’un parcours traçable : déclaration d’une récolte, réception et contrôle, publication commerciale, réservation, paiement et enlèvement.

La prestation comprend explicitement la reprise et la refonte du code source E-Grenier V2 fourni par l’ancien prestataire, ainsi que la production de la documentation technique du code refondu. CIACEMS analysera les éléments remis, déterminera les composants à conserver, à restructurer ou à remplacer et réalisera les adaptations nécessaires au périmètre V2.1. La documentation sera produite pendant ces travaux et remise avec les versions du logiciel.

La refonte technique est arrêtée sur Python avec Django pour les services backend, Django Ninja pour les API et Vue.js pour l’application web SPA, avec les fonctions PWA prévues. La cible sera une architecture intégralement organisée en microservices, conteneurisée avec Docker, orchestrée par Docker Swarm et administrée au moyen de Dokploy sur des VPS hébergés localement. PostgreSQL, Redis et Celery assureront respectivement la persistance, le cache et les traitements asynchrones.

La V2.1 devra permettre à l’OCPV de disposer d’un système sur mesure, accessible sur téléphone et ordinateur, dont les données opérationnelles contribueront à l’information sur les marchés. Son développement et son évolution seront conduits avec les agents et les utilisateurs, grâce à un accompagnement en présentiel et à une maintenance organisée dans la durée.

Les résultats attendus sont les suivants :

Les exigences ci-dessous constituent la proposition de référence. Les hypothèses de volume, de calendrier et de service seront arrêtées lors du cadrage. Toute modification du périmètre financé fera l’objet d’une estimation et d’une décision écrite avant sa réalisation.

2. Périmètre de réalisation

2.1 Périmètre initial couvert par l’offre

Domaine Réalisation attendue
Reprise et refonte du code source Inventaire et diagnostic du code V2 remis ; plan de refonte ; restructuration ou remplacement des composants concernés ; tests de non-régression
Production de la documentation Documentation du code, de l’architecture, des données et des API ; guides d’installation, de test, de déploiement et de maintenance ; mise à jour à chaque livraison
Accès et identité SPA Vue.js responsive avec fonctions PWA ; Auth0 ; SMS OTP et moyens de connexion complémentaires ; enrôlement et habilitations
Producteurs et lots Fiches acteurs, déclarations, références de lot, préparation de collecte ou de dépôt, suivi des statuts
Hubs et catalogue Réception, pesée, contrôle, mouvements de stock, publication et réservation
Transactions Commandes, intégration d’un prestataire ou agrégateur de paiement, confirmations, exceptions et rapprochement
SIM et pilotage Référentiels, indicateurs, carte des stocks et flux, exports et un connecteur Info-Prix
Analyse prédictive Étude des données, expérimentation limitée et rapport d’évaluation des prévisions à J+7/J+30
Architecture et exploitation Microservices Django/Django Ninja, PostgreSQL, Redis, workers Celery ; Docker et Docker Swarm pilotés par Dokploy sur VPS locaux ; sécurité, supervision, sauvegardes et restauration
Accompagnement Pilote, formation, documentation, transfert et maintenance initiale de 12 mois proposée

La période de 12 mois est une hypothèse de rédaction pour cette proposition ; sa durée sera confirmée dans l’offre retenue. Elle commence à la réception de la mise en service, selon le procès-verbal convenu.

2.2 Hypothèses proposées pour dimensionner la prestation

Ces valeurs définissent une base de chiffrage et de recette ; elles ne décrivent pas les volumes réels de l’OCPV.

Paramètre Base proposée
Code à reprendre Version identifiée du code source E-Grenier V2 remise à CIACEMS ; inventaire des modules et plan de refonte arrêtés au cadrage pour couvrir les exigences V2.1
Pilote Jusqu’à 3 hubs dans 2 régions à désigner avec l’OCPV
Utilisateurs du pilote Jusqu’à 300 producteurs et acheteurs, avec 30 agents ou référents formés
Langue initiale Français ; vocabulaire et messages simplifiés, testés avec les utilisateurs
Capacité de référence 10 000 comptes enregistrés, 100 000 lots historisés, 100 sessions simultanément actives
Initialisation des données Une famille de fichiers normalisés, jusqu’à 20 000 lignes au total ; une répétition de reprise et un chargement final
Paiement Une intégration avec un prestataire ou agrégateur disposant des services nécessaires au parcours retenu
Info-Prix Un connecteur selon un contrat d’échange défini avec les interlocuteurs concernés
Expérimentation prédictive Jusqu’à 3 couples produit–marché, selon la disponibilité d’un historique exploitable
Déploiement initial Un environnement de production en microservices sur des VPS locaux, un environnement de test isolé et des sauvegardes séparées ; nombre de VPS et ressources arrêtés au dimensionnement

La capacité technique de référence permet une montée en usage au-delà du pilote. L’accompagnement physique d’une généralisation nationale sera planifié et chiffré selon les sites et moyens retenus.

2.3 Extensions à programmer séparément

La trajectoire comprend des applications mobiles Android et iOS développées avec Flutter, en langage Dart, et distribuées sur les stores. Elles utiliseront les API Django Ninja du backend et les mêmes règles métier et d’habilitation que la plateforme web. Elle comprend également des services USSD, WhatsApp et SMS interactifs, un numéro vert, une assistance vocale et l’élargissement des analyses prédictives. Leur mise en production complète ne fait pas partie du forfait initial. Chaque extension sera spécifiée et chiffrée avec ses dépendances opérateurs et ses frais récurrents.

L’accès mobile initial sera assuré par la PWA depuis les navigateurs compatibles. La généralisation nationale, l’équipement des hubs, les terminaux, les balances connectées et l’exploitation physique des activités logistiques seront également organisés hors de ce forfait logiciel.

3. Utilisateurs et responsabilités

Profil Actions principales Limites de responsabilité
Producteur ou représentant de coopérative Gérer son dossier, déclarer un lot, suivre le contrôle, les commandes et les paiements Accès à ses données et aux opérations autorisées sur ses lots
Acheteur Consulter les offres, réserver, commander, payer et suivre l’enlèvement Accès à ses commandes ; données personnelles du producteur limitées au besoin métier
Agent de hub Réceptionner, peser, contrôler et autoriser les opérations du hub Périmètre territorial et fonctions attribués par l’OCPV
Superviseur territorial Suivre les hubs, examiner les écarts et les incidents Accès aux unités placées sous sa responsabilité
Agent de suivi des transactions Examiner les confirmations, rapprochements et exceptions Aucun droit implicite de modifier les stocks ou les habilitations
Agent SIM ou analyste Contrôler les données, exploiter les indicateurs et produire les exports Périmètre d’accès défini selon la sensibilité des données
Administrateur OCPV Gérer les référentiels, les comptes et les habilitations Actions sensibles journalisées ; droits attribués explicitement
Support CIACEMS Diagnostiquer et maintenir les fonctions autorisées Accès nominatif, limité, traçable et révocable

L’OCPV désignera les personnes habilitées à valider les règles de gestion, les données de référence, les contrôles au hub et la recette. CIACEMS assurera la conception, la réalisation, la documentation et l’accompagnement du périmètre convenu.

4. Exigences fonctionnelles

4.1 Accès, authentification et enrôlement

Constat sur E-Grenier V2.0 : l’écran d’inscription (register) est accessible à tous, sans vérification préalable : n’importe qui peut ouvrir un compte producteur, y compris à tort. Par ailleurs, le producteur peut faire apparaître une récolte avant contrôle de l’OCPV ; seuls les agents en sont informés, alors que la publication sur la marketplace relève de l’OCPV.

Orientation V2.1 : un espace d’enrôlement des producteurs remplace l’inscription libre. Le candidat dépose une demande ; l’OCPV vérifie les pièces KYC, valide ou refuse avec motif, puis génère les accès du producteur. Une fois authentifié, il déclare ses récoltes reçues et contrôlées ; seuls les agents habilités de l’OCPV publient les offres sur la marketplace. L’acheteur intéressé règle directement le producteur sur mobile money — le produit ayant été vérifié par l’OCPV — et les taxes ou recettes institutionnelles dues à l’OCPV sont identifiées et tracées à part du prix de la marchandise.

L’ajout d’Auth0 vise à diversifier les moyens de connexion en complément du SMS OTP, à réduire éventuellement la dépense de SMS à grande échelle et à permettre un accès alternatif lors d’une indisponibilité du service SMS. Les alternatives devront être préparées avant un incident et rattachées au même compte métier de manière sécurisée.

Réf. Exigence Critère d’acceptation
ACC-01 Proposer des entrées adaptées à l’intention : vendre, acheter ou accéder à un espace professionnel Chaque profil réalise son parcours principal sur téléphone et ordinateur sans installation obligatoire
ACC-02 Intégrer Auth0 avec SMS OTP, compte avec adresse électronique et mot de passe, et une connexion Google Chaque méthode retenue fonctionne sur le périmètre de recette ; une panne SMS simulée permet la connexion à un compte ayant une alternative préparée, sans code SMS
ACC-03 Rattacher les méthodes au compte après vérification de la maîtrise des identités concernées Aucune fusion automatique sur la seule égalité d’une adresse ou d’un numéro ; les droits métier restent identiques après rattachement
ACC-04 Organiser récupération de compte, révocation, limitation des tentatives et renvois OTP Les scénarios de perte d’accès, d’abus de renvoi et de session révoquée sont vérifiés ; aucune récupération ne contourne les contrôles d’identité définis
ACC-05 Distinguer création du compte et validation métier par l’OCPV Un utilisateur non validé accède seulement aux fonctions autorisées ; les refus et demandes de complément sont motivés
ACC-06 Appliquer les habilitations par profil, territoire et opération ; renforcer l’authentification des comptes privilégiés Les appels directs à l’API hors périmètre sont refusés ; les administrateurs utilisent un second facteur sans dépendance exclusive au SMS
ACC-07 Remplacer l’inscription libre producteur par un parcours d’enrôlement dédié, sans création automatique de compte producteur Aucun accès producteur actif n’est obtenu sans demande d’enrôlement et décision OCPV ; l’ancien parcours register ouvert n’est plus proposé pour ce profil
ACC-08 Permettre à l’OCPV de recevoir, instruire, compléter et trancher les demandes KYC avant génération des accès Dossier consultable, historique des décisions, pièces associées ; compte producteur créé ou activé seulement après validation explicite

Les moyens complémentaires ne seront pas rendus obligatoires pour les producteurs qui utilisent le SMS OTP. La formation présentera leur préparation et leurs conditions d’usage. Les abonnements Auth0 et les services de messagerie seront souscrits selon les dispositions financières retenues.

4.2 Déclaration des lots et préparation logistique

Réf. Exigence Critère d’acceptation
LOT-01 Créer une déclaration avec producteur, produit, unité, quantité estimée, localisation et période de disponibilité Un identifiant unique est généré et conservé pendant le cycle du lot ; les données obligatoires sont contrôlées
LOT-02 Prévoir le dépôt au hub ou une demande de collecte, avec suivi de la prise en charge Le mode choisi, le hub, les rendez-vous et les changements de statut sont visibles et historisés
LOT-03 Permettre une saisie assistée par un agent identifié La fiche conserve le bénéficiaire, l’agent intervenant et la date ; l’action ne confère pas à l’agent la propriété du lot
LOT-04 Conserver les brouillons de déclaration en faible connectivité et synchroniser sans duplication Après coupure et reprise, un même brouillon ne crée qu’un lot ; l’utilisateur distingue enregistré sur l’appareil, transmis et validé
LOT-05 Limiter le producteur à la déclaration et au suivi de ses lots ; interdire toute publication commerciale directe Aucune offre visible sur la marketplace sans action d’un agent OCPV habilité ; tentative bloquée côté interface et API

La planification initiale de collecte sera manuelle et assistée par le système. L’optimisation automatique des tournées et le suivi de véhicules en temps réel relèvent d’extensions.

4.3 Hubs, contrôle et stocks

Réf. Exigence Critère d’acceptation
HUB-01 Enregistrer réception, quantité mesurée, unité, agent, date et écarts avec la déclaration Un bordereau est produit ; tout écart est conservé et expliqué
HUB-02 Enregistrer le contrôle selon une grille validée par l’OCPV Le lot reçoit un statut accepté, en attente ou refusé ; la décision et son auteur sont consultables
HUB-03 Conditionner la publication commerciale au contrôle, à un stock positif et à une action explicite d’un agent OCPV habilité Un lot non accepté, sans quantité disponible ou non publié par l’OCPV ne peut être commandé, y compris par appel direct à l’API
HUB-04 Distinguer stocks reçus, disponibles, réservés, sortis et retirés pour perte ou non-conformité Toute variation possède un motif et un auteur ; la somme des mouvements explique le stock affiché
HUB-05 Émettre un bon d’enlèvement rattaché au lot et à la commande Une sortie ne dépasse pas la quantité autorisée ; un bon déjà exécuté ne permet pas un second enlèvement

Le contrôle OCPV correspondra à la procédure métier validée. Les critères de qualité, les instruments de pesée et les responsabilités physiques devront être définis avec les responsables des hubs.

4.4 Catalogue, réservations et commandes

Réf. Exigence Critère d’acceptation
COM-01 Présenter les offres par produit, localisation, hub, quantité, unité, prix et date de contrôle Les informations publiques proviennent des données validées ; les données personnelles non nécessaires restent masquées
COM-02 Réserver la quantité lors de la confirmation de commande pour une durée paramétrée Deux commandes concurrentes ne peuvent réserver la même quantité ; l’expiration libère le stock selon les règles convenues
COM-03 Suivre commande, annulation, paiement, autorisation d’enlèvement et sortie Chaque étape possède sa date et son acteur ; les états incompatibles sont refusés
COM-04 Notifier les changements importants dans l’application et par le canal retenu Les échecs d’envoi sont visibles et relançables sans répéter l’opération métier
COM-05 Réserver la publication et la dépublication des offres marketplace aux agents OCPV habilités Seuls ces agents déclenchent la visibilité commerciale après contrôle ; auteur, date et motif de retrait sont historisés

Le prix applicable, la durée de réservation, les frais et les conditions d’annulation seront présentés avant confirmation. Une modification ultérieure des paramètres ne réécrira pas l’historique d’une commande.

4.5 Paiements et traitement des exceptions

L’orientation proposée est un paiement direct au producteur sur mobile money via le prestataire retenu, une fois le lot contrôlé et publié par l’OCPV. Le parcours financier sera défini avant l’intégration : bénéficiaire producteur, part institutionnelle due à l’OCPV, confirmation, délais, frais, remboursement et conditions d’enlèvement. L’OCPV et CIACEMS valideront que les services du prestataire permettent ce fonctionnement et la traçabilité des deux composantes.

Réf. Exigence Critère d’acceptation
PAY-01 Initier un paiement associé à une commande et à un bénéficiaire identifié Montant, référence et bénéficiaire sont vérifiables ; les tentatives et résultats sont conservés
PAY-02 Vérifier les notifications et traiter les doublons et les retards Une notification répétée ne produit ni double règlement enregistré ni double autorisation ; un retour navigateur seul ne valide pas le paiement
PAY-03 Distinguer paiement initié, en attente, confirmé, échoué, annulé et remboursé Les transitions respectent les confirmations du prestataire et les règles métier ; les conflits sont soumis à examen
PAY-04 Rapprocher commandes et règlements et traiter les exceptions Les montants incomplets, notifications absentes et bénéficiaires incorrects apparaissent dans une file de traitement avec historique
PAY-05 Suivre réclamations, annulations et remboursements Un dossier contient motif, pièces, responsable et décision ; le remboursement est suivi jusqu’à confirmation du prestataire ou justification de son statut

Les opérations de paiement, de remboursement et de sortie nécessitent une confirmation en ligne. Aucun mécanisme automatique de répartition de recettes institutionnelles n’est inclus dans le périmètre initial.

4.6 Information de marché, pilotage et analyse

Réf. Exigence Critère d’acceptation
SIM-01 Gérer les références produits, unités, marchés, hubs et territoires Les échanges utilisent des correspondances documentées ; les valeurs inconnues sont rejetées ou soumises à validation
SIM-02 Produire des tableaux de bord sur stocks, transactions, volumes, transport renseigné et flux entre sites Les indicateurs disposent d’une définition, d’une période, d’une provenance et d’un export vérifiable
SIM-03 Prévoir une vue cartographique par territoire ou hub Les données affichées correspondent aux filtres ; leur date de mise à jour et leur statut sont visibles
SIM-04 Échanger les données convenues avec Info-Prix par un connecteur documenté Le connecteur traite les erreurs, les reprises et les doublons ; les jeux de recette sont rapprochés avec le système destinataire
SIM-05 Conserver séparément les observations de marché et les transactions de la plateforme Les utilisateurs identifient la source et la couverture ; les données ne sont pas additionnées sans règle d’agrégation
SIM-06 Évaluer des prévisions à J+7/J+30 sur le périmètre d’expérimentation Un rapport décrit les données, les limites, les erreurs et la comparaison à une référence simple sur des périodes de test distinctes

Si l’API Info-Prix n’est pas disponible, un échange par fichiers pourra être validé comme solution transitoire. Il ne vaudra pas recette du connecteur API : la prestation restante sera identifiée et replanifiée par écrit.

L’expérimentation prédictive donnera lieu à un rapport même si les données sont insuffisantes ou si les modèles ne surpassent pas la référence simple. La mise en production de prévisions opérationnelles sera décidée selon ces résultats ; aucun taux de précision n’est promis avant l’évaluation.

4.7 Administration et traçabilité

Réf. Exigence Critère d’acceptation
ADM-01 Administrer comptes, hubs, référentiels et paramètres métier Les droits sont vérifiés ; les changements sensibles conservent auteur, date et valeurs concernées
ADM-02 Consulter les événements des lots, commandes et paiements Une recherche par référence reconstitue la chaîne des opérations sans exposer de secrets d’authentification
ADM-03 Exporter les données selon les habilitations L’export respecte le périmètre de l’agent et est journalisé pour les données sensibles
ADM-04 Gérer les demandes d’assistance et d’évolution Chaque demande possède une catégorie, une priorité, un responsable, un statut et une réponse traçable

5. Données et règles de cohérence

Le modèle de données couvrira les acteurs, identités de connexion, habilitations, territoires, hubs, produits, unités, lots, contrôles, stocks, réservations, commandes, règlements, sorties et observations économiques. Les données personnelles seront séparées des informations destinées à la publication.

Les invariants suivants seront vérifiés à la recette :

  1. Un identifiant de lot reste stable pendant toute sa progression.
  2. La quantité disponible ne devient jamais négative.
  3. Une déclaration ou une notification reçue plusieurs fois ne produit pas plusieurs opérations équivalentes.
  4. Un lot non contrôlé ne devient pas commandable.
  5. Une confirmation de paiement possède une source vérifiable.
  6. Une modification d’habilitation s’applique aux opérations suivantes, y compris via les API.
  7. Une correction conserve l’historique utile à la traçabilité.

La reprise initiale comprendra un modèle de fichier, les règles de validation, un rapport d’erreurs, une répétition sur l’environnement de test et un bilan du chargement final. L’OCPV sera responsable de la validation métier des données remises et des rapprochements.

6. Exigences techniques et qualité de service

6.1 Architecture et exploitation

L’architecture V2.1 sera entièrement structurée en microservices métier déployables séparément. Chaque service backend disposera de son projet Django, de ses API Django Ninja, de sa configuration, de ses tests et de son image Docker. Les traitements asynchrones seront exécutés dans des conteneurs workers distincts des processus qui répondent aux requêtes HTTP.

6.1.1 Technologies retenues et rôle de chaque composant

Composant Technologie retenue Rôle dans la V2.1
Services backend Python et Django Règles métier, accès aux données, migrations, contrôles d’accès et administration technique
API Django Ninja API HTTP/JSON, validation des entrées et sorties, contrats OpenAPI et documentation des interfaces
Interface web Vue.js en SPA Navigation et composants d’interface ; fonctions PWA, brouillons hors ligne et synchronisation conformément au périmètre
Applications mobiles Android et iOS Flutter, langage Dart Applications distribuées sur les stores et connectées aux API Django Ninja ; extension prévue au §2.3
Serveur du frontend Nginx dans un conteneur dédié Distribution des fichiers compilés de la SPA et prise en charge des routes côté navigateur
Exécution des API Serveur ASGI de production, Uvicorn Exécution des services Django derrière le reverse proxy ; le serveur de développement ne sera pas utilisé en production
Données persistantes PostgreSQL Données métier, transactions, contraintes d’intégrité et migrations par service
Cache initial Redis Mise en cache à durée de vie contrôlée des données de consultation et calculs réutilisables
Tâches asynchrones Celery et workers dédiés Notifications, imports, exports, synchronisations, rapprochements et traitements analytiques
File de tâches Instance Redis distincte du cache Transport initial des tâches Celery, avec persistance et politique de reprise documentées
Planification Celery Beat Déclenchement des tâches périodiques avec une seule instance active du planificateur
Conteneurisation Docker Images versionnées des services et des composants auto-hébergés
Orchestration Docker Swarm Placement des services, réplicas, redémarrage, réseaux internes et déploiements progressifs
Gestion des déploiements Dokploy Pilotage des versions, configurations, domaines, environnements et déploiements sur les VPS
Entrée HTTPS Traefik Routage vers les services, certificats et restrictions d’accès aux points d’entrée
Métriques et alertes Prometheus, Grafana et Alertmanager Mesure de l’état des services, tableaux de bord et alertes opérationnelles
Journaux centralisés Grafana Loki et Grafana Alloy Collecte, consultation et corrélation des journaux des conteneurs

Les versions exactes seront fixées dans le dossier de conception et les fichiers de dépendances, en retenant des versions maintenues et compatibles. Le socle Django privilégiera une branche à support long lorsqu’elle répond aux besoins. Chaque mise à jour suivra un cycle de vérification, de recette et de déploiement documenté.

6.1.2 Intérêt de Django, Django Ninja et Vue.js

Django apporte un cadre de développement structuré : modèles de données, ORM, migrations et administration intégrée. Ce socle facilite l’organisation des règles métier et la maintenance du backend dans la durée. L’administration Django sera réservée aux usages techniques autorisés ; les parcours des utilisateurs seront réalisés dans Vue.js. Présentation officielle de Django

Django fournit notamment des mécanismes de protection contre les injections SQL dans les usages couverts par son ORM, les requêtes intersites avec authentification par cookie lorsque la protection CSRF est activée, ainsi que des réglages de sécurisation HTTP. Leur efficacité dépend de leur configuration et des pratiques de développement ; les droits métier et la sécurité de la SPA seront vérifiés séparément. Sécurité Django

Django Ninja permet de décrire et valider les données des API à partir de schémas typés et de produire des contrats OpenAPI. Cela soutient les échanges entre microservices, l’intégration du frontend et la production documentaire. Les contrats générés seront complétés par les règles métier, les erreurs, les droits requis et les exemples d’usage. Documentation Django Ninja

Vue.js est retenu pour son organisation en composants et la réalisation d’une SPA, dont la navigation est assurée dans le navigateur. Les fonctions PWA et hors ligne seront développées explicitement et vérifiées sur les appareils retenus. Documentation Vue.js

6.1.3 Découpage des microservices et propriété des données

Microservice Responsabilité principale Données sous sa responsabilité
Acteurs et habilitations Enrôlement, profils et droits métier, rattachement à l’identité Auth0 Acteurs, rattachements territoriaux et habilitations
Lots, hubs et stocks Déclaration, réception, contrôle, catalogue disponible, réservation et sortie physique Lots, contrôles, mouvements et réservations de stock
Commandes Parcours commercial, prix applicables, états et demandes d’annulation Commandes et historique commercial
Paiements Intégration du prestataire, confirmations, rapprochements et remboursements Références de règlement, notifications vérifiées et exceptions financières
SIM et analyse Échanges Info-Prix, indicateurs, cartographie et traitements analytiques Observations, données agrégées et résultats d’analyse
Notifications Préparation, envoi et suivi des notifications Demandes d’envoi et statuts de livraison

Chaque microservice possédera une base logique PostgreSQL et un compte d’accès limités à ses données. Une instance PostgreSQL peut initialement héberger plusieurs de ces bases, sans autoriser les autres services à lire ou modifier directement leurs tables. Les échanges passeront par des API authentifiées ou des événements documentés.

La réservation et la modification du stock resteront dans une même transaction du service lots–hubs–stocks. Les parcours traversant plusieurs services utiliseront des références stables, des opérations idempotentes, des délais et des compensations explicites. Les événements critiques seront enregistrés avec l’opération métier dans PostgreSQL avant leur transmission ; les envois non aboutis seront repris et rapprochés. Les tests couvriront les notifications dupliquées et les interruptions entre commande, réservation et paiement.

6.1.4 VPS locaux, orchestration et déploiement

Les composants auto-hébergés seront déployés en conteneurs Docker sur des VPS locaux, dont la localisation physique en Côte d’Ivoire sera confirmée avec l’hébergeur et l’OCPV. Le dossier de conception précisera le nombre de VPS, les ressources CPU/RAM/disque, les réseaux privés, la répartition des rôles et la capacité d’évolution. Les environnements de test et de production seront isolés.

Docker Swarm assurera l’orchestration ; Dokploy constituera l’interface de gestion des déploiements et des serveurs. Les images seront identifiées par version, conservées dans un registre et déployées après validation des tests. Les migrations PostgreSQL, les contrôles de santé et le retour à une version compatible seront documentés et exercés. Les réplicas et les limites de ressources seront définis service par service. Docker Swarm, architecture Dokploy

Les volumes PostgreSQL, les fichiers métier et les données persistantes du transport de tâches feront l’objet de règles de stockage et de sauvegarde distinctes des images. Leur placement et leur restauration seront définis explicitement : le redémarrage d’un conteneur sur un autre VPS ne suffit pas à rendre ses données disponibles. La topologie précisera aussi le nombre de nœuds de gestion Swarm et le maintien de leur quorum selon le niveau de continuité retenu.

L’hébergement local couvre les composants placés sous l’exploitation du projet. Auth0 et les prestataires de SMS ou de paiement restent des services externes ; les données échangées, leur localisation et leurs conditions de traitement seront documentées dans le dossier de sécurité.

6.2 Objectifs proposés et modalités de mesure

Réf. Objectif initial proposé Vérification
QUA-01 Temps de réponse API inférieur à 2 secondes au 95e percentile pour les opérations courantes Test de 30 minutes avec 100 sessions actives et scénario de charge documenté ; services tiers et imports massifs mesurés séparément
QUA-02 Réussite d’au moins 99 % des requêtes métier valides dans ce test Les refus attendus d’autorisation ou de stock ne sont pas comptés comme erreurs techniques ; absence de violation des invariants
QUA-03 Disponibilité applicative mensuelle cible de 99,5 % sur l’infrastructure retenue Mesure externe du service ; publication de la disponibilité brute et de la mesure contractuelle avec exclusions explicites et approuvées
QUA-04 Perte de données maximale cible de 24 heures et restauration cible en 8 heures Exercice complet sur environnement de reprise ; durée mesurée depuis le début de la restauration et prérequis documentés
QUA-05 Compatibilité sur la matrice de navigateurs et appareils validée au cadrage Recette des parcours principaux sur Android, iPhone et ordinateur via navigateur ; fonctionnalités hors ligne vérifiées par appareil
QUA-06 Interfaces utilisables au clavier, libellés explicites et absence de dépendance à la seule couleur Vérification des parcours et tests d’usage avec un panel représentatif

Ces objectifs supposent la souscription des moyens d’hébergement et de sauvegarde dimensionnés pour les atteindre. Les contrats de services tiers, leur disponibilité et leurs coûts seront examinés avant d’arrêter les engagements d’exploitation. Une haute disponibilité multisite constitue une extension à dimensionner séparément.

6.3 Reprise et refonte du code source E-Grenier V2

La reprise commencera par l’identification de la version remise, l’inventaire des modules et des dépendances, puis l’examen des règles métier, des interfaces, des accès et des procédures disponibles. CIACEMS reconstituera les éléments nécessaires à la compréhension du fonctionnement lorsque ceux-ci ne sont pas documentés.

Le plan de refonte précisera les composants conservés, restructurés ou remplacés, les raisons de ces choix, les effets sur les données et les interfaces et l’ordre des travaux. La réalisation portera sur les composants nécessaires au périmètre V2.1 défini dans le présent cahier des charges. Les décisions seront examinées avec l’OCPV avant les modifications correspondantes.

La reprise des règles et des données de la V2 conduira à une refonte du backend dans les microservices Django/Django Ninja et du web dans la SPA Vue.js. Le plan décrira les correspondances entre les fonctions reprises et les nouveaux services, les conversions de données et les contrats d’API associés.

Réf. Tâche exigée Critère d’acceptation
REF-01 Réceptionner et analyser le code source V2 La version ou l’archive remise est identifiée ; un inventaire des modules, dépendances, procédures disponibles et difficultés de reprise est livré
REF-02 Établir le plan de refonte Chaque composant concerné possède une décision motivée de conservation, restructuration ou remplacement et un rattachement aux exigences V2.1
REF-03 Réaliser la refonte du code source Les composants refondus sont livrés dans un dépôt versionné ; les responsabilités des modules sont explicites et les changements sont traçables
REF-04 Vérifier les fonctions conservées et les nouvelles fonctions Les scénarios de référence définis au diagnostic et les critères V2.1 sont exécutés ; les écarts sont justifiés ou corrigés avant recette

6.4 Production et recette de la documentation

La documentation du code constituera une tâche de réalisation à part entière. Elle couvrira les modules, les règles métier, les traitements complexes, les dépendances et les décisions de conception. Elle sera complétée par le modèle de données, les contrats d’API et les procédures nécessaires à l’installation, aux tests, au déploiement, à l’exploitation et à la maintenance.

Réf. Tâche exigée Critère d’acceptation
DOC-01 Produire la documentation technique du code refondu Les modules livrés, leurs responsabilités, règles et interfaces sont décrits ; les traitements nécessitant une explication sont documentés au plus près du code
DOC-02 Livrer les guides et les maintenir avec le logiciel Chaque version livrée est associée à une documentation correspondante et à un historique des changements ; les guides couvrent prérequis, configuration sans secrets, installation, tests, déploiement et maintenance
DOC-03 Vérifier l’utilisabilité de la documentation et transmettre les connaissances Un intervenant technique habilité autre que l’auteur des guides installe la solution sur un environnement de test, exécute les vérifications et retrouve les modules concernés à partir des documents remis ; le compte rendu et les corrections sont fournis

La réception technique inclura la vérification des exigences REF-01 à REF-04 et DOC-01 à DOC-03. La remise du code seul ne permettra pas de considérer les tâches de refonte et de documentation comme achevées.

6.5 Cache Redis et traitements asynchrones Celery

Le cache Redis accélérera les consultations qui le permettent. Chaque famille de clés aura une durée de vie, une règle d’invalidation et un périmètre d’accès définis. Les quantités commandables, les habilitations sensibles et les confirmations de paiement seront vérifiées auprès du service propriétaire ; une valeur en cache ne décidera pas seule d’une opération irréversible.

Le Redis du cache et celui qui transporte les tâches Celery seront des instances distinctes. Le premier pourra appliquer une politique d’éviction adaptée ; le second utilisera une persistance, une limite mémoire et une politique sans éviction automatique des messages. Des alertes seront prévues avant saturation. Politiques Redis, transport Redis de Celery

Les workers Celery seront déployés séparément des API et répartis en files selon les usages : notifications, échanges et imports, traitements financiers différés, analyses. Les délais maximaux, les nouvelles tentatives, les erreurs définitives et la reprise manuelle seront définis. Les tâches seront conçues pour éviter de répéter les effets d’une même demande ; un traitement financier conservera une référence et un état métier durables dans PostgreSQL. Une seule instance active de Celery Beat déclenchera les travaux planifiés. Règles de traitement des tâches Celery

6.6 Supervision et maintenance de l’infrastructure

Prometheus collectera les métriques des VPS, conteneurs, API et composants de données. Grafana présentera les tableaux de bord et Alertmanager acheminera les alertes aux interlocuteurs désignés. Le suivi couvrira la disponibilité, les erreurs, les temps de réponse, le disque, la mémoire, les connexions PostgreSQL, les files Celery et les échecs de sauvegarde. Principes de Prometheus

Grafana Alloy collectera les journaux destinés à Loki. Les services propageront un identifiant de corrélation pour reconstituer le parcours d’une demande entre API et workers. Les secrets, codes OTP et pièces sensibles seront exclus des journaux ; leurs accès et durées de conservation seront définis. Grafana Alloy, Grafana Loki

Les sauvegardes des bases, fichiers métier et configurations nécessaires à la reprise seront chiffrées et conservées sur un stockage distinct de l’hôte de production concerné. Des restaurations seront exercées selon les objectifs QUA-04. Les sauvegardes PostgreSQL incluront une stratégie documentée de cohérence et, si le niveau de reprise le nécessite, d’archivage des journaux de transactions. Sauvegarde et restauration PostgreSQL

6.7 Recette de l’architecture technique

Réf. Exigence Preuve attendue
TEC-01 Livrer les microservices Python/Django et leurs API Django Ninja Inventaire des services, contrats OpenAPI, tests et versions ; déploiement d’un service sans reconstruction imposée de tous les autres
TEC-02 Livrer la SPA Vue.js et ses fonctions PWA Vérification de la navigation, du rechargement d’une route, des droits et des brouillons hors ligne prévus
TEC-03 Isoler la propriété des données PostgreSQL Un compte de service ne peut pas lire ou modifier la base d’un autre ; les contrats d’échange et migrations sont documentés
TEC-04 Préserver la cohérence des opérations entre microservices Tests de réservation concurrente, événement dupliqué, service indisponible et reprise après interruption ; aucun double effet métier
TEC-05 Séparer le cache Redis et le transport Celery Configurations et instances distinctes ; purge du cache sans perte des tâches ; opérations critiques vérifiées hors cache
TEC-06 Exécuter et reprendre les tâches asynchrones Test d’arrêt d’un worker, reprise, erreur définitive et nouvelle tentative ; état traçable et absence de double règlement
TEC-07 Déployer les conteneurs avec Swarm et Dokploy sur VPS locaux Inventaire des VPS et images, contrôles de santé, réseaux, secrets, procédure de déploiement et exercice de retour
TEC-08 Superviser les services et centraliser les journaux Tableaux de bord opérationnels ; simulation d’une indisponibilité et d’un échec de sauvegarde avec réception des alertes
TEC-09 Restaurer les données persistantes Restauration de PostgreSQL et des fichiers métier, puis vérification d’un parcours applicatif ; mesure des objectifs de reprise

Les résultats TEC-01 à TEC-09 seront joints au dossier de recette. La documentation L12 décrira la topologie, les API, les files Celery, les règles de cache, les responsabilités des bases et les procédures de surveillance et de reprise.

7. Sécurité et protection des données

Réf. Exigence Preuve attendue
SEC-01 Protéger les échanges, les secrets, les comptes privilégiés et les sauvegardes Configuration revue ; aucun secret dans les dépôts ou journaux ; rotation et restauration documentées
SEC-02 Vérifier les droits côté serveur pour chaque opération sensible Tests d’accès entre comptes, profils et territoires ; refus des accès non autorisés
SEC-03 Limiter les abus et vérifier les données entrantes Tests sur tentatives de connexion, renvois OTP, fichiers, entrées API et notifications de paiement
SEC-04 Protéger les traces d’audit et limiter leurs accès Contrôle des droits, durée de conservation définie et export des événements nécessaires au diagnostic
SEC-05 Formaliser finalités, données collectées, destinataires et durées de conservation Registre fonctionnel des traitements et règles validés avec l’OCPV avant mise en service
SEC-06 Encadrer les accès de support et le traitement des incidents Accès nominatifs et révocables ; procédure d’alerte, de qualification et de compte rendu vérifiée
SEC-07 Protéger les VPS, réseaux et interfaces d’administration Pare-feu, accès SSH par clés et restrictions d’origine ; PostgreSQL, Redis, Swarm, Dokploy et supervision accessibles seulement selon les réseaux et droits prévus
SEC-08 Sécuriser la SPA, les API et les échanges entre services Jetons vérifiés quant à leur signature, émetteur, audience et expiration ; droits métier côté serveur ; CORS limité, CSRF pour les usages par cookie et politique de sécurité du contenu côté web
SEC-09 Durcir les conteneurs et maintenir les composants Images et dépendances versionnées, analyse des vulnérabilités, privilèges minimaux, secrets hors code, mises à jour et preuve de revue de configuration Django

La configuration Django de production fera l’objet d’une revue dédiée : mode de débogage désactivé, hôtes autorisés explicites, secrets protégés et HTTPS correctement pris en compte derrière Traefik. Les protections XSS de l’interface Vue.js, les contrôles de fichiers et la limitation des requêtes seront testés dans leur contexte d’usage. Configuration de production Django

Le dossier de conception précisera la localisation de l’hébergement et des services tiers, les accès et les éventuels transferts de données. Les formalités applicables seront identifiées avec les responsables compétents de l’OCPV avant la mise en service. La prestation comprend les vérifications de sécurité de CIACEMS ; un audit indépendant pourra être commandé séparément.

8. Gouvernance et calendrier proposé

Le planning de référence couvre 20 semaines de réalisation initiale, à compter de la réunion de lancement et de la mise à disposition des prérequis. Les travaux correspondant aux semaines 1 à 15 ont déjà été réalisés dans le cadre du projet Agrilink-CI, initialement prévu en lieu et place d’E-Grenier ; leurs livrables (cadrage, conception, parcours accès, lots, hubs, stocks, catalogue, intégrations et documentation associées) seront intégrés et consolidés dans E-Grenier V2.1. Il reste à mener la phase finale (semaines 16 à 20), dont la livraison du MVP est visée sous une semaine à la date de mise à jour du présent document. Un référent métier OCPV et un chef de projet CIACEMS assureront le suivi opérationnel. Les disponibilités des partenaires et les arbitrages seront suivis dans un registre partagé.

Période Travaux Jalon Statut
Semaines 1 à 3 Ateliers, diagnostic du code V2, périmètre, règles, données et partenaires Cadrage, inventaire du code et hypothèses validés Déjà réalisé (Agrilink-CI → intégration V2.1)
Semaines 4 à 5 Plan de refonte, maquettes, architecture et plan de recette Conception et plan de refonte validés avant les travaux concernés Déjà réalisé (Agrilink-CI → intégration V2.1)
Semaines 6 à 10 Refonte et réalisation des parcours accès, lots, hubs, stocks et catalogue ; documentation des modules Démonstration du parcours de commercialisation et remise de sa documentation Déjà réalisé (Agrilink-CI → intégration V2.1)
Semaines 11 à 14 Refonte et intégration des paiements, échanges Info-Prix, tableaux de bord et expérimentation analytique Intégrations et documentation disponibles en environnement de test Déjà réalisé (Agrilink-CI → intégration V2.1)
Semaine 15 Achèvement des livrables équivalents (Agrilink-CI) Jalons intermédiaires de pilote et recette couverts Déjà réalisé (Agrilink-CI → intégration V2.1)
Semaines 16 à 18 Tests de non-régression, recette documentaire, formation, pilote et corrections Recette métier, technique et documentaire En cours — livraison cible : une semaine
Semaines 19 à 20 Mise en service, remise du code refondu et de la documentation finale, accompagnement et transfert Réception de la mise en service — MVP En cours — livraison cible : une semaine
12 mois après réception, durée proposée Assistance, maintenance, visites et évolutions convenues Bilans mensuels et revues trimestrielles Planifié

Une réunion opérationnelle hebdomadaire et un comité de pilotage mensuel sont proposés. Les remarques sur un livrable seront regroupées par l’OCPV, avec un objectif de retour sous cinq jours ouvrés. L’absence de retour ne vaut pas validation ; ses conséquences éventuelles sur le calendrier seront examinées conjointement.

9. Livrables et recette

Réf. Livrable Contenu minimal
L01 Dossier de cadrage Périmètre, hypothèses, responsabilités, dépendances, règles et planning
L02 Dossier de conception Maquettes Vue.js, services Django/Django Ninja, données par service, topologie VPS/Swarm, flux, habilitations et sécurité
L03 Plateforme et code source refondu SPA Vue.js, services Django/Django Ninja, workers Celery, Dockerfiles, manifests Swarm/Dokploy, migrations PostgreSQL et configurations sans secrets
L04 Dossier d’intégration Authentification, paiement, Info-Prix, contrats d’échange et procédures de reprise
L05 Dossier de tests et de recette Matrice exigences–tests, résultats, anomalies, corrections et procès-verbaux
L06 Dossier de déploiement et d’exploitation VPS, Docker/Swarm/Dokploy, Traefik, Redis, Celery, supervision, sauvegardes PostgreSQL, restauration et retour de version
L07 Formation et transfert Supports, guides, sessions réalisées et évaluation des acquis
L08 Rapport d’expérimentation prédictive Qualité des données, méthode, résultats, limites et suite proposée
L09 Plan de maintenance et bilan de démarrage Support, engagements, contacts, calendrier de présence et demandes ouvertes
L10 Bilans de maintenance Incidents, interventions, évolutions, consommation des jours et état du service
L11 Diagnostic du code V2 et plan de refonte Version reçue, inventaire, règles reconstituées, dépendances, décisions par composant et scénarios de non-régression
L12 Documentation technique du code refondu Description des modules, règles, architecture, données et API ; guides de développement et de maintenance ; correspondance avec la version livrée et preuve de recette documentaire

La recette reposera sur les critères de chaque exigence et sur des scénarios complets : enrôlement producteur, accès alternatif, lot jusqu’à l’enlèvement avec publication OCPV, rupture réseau, concurrence sur le stock, paiement retardé ou dupliqué, accès hors périmètre et restauration. Elle comprendra également les tests de non-régression des composants repris et l’exercice de prise en main de la documentation prévu par DOC-03.

Une anomalie bloquante empêche un parcours essentiel ou porte atteinte aux données ou à la sécurité. Une anomalie majeure dégrade une fonction essentielle sans solution acceptable. Une anomalie mineure permet de poursuivre l’usage. La réception exigera l’absence d’anomalie bloquante ou majeure ouverte ; les réserves mineures éventuelles seront inscrites dans un procès-verbal avec une date de correction.

Les tests seront conduits en environnement dédié, puis confirmés sur le pilote selon un protocole convenu. Les paiements de production seront limités à des opérations autorisées par les parties. L’OCPV prononcera la recette métier ; CIACEMS fournira les preuves techniques.

10. Accompagnement en présentiel et formation

La présence terrain permettra de concevoir les parcours avec les utilisateurs et d’accompagner leur appropriation. La base proposée comprend 20 journées d’intervention sur site pendant la réalisation, puis une journée par mois pendant les 12 mois de maintenance initiale.

Les 20 journées de réalisation seront réparties entre ateliers et conception — 6 journées —, préparation et conduite du pilote — 6 journées —, formation — 4 journées — et démarrage et transfert — 4 journées. Une journée correspond à une journée de présence d’au moins un intervenant CIACEMS ; les rôles mobilisés varieront selon les travaux.

Les interventions courantes se dérouleront à Abidjan. La base logistique comprend deux missions régionales de trois jours au maximum pour deux intervenants, à programmer dans les 20 journées d’intervention. Les frais de déplacement et de séjour de ces missions sont intégrés à l’offre. Les salles, la mobilisation des bénéficiaires, leurs déplacements, leurs équipements et la connectivité des sites seront organisés par l’OCPV.

La formation couvrira jusqu’à 30 agents ou référents, répartis en groupes adaptés. Elle portera sur les fonctions métier, le traitement des exceptions, l’administration et l’assistance aux utilisateurs. Un exercice pratique permettra de vérifier l’autonomie sur les tâches principales. Les référents accompagneront ensuite les producteurs et acheteurs du pilote avec l’appui de CIACEMS.

11. Maintenance évolutive et continuité de l’accompagnement

11.1 Couverture initiale proposée

La période initiale de 12 mois comprendra l’assistance, la correction des anomalies du périmètre livré, les opérations préventives, le suivi des sauvegardes et les mises à jour de sécurité compatibles avec l’architecture retenue. Les anomalies de conformité seront corrigées sans consommation de l’enveloppe d’évolutions.

Une enveloppe de 24 jours-personnes d’évolution sur 12 mois est proposée pour les améliorations des fonctions livrées : champs, formulaires, règles, rapports et adaptations mineures d’interfaces. Elle comprend l’analyse, le développement, les vérifications, la documentation et la livraison. Une journée-personne correspond à sept heures de travail. Les journées de présence mensuelle sont distinctes de cette enveloppe.

Chaque évolution sera estimée avant réalisation et priorisée par l’OCPV. Le bilan mensuel indiquera les jours prévus, réalisés et restants. Les nouveaux modules et les extensions du §2.3 feront l’objet d’un chiffrage spécifique. Le reliquat éventuel sera examiné avant la fin de la période ; il ne prolongera pas automatiquement le contrat.

11.2 Support proposé

Le support sera ouvert du lundi au vendredi, de 8 h à 17 h, heure d’Abidjan, hors jours fériés. Les délais suivants se comptent pendant ces plages et concernent la prise en charge ; l’objectif de rétablissement sera précisé après diagnostic.

Priorité Exemple Prise en charge Suivi attendu
Critique Service indisponible ou atteinte avérée à l’intégrité d’une opération 4 heures ouvrées Qualification, mesure de protection ou contournement et point de situation chaque jour ouvré
Majeure Parcours important dégradé 1 jour ouvré Plan de correction ou contournement sous 2 jours ouvrés
Mineure Défaut sans blocage métier 3 jours ouvrés Correction planifiée dans une version convenue
Évolution Amélioration ou nouveau besoin 5 jours ouvrés Qualification et estimation avant arbitrage

La supervision automatique fonctionnera en continu. Une astreinte humaine permanente n’est pas comprise dans le forfait initial. Un incident dépendant d’un tiers restera suivi par CIACEMS, avec des délais de résolution liés aux engagements de ce tiers.

11.3 Évolution à long terme

Une revue trimestrielle fixera les prochaines priorités à partir des usages, des incidents et des besoins des services. À partir du neuvième mois, l’OCPV et CIACEMS prépareront le programme de l’année suivante, les moyens de présence terrain et les ressources nécessaires.

L’accompagnement se poursuivra dans le cadre d’un contrat annuel de maintenance et d’évolution à convenir avant l’échéance. La durée financée, la capacité d’évolution, les déplacements et les frais tiers seront explicités pour chaque période. La documentation et le transfert de compétences assureront la continuité des connaissances.

12. Maîtrise du système et réversibilité

Les données métier seront placées sous la maîtrise de l’OCPV. Le code des développements spécifiques, les scripts, la documentation et les procédures d’exploitation seront remis selon les dispositions du contrat. Les composants préexistants et services tiers seront inventoriés avec leurs conditions d’utilisation.

La remise comprendra un export des données dans des formats documentés, un inventaire des comptes et abonnements, les accès d’administration convenus et une procédure de déploiement. Un atelier de transfert permettra aux référents désignés de réaliser les opérations courantes. Les conditions de propriété et de droits d’usage seront formalisées avant signature.

13. Prérequis et décisions de lancement

Sujet Décision ou apport attendu
Pilotage Référents métier, technique et décisionnel désignés par l’OCPV
Reprise du code source Code E-Grenier V2, version de référence, accès nécessaires et éléments techniques disponibles remis à CIACEMS ; modalités d’utilisation et de modification du code confirmées
Pilote Hubs, régions, filières et utilisateurs sélectionnés
Règles métier Contrôle, unités, prix, réservation, paiements, annulation et enlèvement validés
Prestataires Contacts, contrats, documentation, comptes de test et accès de production pour identité, SMS, paiement et Info-Prix
Données Référentiels et fichiers initiaux remis et validés
Exploitation Hébergeur et localisation des VPS locaux, dimensionnement, réseaux, registre d’images, stockage de sauvegarde, abonnements et financement récurrent arrêtés
Présence terrain Calendrier d’intervention, logistique des sites et disponibilité des agents convenus
Conditions commerciales Qualification fiscale de l’enveloppe, durée de maintenance et échéancier arrêtés dans l’offre

Une dépendance indisponible fera l’objet d’un constat précisant les fonctions concernées, les travaux réalisables et le jalon à replanifier. Le remplacement d’un livrable par une solution transitoire nécessitera un accord écrit sur son périmètre et sa recette.

14. Validation du cahier des charges

La version retenue précisera les exigences incluses, les extensions différées, les hypothèses de dimensionnement et les engagements de service. Elle sera rattachée à l’offre technique et financière et au calendrier approuvés.

Partie Représentant habilité Date et visa
OCPV À renseigner À renseigner
CIACEMS À renseigner À renseigner

La validation portera sur une V2.1 utilisable, vérifiable et accompagnée dans la durée, avec une trajectoire d’évolution partagée entre l’OCPV et CIACEMS.