DataVirt
Des bases de données virtuelles, masquées, au-dessus de la production : une recette ou une démonstration en deux clics.
DataVirt s'installe sur votre appareil (Windows, Linux et Android) et s'ouvre avec votre compte Prophetix, le même que pour les applications web.
DataVirt se branche sur vos bases SQL Server, PostgreSQL, MariaDB, MySQL et Db2. Il en lit les schémas, en dessine les diagrammes, et repère les colonnes qui portent des données personnelles : noms, courriels, téléphones, IBAN, numéros de carte ou de sécurité sociale, dates de naissance, salaires. Pour chacune, vous choisissez comment la masquer — un nom plausible, un courriel fictif, une date décalée, un montant bruité — et le masque reste le même d'une table à l'autre, si bien que les jointures tiennent.
Une base virtuelle se crée en quelques secondes, sans copier les données : chaque table y est une vue sur la production, transparente ou masquée, et tout ce que l'application écrit reste dans la base virtuelle. La production n'est jamais touchée. On y passe un script de déploiement pour vérifier les changements de structure et de données, on la réinitialise, on la jette — ou elle s'efface toute seule à l'heure dite.
Un service, sous Windows, Linux ou dans un conteneur, garde les connexions chez vous. Son API pilote tout depuis un pipeline (GitHub, GitLab, Azure DevOps) ou un outil de tickets (Jira, ServiceNow) ; l'interface s'ouvre dans le navigateur, sur le bureau Windows et Linux, et sur Android.
DataVirt est en préparation. Elle rejoindra le catalogue de l'abonnement Prophetix à sa sortie.
Toutes les fonctionnalités de DataVirt
65 fonctionnalités en 10 domaines
Sources de données
- Se branche sur vos bases SQL Server, PostgreSQL, MariaDB, MySQL et Db2.
- Déclare une base de production, de préférence avec un compte en lecture seule, et teste la connexion.
- Lit le schéma : tables, colonnes, types, clés, index et volumes.
- Dessine le diagramme du schéma, exportable en SVG ou en Mermaid.
- Détecte les colonnes à données personnelles d'après leurs noms et un échantillon de valeurs : noms, courriels, téléphones, IBAN, cartes, numéros de sécurité sociale, adresses IP, dates de naissance, salaires.
- Marque chaque proposition « à confirmer » jusqu'à ce qu'une personne la valide.
Masquage des données
- Choisit une stratégie de masquage par colonne, parmi seize : valeur vide ou fixe, empreinte, nom, prénom, nom complet, courriel, téléphone, adresse, ville, IBAN, carte, partiel, date décalée, bruit, texte.
- Rend le masquage déterministe : une même valeur donne le même masque, donc jointures, regroupements et unicité tiennent.
- Compare les valeurs originales et masquées dans un aperçu, pour régler les règles avant de donner la base.
- Garde le type et la longueur de chaque colonne, et laisse les valeurs vides vides.
- Donne à chaque base son propre sel, si bien que les masques d'une base ne se recoupent pas avec ceux d'une autre.
Pseudonymisation, anonymisation et remplacement
- Pseudonymise les numéros sans collision, si bien qu'une clé primaire reste unique.
- Fait suivre le pseudonyme aux clés étrangères qui référencent la colonne, pour que les jointures tiennent.
- Compose un courriel à partir des prénom et nom pseudonymisés de la même ligne.
- Donne les mêmes pseudonymes dans toutes les bases d'un même domaine, pour suivre un client d'une recette à l'autre.
- Généralise les dates, les nombres et les textes (année, tranche, premiers caractères) pour aider à anonymiser.
- Mesure le risque de réidentification par le k-anonymat, sans puis avec les règles, et dit quoi généraliser.
- Remplace par des valeurs de vos listes, des tables de correspondance ou des formats fabriqués.
- Applique en un clic un profil de pseudonymisation, d'anonymisation ou de remplacement, et contrôle la cohérence des règles avant de les enregistrer.
- Retrouve, pour les administrateurs, le pseudonyme d'une valeur ou la valeur d'origine d'un pseudonyme, avec une trace au journal sans la valeur d'origine.
Bases virtuelles
- Crée une base virtuelle en quelques secondes, sans copier les données : chaque table y est une vue sur la production.
- Choisit le mode : transparent, masqué, ou masqué avec aperçu des originaux et des masques.
- Garde les écritures de l'application dans la base virtuelle ; la production n'est jamais écrite.
- Donne à l'application un compte propre à la base, qui ne lit pas les originaux en mode masqué.
- Expose chaque base sur un port de la machine de l'agent, comme un vrai serveur : l'application garde son pilote habituel.
- Choisit le port d'une base, y compris celui du moteur, pour que l'agent serve de machine de rebond.
- Donne une échéance à une base : elle s'efface toute seule à l'heure dite.
- Prolonge, réinitialise, supprime une base, et en change le mode.
- Matérialise des tables en copies réelles pour les écrire ou les modifier en structure.
- Liste les tables en lecture seule, sans clé primaire.
Scripts de déploiement
- Passe un script de déploiement sur une base virtuelle pour vérifier les changements de structure et de données.
- Découpe le script selon le moteur et le passe instruction par instruction.
- Rend un rapport : instructions, tables matérialisées, différences de structure avec la source et écritures table par table.
- Fait échouer le pipeline, par une réponse 422, quand une instruction échoue.
Analyse d'impact
- Mesure un jeu de requêtes de lecture avant et après un changement : index ajouté ou retiré, colonne retirée, renommée ou retypée, migration de données.
- Donne un verdict par requête : identique, plus rapide, plan changé, plus lente, résultat changé ou cassée.
- Montre les lignes apparues et disparues quand un résultat change.
- Liste les vues, fonctions, procédures, déclencheurs, clés et index qui dépendent de ce que le script touche.
- Simule un changement, puis remet la base à zéro.
- Enregistre le jeu de requêtes sur la source, pour toutes ses bases, et le met à jour depuis votre dépôt.
- Rend le rapport au format JUnit pour les pipelines, avec un échec en cas de régression.
Pilotage depuis le site
- Installe un agent chez vous, sur une VM Windows, Ubuntu, Debian ou Linux avec systemd, ou en conteneur : il joint vos bases et le site en HTTPS sortant.
- Enrôle l'agent avec un code affiché à l'installation, ou avec un billet pour une installation automatisée.
- Pilote depuis datavirt.prophetix.com vos sources, hôtes, masquages et bases virtuelles, avec les mêmes écrans que l'interface locale de l'agent.
- Garde les mots de passe de vos bases sur l'agent : le site n'en détient aucun.
- Donne des droits de lecture, d'opérateur ou d'administrateur sur un agent entier ou source par source, par courriel.
- Révoque un agent depuis le site, ce qui coupe son canal tout de suite.
- Tient un journal des opérations et garde l'interface locale de l'agent en secours.
Intégrations
- Expose une API REST documentée, qui crée, réinitialise et supprime les bases depuis un pipeline.
- Fournit des exemples pour GitHub Actions, GitLab CI et Azure DevOps.
- Crée, réinitialise ou supprime l'environnement d'un ticket depuis un outil de tickets, comme Jira ou ServiceNow.
- Envoie des webhooks signés pour suivre les événements.
- Protège l'accès par des clés d'accès à trois rôles, ou par la connexion à votre compte Prophetix.
Sur vos appareils
- Web : le site datavirt.prophetix.com et l'interface locale de l'agent, dans un navigateur.
- Windows et Linux : une application de bureau qui pilote un service DataVirt.
- Android : une application qui pilote un service DataVirt, pour créer une recette en deux gestes, prolonger, réinitialiser, supprimer, consulter un aperçu et lire le journal.
- Le service lui-même tourne sous Windows, sous Linux (systemd) ou dans un conteneur.
À savoir
- SQL Server et Db2 : le SQL est généré et relu, mais n'a jamais été exécuté sur de vrais serveurs. PostgreSQL et MariaDB ont été vérifiés.
- Sous MariaDB et MySQL, les tables écrites doivent être matérialisées : une écriture n'est pas possible sur une table virtuelle.
- Db2 demande le pilote d'IBM sur la machine du service.
- Le service Windows, l'application Android et la connexion Prophetix réelle n'ont pas encore été essayés ; le bureau n'a été essayé que contre un faux service, jamais sous Linux.
- Les clés étrangères, contraintes et déclencheurs de la source ne sont pas recréés sur les vues.
- La pseudonymisation aide à protéger les données, mais celui qui détient la clé et la source peut tout réidentifier.
- Le k-anonymat ne mesure pas tout le risque de réidentification.
- Le site datavirt.prophetix.com n'a pas encore été essayé en production : son déploiement et la connexion Prophetix réelle restent à faire.