Gestion des données, des PII et de la télémétrie
Cette page décrit comment le moteur principal gère les données : ce qu’il lit, ce qu’il conserve en mémoire du processus, ce qu’il écrit, la transformation déterministe d’expurgation des PII qu’il applique aux bundles d’audit, et le chemin de télémétrie facultatif.
Limite. Cette page décrit le comportement de la bibliothèque. La résidence des données au niveau du déploiement — la juridiction dans laquelle tes documents sont traités, l’emplacement des fichiers temporaires, la durée de conservation de la sortie, et les éventuels spans de télémétrie reçus par un backend — relève de la responsabilité de l’intégrateur, pas de celle de la bibliothèque. Le moteur te fournit des valeurs par défaut sûres et une transformation d’expurgation ; il ne peut pas prendre à ta place une décision de résidence des données ou de base légale.
Installation
Section intitulée « Installation »composer require nextpdf/core:^3L’expurgateur de PII et l’intercepteur de télémétrie font partie du package principal ; le chemin de télémétrie reste inerte tant qu’il n’y a pas à la fois un SDK OpenTelemetry présent et un intercepteur câblé par l’appelant.
Vue d’ensemble conceptuelle
Section intitulée « Vue d’ensemble conceptuelle »Le moteur est un processeur des données que tu lui confies, au sens d’ISO/IEC 29100 (iso_iec_29100#3.x56) : il agit sur le contenu des documents selon les instructions de l’intégrateur. Il ne contacte aucun serveur, ne conserve aucun contenu au-delà de la sortie que tu demandes, et ne transmet le contenu d’aucun document à un point de terminaison exploité par NextPDF.
Trois surfaces de données sont à prendre en compte :
- E/S de documents. L’entrée est lue depuis le chemin ou le flux que tu fournis ; la sortie est écrite dans le chemin ou le flux que tu fournis. Les tampons intermédiaires vivent en mémoire du processus pendant la durée du rendu et sont libérés à son achèvement.
- Bundles d’audit. Quand l’audit est activé, le moteur peut émettre un bundle de diagnostic. Avant la sérialisation, ce bundle passe par un expurgateur de PII déterministe.
- Télémétrie. Un intercepteur OpenTelemetry facultatif peut émettre des spans et des métriques. Il reste désactivé tant qu’il n’y a pas à la fois le SDK installé et l’intercepteur construit ; les attributs de span passent par un assainisseur d’attributs.
La posture de confidentialité s’inscrit dans le principe de l’article 32 du RGPD, selon lequel la pseudonymisation et la minimisation sont des exemples de garanties. L’application de ces garanties relève de la responsabilité du responsable du traitement (eu_gdpr#x50). La bibliothèque fournit le mécanisme d’expurgation. Le responsable du traitement décide de la base légale, de la conservation et de la résidence.
Surface d’API
Section intitulée « Surface d’API »Cette page ne documente pas à nouveau les API d’audit ou de télémétrie (voir /modules/core/audit/). Les composants pertinents pour la confiance sont l’assainisseur de PII par défaut appliqué aux bundles d’audit et l’assainisseur d’attributs de l’intercepteur OpenTelemetry ; leur comportement est décrit ci-dessous en fonction de leurs effets, pas de leur signature.
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »Par défaut, rien ne quitte le processus tant que tu ne le demandes pas. Aucun code n’active une sortie réseau ; ne rien ajouter est la valeur par défaut :
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
// Input read from disk, output written to disk. No telemetry SDK loaded,// so the telemetry path completes in sub-microsecond no-ops. No content// is transmitted anywhere.$doc = Document::open('input.pdf');$doc->save('output.pdf');Exemple de code — Production
Section intitulée « Exemple de code — Production »Lorsqu’un bundle d’audit est produit, l’expurgateur de PII déterministe masque les catégories courantes avant la sérialisation. La transformation est pure (aucune horloge, aucun aléa), donc un bundle est stable octet pour octet pour une entrée donnée :
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Audit\DefaultPiiSanitiser;
$scrubber = new DefaultPiiSanitiser();// E-mail → [EMAIL], IPv4 → [IPV4], IPv6 → [IPV6], X.500 DN attributes// beyond CN → keyword preserved, value [REDACTED]. Deterministic.$safe = $scrubber->sanitise($rawAuditField);Cas limites et pièges
Section intitulée « Cas limites et pièges »- L’expurgateur aide, mais ne garantit rien.
DefaultPiiSanitisermasque les catégories qu’il connaît (e-mail RFC 5321, IPv4/IPv6, plusieurs attributs de DN RFC 4514). Un champ de texte libre contenant un nom ou un identifiant que les motifs ne reconnaissent pas n’est pas masqué. Considère-le comme une couche de défense en profondeur, pas comme un contrôle de conformité qui supprimerait le devoir de revue de l’opérateur. - Les fichiers temporaires relèvent du déploiement. Le moteur gère les fichiers temporaires de manière sécurisée. L’emplacement de ton
TMPDIRet le fait queTMPDIRse trouve sur un stockage chiffré dans la bonne juridiction sont des décisions de déploiement. La bibliothèque ne peut pas imposer la résidence des données. - La télémétrie est facultative et assainie, mais elle n’est pas sans risque. Une fois câblé, l’intercepteur OpenTelemetry fait passer les attributs de span par un assainisseur d’attributs qui applique une politique de données zéro confiance. Le backend vers lequel tu exportes, ainsi que les règles de conservation et l’emplacement associés, relèvent entièrement du choix de l’intégrateur.
- La base légale n’est pas une décision de la bibliothèque. La licéité du traitement d’un document donné, et la base sur laquelle elle repose, sont déterminées par le responsable du traitement au titre du RGPD / du droit local (
eu_gdpr#x50) ; la bibliothèque n’y a aucune visibilité.
Performance
Section intitulée « Performance »L’expurgateur de PII est un ensemble de transformations regex pures, sans aucune E/S. La vérification de la présence du SDK par l’intercepteur de télémétrie est effectuée une seule fois à la construction, puis mise en cache. Quand aucun SDK n’est installé, chaque appel de télémétrie s’exécute en moins d’une microseconde, si bien que la valeur par défaut qui préserve la confidentialité (télémétrie désactivée) est aussi la valeur par défaut sans surcoût.
Notes de sécurité
Section intitulée « Notes de sécurité »Règles de frontière pour la gestion des données, reformulées pour la revue :
- Aucune sortie dissimulée. Le moteur ne transmet aucun contenu de document à un point de terminaison exploité par NextPDF. L’accès réseau sortant ne se produit que lors de récupérations de ressources explicitement activées et restreintes par schéma, ainsi que vers les points de terminaison TSA/OCSP/CRL configurés, chacun étant protégé contre les SSRF.
- Expurgation déterministe et bornée. La transformation des PII des bundles d’audit est déterministe et appliquée avant la sérialisation ; c’est une aide à la minimisation dans l’esprit de l’article 32 du RGPD (
eu_gdpr#x50), pas une certification d’anonymisation. - La résidence relève de l’intégrateur. L’inventaire et la cartographie des lieux où les données sont traitées sont une activité organisationnelle au titre du NIST Privacy Framework (
nist_privacy_framework_1_1#x9.x1.p3) ; la bibliothèque expose les contrôles, l’intégrateur réalise la cartographie. - Les rôles sont externes. Le fait que le déploiement soit responsable du traitement ou sous-traitant, ainsi que les obligations qui en découlent, relève d’une détermination de rôle ISO/IEC 29100 (
iso_iec_29100#3.x56) que la bibliothèque ne peut pas effectuer.
Conformité
Section intitulée « Conformité »Ce n’est pas un profil de conformité. La page renvoie à l’article 32 du RGPD, à ISO/IEC 29100 et au NIST Privacy Framework pour situer la limite entre le comportement de la bibliothèque et la responsabilité du responsable du traitement ; elle ne revendique ni conformité au RGPD, ni conformité à ISO/IEC 29100, ni certification de confidentialité. Ces déterminations se font au niveau du déploiement par le responsable du traitement, pas par la bibliothèque.