Présentation

Lorsque vous activez le paramètre d’initialisation enablePrivacyForActionName, les noms d’action sont masqués pour des raisons de confidentialité. Dans les builds minifiés, les noms d’action peuvent également devenir illisibles car les bundlers obfusquent le texte et les attributs des éléments DOM que RUM utilise pour générer les noms d’action.

Le plugin de build de désobfuscation des noms d’action résout ces deux problèmes en instrumentant votre code source au moment de la compilation pour générer un dictionnaire de confidentialité qui fait correspondre les valeurs obfusquées à leur texte original. Le SDK RUM utilise ce dictionnaire pour résoudre les noms d’action lisibles.

Prérequis

  • Le SDK RUM initialisé avec trackUserInteractions: true et enablePrivacyForActionName: true. Consultez Masquer tous les noms d’action.
  • Le plugin de build Datadog installé et enregistré auprès de votre bundler. Consultez Plugins de build pour les instructions d’installation.

Configuration

Configurez l’objet rum.privacy dans les options de votre plugin de build :

ParamètreTypeRequisPar défautDescription
rum.privacy.includeTableau de RegExp ou de StringNonFichiers JS/TS (.js, .ts, .jsx, .tsx, .mjs, .cjs et variantes)Modèles de fichiers à traiter pour la désobfuscation des noms d’action.
rum.privacy.excludeTableau de RegExp ou de StringNonnode_modules, .preval. fichiersModèles de fichiers à ignorer.

Exemple

Avec les paramètres par défaut (traite tous les fichiers JS/TS, exclut node_modules) :

const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {},
      },
    }),
  ],
};

Avec des modèles d’inclusion et d’exclusion personnalisés :

const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {
          include: [/\.jsx?$/, /\.tsx?$/],
          exclude: [/\/node_modules\//, /\/test\//],
        },
      },
    }),
  ],
};
Ces exemples utilisent webpack. L'objet de configuration est identique pour tous les bundlers pris en charge. Consultez Plugins de build pour les instructions d'installation.

Pour aller plus loin