feat: Migration complète vers architecture v2.0.1

CHANGEMENTS MAJEURS:
- Fusion des 3 bases de données (uof_frontal, uof_linet, logs) en une seule base 'cleo'
- Migration vers PDO avec pattern Singleton et requêtes préparées
- Configuration externalisée via variables d'environnement (.env)
- Séparation application (dva-front) et base de données (maria3)

SÉCURITÉ:
- Suppression des credentials en dur dans le code
- Implémentation de la classe Database avec gestion d'erreurs sécurisée
- Protection contre les injections SQL via requêtes préparées

INFRASTRUCTURE:
- Container dva-front : MariaDB supprimé, application PHP uniquement
- Container maria3 : Base de données centralisée MariaDB 11.4
- Script de déploiement optimisé (deploy-cleo-fast.sh)

CORRECTIONS:
- Ajout des tables manquantes (z_sessions, z_stats, marches_listes)
- Compatibilité PDO (fetch_assoc → fetch(PDO::FETCH_ASSOC))
- Suppression des commentaires debug dans les réponses AJAX
- Permissions fichiers (.env 644, logs 777 avec owner nobody)

DOCUMENTATION:
- Mise à jour README.md avec architecture actuelle
- Migration README.md marqué comme complété
- TODO.md avec état d'avancement et prochaines étapes (PROD IN4)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-12 15:45:52 +02:00
parent 046c23f2d2
commit 77e7cf5d85
29 changed files with 181755 additions and 467 deletions

View File

@@ -0,0 +1,48 @@
-- Script pour créer les tables manquantes dans la base cleo
-- Date: 2025-09-12
USE cleo;
-- Table z_sessions pour la gestion des sessions utilisateurs
CREATE TABLE IF NOT EXISTS `z_sessions` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) NOT NULL,
`fk_user` int(11) DEFAULT 0,
`role` varchar(10) DEFAULT NULL,
`data` text,
`date_modified` datetime DEFAULT NULL,
`ip` varchar(50) DEFAULT NULL,
`browser` varchar(255) DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `idx_sid` (`sid`),
KEY `idx_user` (`fk_user`),
KEY `idx_date` (`date_modified`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Ajouter la colonne 'date' manquante dans z_logs si elle n'existe pas
ALTER TABLE `z_logs`
ADD COLUMN IF NOT EXISTS `date` datetime DEFAULT NULL AFTER `date_histo`;
-- Index pour améliorer les performances
ALTER TABLE `z_logs` ADD INDEX IF NOT EXISTS `idx_date_logs` (`date`);
-- Table z_stats pour les statistiques (optionnelle pour plus tard)
CREATE TABLE IF NOT EXISTS `z_stats` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`date` datetime DEFAULT NULL,
`root` varchar(255) DEFAULT NULL,
`server_ip` varchar(50) DEFAULT NULL,
`server_soft` varchar(255) DEFAULT NULL,
`server_name` varchar(255) DEFAULT NULL,
`client_ip` varchar(50) DEFAULT NULL,
`client_browser` text,
`client_origine` text,
`client_page` text,
`fk_user` int(11) DEFAULT 0,
`appname` varchar(50) DEFAULT NULL,
`delay` decimal(10,3) DEFAULT 0,
PRIMARY KEY (`rowid`),
KEY `idx_date_stats` (`date`),
KEY `idx_user_stats` (`fk_user`),
KEY `idx_ip_stats` (`client_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;