1
Genèse synthétique — versions 1.10.23 à 2.1.0

Entre le 14 et le 24 août 2026, Qgis PostGIS Sync est passé d’un moteur sécurisé de création et de synchronisation à un environnement complet de publication PostGIS, de restitution QGIS et d’administration des accès. Cette synthèse regroupe les évolutions par fonction et remplace la succession détaillée de chaque correctif intermédiaire.
2
1.10.23 à 1.10.14x — Sécurité et restitution fidèle de QGIS
Socle sécurisé. La branche 1.10.23 clôt l’audit Bandit : SQL dynamique composé avec Psycopg, XML analysé avec defusedxml, sous-processus sans shell, secrets absents des journaux et licence intégrée.

Contexte QGIS restauré. Les versions suivantes consolident styles QML/QGZ/QGS, formulaires, actions, jointures, relations, ValueRelation, dépendances de couches, SVG, images et ressources externes. Les chemins historiques sont remplacés par des ressources persistantes du profil QGIS ou par le cache contrôlé du plugin. Les configurations canoniques sont vérifiées après enregistrement dans PostGIS.
3
1.10.15x à 1.10.195 — Catalogue, classement et administration
Le catalogue _ADMIN.CATALOGUE_COUCHES devient le référentiel logique des couches. Le classement M/X/R/I/E et ses combinaisons est ajouté sans renommer ni déplacer les tables métier. Les sources gb_ref reçoivent obligatoirement R. Des règles automatiques, une hiérarchie graphique et des contrôles Carto2/Géo-IDE complètent l’administration.

Trois rôles fonctionnels sont établis : Administrateur, Géomaticien et Utilisateur. Le plugin contrôle leurs associations PostgreSQL, leurs appartenances, les droits effectifs et les propriétaires des objets. L’aide devient contextuelle et adaptée au profil.
4
2.0 à 2.0.4 — Synchronisation pilotée par le classement
Source → PostGIS et PostGIS → gb_cons/gb_ref acceptent des lots de classements exacts, avec un lot distinct pour les couches non classées. Les synchronisations partielles ne provoquent plus de fausses suppressions.

La restitution inverse ne demande plus de dossier : support, nom d’origine et chemin cible sont lus dans les tables _ADMIN. La prévisualisation expose la couche PostGIS, le fichier d’origine, le classement et la destination calculée. Les commandes de sélection globale et les jointures SQL ambiguës sont corrigées.
5
2.0.5 à 2.0.20 — Coffre-fort, comptes et intégration QGIS
Les comptes sont créés avec mot de passe initial masqué et connexion authcfg facultative. Aucun secret n’est enregistré dans QSettings. Le démarrage n’ouvre plus de dialogue en boucle : le coffre QGIS est utilisé uniquement lorsqu’il est déjà disponible ou après une action explicite.

L’icône verte et la commande PostgreSQL native proposent la connexion, détectent une géobase classée et ouvrent le sélecteur adapté. Les géométries, SCR et regroupements facultatifs sont restaurés correctement. Le profil Administrateur est revalidé rapidement au démarrage grâce à un cache non sensible, avec protections contre la réentrance et compatibilité QGIS 3/Qt5 et QGIS 4/Qt6.
6
2.0.21 à 2.0.23 — Synchronisation différentielle et interface robuste
PostGIS → dossiers compare le contenu avant remplacement : aucune sauvegarde si la couche est identique ; sinon, tous ses fichiers éponymes sont archivés dans un ZIP horodaté. Le QML PostGIS est restitué sous le même nom, même lorsque seules les propriétés graphiques changent.

La composition sécurisée Identifier/Literal corrige CREATE ROLE et ALTER ROLE PASSWORD. L’onglet Rôles et utilisateurs devient défilable et résistant aux petites fenêtres comme aux forts facteurs DPI.
7
2.0.24 à 2.0.29 — Accès par rôle et maintenance PostgreSQL
Une matrice définit indépendamment les classements accessibles aux rôles Administrateur, Géomaticien et Utilisateur. Elle applique automatiquement USAGE aux schémas et GRANT/REVOKE SELECT aux couches. Une vue sécurisée ne révèle que les métadonnées autorisées ; les schémas techniques PostGIS sont exclus.

Les changements de connexion requalifient immédiatement le profil. En mode Utilisateur, la barre Administration reste masquée. Les corrections de propriétaires respectent les séquences OWNED BY et sont exécutées par petits lots afin de ne pas épuiser max_locks_per_transaction. Les rôles et les utilisateurs du coffre sont actualisés automatiquement dans l’interface.
8
2.1.0 — Installation assistée et état actuel
Sur un poste possédant déjà une connexion PostgreSQL authcfg vers une autre base du même serveur, le plugin recherche les bases geobase_* accessibles. S’il existe une cible unique, il crée automatiquement geobase_PostGIS en recopiant les paramètres non sensibles et en réutilisant l’identifiant authcfg, sans lire ni dupliquer le mot de passe. Plusieurs cibles ou identités déclenchent un choix ; une connexion existante n’est jamais écrasée.

La commande Administrateur Droits par classement règle séparément Lecture et Écriture/insertion pour les rôles Géomaticien et Utilisateur. Les choix sont appliqués aux couches et séquences ; DELETE reste interdit et les ressources _ADMIN demeurent exposées par des vues filtrées. Le regroupement automatique des tables utilise un seul niveau Couches_<nom du classement>, sans groupe de schéma.

À la version 2.1.0, le plugin réunit donc : synchronisation bidirectionnelle différentielle, conservation du contexte QGIS, classement exact, contrôle des droits et propriétés, gestion sécurisée des comptes, sélection classée des couches et installation compatible QGIS 3/QGIS 4.