UNPKG

redact-pii

Version:

Remove personally identifiable information from text.

123 lines (107 loc) 3.06 kB
// process.env.GOOGLE_APPLICATION_CREDENTIALS = require('path').resolve( // // __dirname + '/../node-mordor/credentials/node-mordor-prod-key.json' // __dirname + '/../node-mordor/credentials/node-mordor-dev-key.json' // ); // Imports the Google Cloud Data Loss Prevention library const DLP = require('@google-cloud/dlp'); // Instantiates a client const dlp = new DLP.DlpServiceClient({ }); // The string to inspect const string = 'My phone number is (415) 555-0890. My main email is example@example.com and my backup is foo@example.com.'; // The project ID to run the API call under // const projectId = process.env.GCLOUD_PROJECT; const projectId = 'solvvy-dev'; // The minimum likelihood required before returning a match const minLikelihood = 'LIKELIHOOD_UNSPECIFIED'; // The maximum number of findings to report (0 = server maximum) const maxFindings = 0; // The infoTypes of information to match const infoTypes = [{ name: 'EMAIL_ADDRESS' }, { name: 'PHONE_NUMBER' }]; // Whether to include the matching string const includeQuote = true; // Construct item to inspect const item = { value: string }; // Construct request const request = { parent: dlp.projectPath(projectId), // inspectConfig: { // infoTypes: infoTypes, // minLikelihood: minLikelihood, // limits: { // maxFindingsPerRequest: maxFindings, // }, // includeQuote: includeQuote, // }, "inspectConfig": { "includeQuote": true, "infoTypes": [ { "name": "PHONE_NUMBER" }, { "name": "EMAIL_ADDRESS" } ], "ruleSet": [ { "infoTypes": [ { "name": "EMAIL_ADDRESS" } ], "rules": [ { "exclusionRule": { "dictionary": { "wordList": { "words": [ "example@example.com" ] } }, "matchingType": "MATCHING_TYPE_FULL_MATCH" } } ] } ] // 'rule_set': [ // { // 'info_types': [{'name': 'EMAIL_ADDRESS'}], // 'rules': [ // { // 'exclusion_rule': { // 'dictionary': { // 'word_list': {'words': ['example@example.com']} // }, // 'matching_type': 'MATCHING_TYPE_FULL_MATCH' // } // } // ] // } // ] }, item: item, }; // Run request dlp .inspectContent(request) .then(response => { const findings = response[0].result.findings; if (findings.length > 0) { console.log(`Findings:`); findings.forEach(finding => { if (includeQuote) { console.log(`\tQuote: ${finding.quote}`); } console.log(`\tInfo type: ${finding.infoType.name}`); console.log(`\tLikelihood: ${finding.likelihood}`); }); } else { console.log(`No findings.`); } }) .catch(err => { console.error(`Error in inspectString: ${err.message || err}`); });