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_extension

  • Isolation 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 logs avec 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 ⭐

  1. Sécurité cryptographique : SHA-256 pour toutes signatures et hash

  2. Isolation données : Base MySQL dédiée par client

  3. Traçabilité inviolable : Chaînage blockchain dans table logs

  4. Archivage conformé : Conservation automatique avec empreintes

  5. 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