feat: Gestion des secteurs et migration v3.0.4+304

- Ajout système complet de gestion des secteurs avec contours géographiques
- Import des contours départementaux depuis GeoJSON
- API REST pour la gestion des secteurs (/api/sectors)
- Service de géolocalisation pour déterminer les secteurs
- Migration base de données avec tables x_departements_contours et sectors_adresses
- Interface Flutter pour visualisation et gestion des secteurs
- Ajout thème sombre dans l'application
- Corrections diverses et optimisations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
pierre
2025-08-07 11:01:45 +02:00
parent 6a609fb467
commit 599b9fcda0
662 changed files with 213221 additions and 174243 deletions

View File

@@ -0,0 +1,136 @@
#!/bin/bash
# Script pour configurer l'accès à la base de données des adresses
# avec segmentation par environnement basée sur les plages d'IPs
echo "Configuration de l'accès à la base de données des adresses"
echo "=========================================================="
echo ""
echo "Architecture des IPs par environnement :"
echo "- DÉVELOPPEMENT : 13.23.33.40-49 (13.23.33.4%)"
echo "- RECETTE : 13.23.33.30-39 (13.23.33.3%)"
echo "- PRODUCTION : 13.23.33.20-29 (13.23.33.2%)"
echo ""
# Fonction pour créer l'utilisateur sur un container
create_user_on_container() {
local container=$1
local ip_pattern=$2
local env_name=$3
echo ""
echo "Configuration pour $env_name ($container)..."
echo "Pattern IP autorisé : $ip_pattern"
# Se connecter au container MariaDB et créer l'utilisateur
incus exec $container -- mysql -u root -p -e "
-- Créer l'utilisateur pour l'accès depuis la plage IP de l'environnement
CREATE USER IF NOT EXISTS 'adresses_user'@'$ip_pattern' IDENTIFIED BY 'd66,AdrGeo.User';
GRANT SELECT ON adresses.* TO 'adresses_user'@'$ip_pattern';
-- Créer aussi un utilisateur localhost pour les tests directs
CREATE USER IF NOT EXISTS 'adresses_user'@'localhost' IDENTIFIED BY 'd66,AdrGeo.User';
GRANT SELECT ON adresses.* TO 'adresses_user'@'localhost';
FLUSH PRIVILEGES;
-- Vérifier
SELECT user, host FROM mysql.user WHERE user = 'adresses_user' ORDER BY host;
"
if [ $? -eq 0 ]; then
echo "✓ Utilisateur créé sur $container"
else
echo "✗ Erreur lors de la création sur $container"
fi
}
# Fonction pour tester la connexion
test_connection() {
local api_container=$1
local maria_ip=$2
local env_name=$3
echo ""
echo "Test de connexion $env_name : $api_container -> $maria_ip..."
incus exec $api_container -- mysql -h $maria_ip -u adresses_user -p'd66,AdrGeo.User' -e "
SELECT CONCAT('Connexion réussie depuis ', @@hostname, ' vers ', '$maria_ip') as Status;
SELECT DATABASE();
SHOW TABLES FROM adresses LIMIT 3;
" 2>/dev/null
if [ $? -eq 0 ]; then
echo "✓ Connexion réussie!"
else
echo "✗ Échec de la connexion"
fi
}
# Menu de sélection
echo ""
echo "Que voulez-vous configurer ?"
echo "1. Environnement DÉVELOPPEMENT uniquement (dva-maria)"
echo "2. Environnement RECETTE uniquement (rca-maria)"
echo "3. Environnement PRODUCTION uniquement (pra-maria)"
echo "4. Tous les environnements"
echo ""
read -p "Votre choix (1-4): " choice
case $choice in
1)
create_user_on_container "dva-maria" "13.23.33.4%" "DÉVELOPPEMENT"
;;
2)
create_user_on_container "rca-maria" "13.23.33.3%" "RECETTE"
;;
3)
create_user_on_container "pra-maria" "13.23.33.2%" "PRODUCTION"
;;
4)
create_user_on_container "dva-maria" "13.23.33.4%" "DÉVELOPPEMENT"
create_user_on_container "rca-maria" "13.23.33.3%" "RECETTE"
create_user_on_container "pra-maria" "13.23.33.2%" "PRODUCTION"
;;
*)
echo "Choix invalide"
exit 1
;;
esac
# Tests de connexion
echo ""
echo "=========================================================="
echo "Tests de connexion"
echo "=========================================================="
read -p "Voulez-vous tester les connexions? (o/n): " test_choice
if [ "$test_choice" = "o" ]; then
case $choice in
1)
test_connection "dva-api" "13.23.33.46" "DÉVELOPPEMENT"
;;
2)
test_connection "rca-api" "13.23.33.36" "RECETTE"
;;
3)
test_connection "pra-api" "13.23.33.26" "PRODUCTION"
;;
4)
test_connection "dva-api" "13.23.33.46" "DÉVELOPPEMENT"
test_connection "rca-api" "13.23.33.36" "RECETTE"
test_connection "pra-api" "13.23.33.26" "PRODUCTION"
;;
esac
fi
echo ""
echo "Configuration terminée!"
echo ""
echo "Récapitulatif de la sécurité mise en place :"
echo "- Chaque environnement a sa propre plage d'IPs autorisée"
echo "- DÉVELOPPEMENT : seuls les containers en 13.23.33.4x peuvent accéder à dva-maria"
echo "- RECETTE : seuls les containers en 13.23.33.3x peuvent accéder à rca-maria"
echo "- PRODUCTION : seuls les containers en 13.23.33.2x peuvent accéder à pra-maria"
echo ""
echo "Cela empêche un container de DEV d'accéder aux données de PROD par exemple."