DST - Dossier de spécification technique
DAT - Dossier d'Architecture Technique Arpelin
1. Objectif du document
Ce document décrit l'implémentation technique détaillée du logiciel Arpelin, CMS cloud avec modules de caisse enregistreuse et bornes de commande certifiés NF525. Il constitue le référentiel technique d'implémentation conformément aux exigences du paragraphe 4.3.1 du référentiel NF525.
2. Architecture technique générale
2.1. Vue d'ensemble de l'architecture
┌─────────────────────────────────────────────────────────────┐
│ INTERNET (HTTPS/TLS) │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────────┐
│ NGINX 1.24 (Load Balancer) │
│ Certificats SSL/TLS automatiques │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────────┐
│ PHP-FPM 8.3 (FastCGI) │
│ Gestion sessions + Cache opcache │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────────┐
│ MARIADB 10.11.13 │
│ Bases dédiées par client isolées │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────────┐
│ VPS OVH Ubuntu 24.04.2 LTS │
│ x86_64 GNU/Linux 6.8.0-60 │
└─────────────────────────────────────────────────────────────┘2.2. Caractéristiques techniques
Plateforme : Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-60-generic x86_64)
Serveur web : Nginx 1.24 avec modules SSL/TLS
Moteur PHP : PHP-FPM 8.3 avec opcache activé
Base de données : MariaDB 10.11.13 (compatible MySQL)
Chiffrement : HTTPS/TLS obligatoire (certificats automatiques)
Versioning : Git local pour gestion du code source
3. Architecture applicative
3.1. Structure des répertoires et modules
3.2. Architecture modulaire
3.2.1. Moteur principal (Core)
Router : Gestion des URLs et routage vers modules appropriés
Session Manager : Gestion sessions sécurisées 8h avec régénération token
Auth Manager : Authentification multi-rôles (Caissier/Manager/Admin)
Database Layer : Couche d'abstraction pour accès aux bases de données
3.2.2. Modules NF525 ⭐
Module Caisse : Interface encaissement, validation, génération tickets
Module Bornes : Interface client autonome, intégration caisse
Module Clôtures : Automatiques (cron) et manuelles (droits)
Module Archivage : Conservation données figées, exports conformité
3.2.3. API et intégrations
Payment APIs : SumUp, Smile&Pay, Satispay
Webhooks : Retours validation paiement temps réel
Export APIs : Formats conformes audit (CSV/PDF)
4. Base de données - Architecture technique
4.1. Modèle de données NF525 ⭐
4.1.1. Tables critiques conformité
Table transactions (données figées) ⭐
Table logs (audit JET) ⭐
Table closures (clôtures) ⭐
4.1.2. Tables fonctionnelles
Table articles
Table users
4.2. Isolation des données par client
4.2.1. Stratégie multi-tenant
Base dédiée : Chaque client a sa propre base MySQL
Convention nommage :
cms_domaine-client_extensionIsolation complète : Aucune donnée partagée entre clients
Résolution automatique : Via nom de domaine d'accès
4.2.2. Gestion des connexions
5. Implémentation de la sécurité
5.1. Authentification et sessions
5.1.1. Gestion des sessions sécurisées
5.1.2. Hashage mots de passe
5.2. Chiffrement et signatures ⭐
5.2.1. Hashage SHA-256 pour intégrité
5.2.2. Signature électronique tickets ⭐
5.3. Protection HTTPS/TLS
5.3.1. Configuration Nginx
6. Implémentation modules NF525 ⭐
6.1. Module caisse enregistreuse
6.1.1. Processus de validation transaction
6.1.2. Génération tickets conformes
6.2. Journal d'évènements techniques (JET) ⭐
6.2.1. Enregistrement automatique
6.2.2. Codes d'action standardisés
6.3. Système de clôtures ⭐
6.3.1. Clôtures automatiques (cron)
7. Intégrations APIs de paiement
7.1. Architecture modulaire paiements
7.1.1. Interface commune
7.1.2. Implémentation SumUp
7.2. Gestion des webhooks
7.2.1. Endpoint unifié webhooks
8. Système de sauvegarde et archivage
8.1. Sauvegardes automatiques
8.1.1. Script de sauvegarde quotidienne
8.1.2. Vérification intégrité sauvegardes
8.2. Archivage données NF525 ⭐
8.2.1. Processus d'archivage automatique
9. Monitoring et surveillance
9.1. Surveillance système
9.1.1. Monitoring performances
9.1.2. Logs d'accès et erreurs
9.2. Contrôle intégrité NF525 ⭐
9.2.1. Vérification chaîne de logs
9.2.2. Export conformité audit
10. Déploiement et gestion des versions
10.1. Système de versioning Git
10.1.1. Structure branches
10.1.2. Script de déploiement
10.2. Tests automatiques
10.2.1. Tests d'intégrité NF525
11. Performance et optimisation
11.1. Optimisation base de données
11.1.1. Configuration MariaDB
11.1.2. Index critiques NF525
11.2. Cache et optimisation PHP
11.2.1. Configuration OPcache
11.2.2. Cache applicatif
12. Documentation technique et maintenance
12.1. Procédures de maintenance
12.1.1. Maintenance préventive mensuelle
12.1.2. Surveillance continue
12.2. Documentation API interne
12.2.1. API fonctions NF525
13. Conformité et audit
13.1. Points de contrôle NF525 ⭐
13.1.1. Checklist conformité technique
✅ Traçabilité : Table
logsavec chaînage cryptographique✅ Inaltérabilité : Données figées en table
transactions✅ Horodatage : Précision à la seconde pour toutes opérations
✅ Signature électronique : SHA-256 + extrait 4 caractères ticket
✅ Clôtures automatiques : Cron quotidien/mensuel/annuel
✅ Clôtures manuelles : Interface dédiée avec droits
✅ Archivage : Conservation données période selon réglementation
✅ Numérotation : Tickets séquentiels uniques par client
✅ TVA : Calcul automatique par taux article
✅ Moyens paiement : Traçabilité complète tous moyens
13.1.2. Procédure audit technique
13.2. Mise à disposition administration
13.2.1. Interface audit dédiée
14. Conclusion
14.1. Synthèse technique
Le Dossier d'Architecture Technique (DAT) d'Arpelin présente une implémentation robuste et conforme aux exigences NF525, structurée autour de :
Architecture sécurisée : HTTPS/TLS, isolation données par client
Modules NF525 certifiés : Caisse, bornes, clôtures, archivage
Traçabilité complète : Chaînage cryptographique, JET, immutabilité
Performance optimisée : Cache, index, configuration adaptée
Maintenance facilitée : Scripts automatisés, monitoring continu
14.2. Points techniques clés ⭐
Sécurité cryptographique : SHA-256 pour toutes signatures et hash
Isolation données : Base MySQL dédiée par client
Traçabilité inviolable : Chaînage blockchain dans table logs
Archivage conformé : Conservation automatique avec empreintes
API modulaires : Intégrations paiement extensibles
14.3. Évolutivité
L'architecture technique permet :
Montée en charge horizontale (ajout VPS)
Intégration nouvelles APIs paiement
Extension modules fonctionnels
Maintien conformité lors évolutions
Document établi dans le cadre de la certification NF525 Version : 1.0 Date : Janvier 2024 Responsable : Emre KOSE
Last updated