From 5207ea8e01f10c87aa20d7986a1925db9903a864 Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Thu, 3 Aug 2017 10:55:17 -0700 Subject: [PATCH 1/3] Fix typo in comments --- dlp/inspect.js | 20 ++++++++++---------- dlp/redact.js | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dlp/inspect.js b/dlp/inspect.js index a9fde80f30..2e4cc073fc 100644 --- a/dlp/inspect.js +++ b/dlp/inspect.js @@ -31,13 +31,13 @@ function inspectString (string, minLikelihood, maxFindings, infoTypes, includeQu // const string = 'My name is Gary and my email is gary@example.com'; // The minimum likelihood required before returning a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // 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 = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME', name: 'US_FEMALE_NAME' }]; // Whether to include the matching string // const includeQuote = true; @@ -91,13 +91,13 @@ function inspectFile (filepath, minLikelihood, maxFindings, infoTypes, includeQu // const fileName = 'path/to/image.png'; // The minimum likelihood required before returning a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // 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 = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME' }, { name: 'US_FEMALE_NAME' }]; // Whether to include the matching string // const includeQuote = true; @@ -158,13 +158,13 @@ function promiseInspectGCSFile (bucketName, fileName, minLikelihood, maxFindings // const fileName = 'my-image.png'; // The minimum likelihood required before returning a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // 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 = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME' }, { name: 'US_FEMALE_NAME' }]; // Get reference to the file to be inspected const storageItems = { @@ -232,13 +232,13 @@ function eventInspectGCSFile (bucketName, fileName, minLikelihood, maxFindings, // const fileName = 'my-image.png'; // The minimum likelihood required before returning a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // 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 = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME' }, { name: 'US_FEMALE_NAME' }]; // Get reference to the file to be inspected const storageItems = { @@ -320,13 +320,13 @@ function inspectDatastore (projectId, namespaceId, kind, minLikelihood, maxFindi // const kind = 'Person'; // The minimum likelihood required before returning a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // 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 = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME' }, { name: 'US_FEMALE_NAME' }]; // Get reference to the file to be inspected const storageItems = { diff --git a/dlp/redact.js b/dlp/redact.js index 73f2ee3f9a..e299592df5 100644 --- a/dlp/redact.js +++ b/dlp/redact.js @@ -30,10 +30,10 @@ function redactString (string, replaceString, minLikelihood, infoTypes) { // const replaceString = 'REDACTED'; // The minimum likelihood required before redacting a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // const minLikelihood = 'LIKELIHOOD_UNSPECIFIED'; // The infoTypes of information to redact - // const infoTypes = ['US_MALE_NAME', 'US_FEMALE_NAME']; + // const infoTypes = [{ name: 'US_MALE_NAME' }, { name: 'US_FEMALE_NAME' }]; const items = [{ type: 'text/plain', value: string }]; @@ -80,10 +80,10 @@ function redactImage (filepath, minLikelihood, infoTypes, outputPath) { // const fileName = 'path/to/image.png'; // The minimum likelihood required before redacting a match - // const minLikelihood = LIKELIHOOD_UNSPECIFIED; + // const minLikelihood = 'LIKELIHOOD_UNSPECIFIED'; // The infoTypes of information to redact - // const infoTypes = ['EMAIL_ADDRESS', 'PHONE_NUMBER']; + // const infoTypes = [{ name: 'EMAIL_ADDRESS' }, { name: 'PHONE_NUMBER' }]; // The local path to save the resulting image to. // const outputPath = 'result.png'; From 08a71d5c995879a778c13e3acc18cfcd760d201c Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Thu, 3 Aug 2017 10:55:48 -0700 Subject: [PATCH 2/3] Add DLP quickstart --- dlp/quickstart.js | 77 ++++++++++++++++++++++++++++++ dlp/system-test/quickstart.test.js | 30 ++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 dlp/quickstart.js create mode 100644 dlp/system-test/quickstart.test.js diff --git a/dlp/quickstart.js b/dlp/quickstart.js new file mode 100644 index 0000000000..20d0985db3 --- /dev/null +++ b/dlp/quickstart.js @@ -0,0 +1,77 @@ +/** + * Copyright 2017, Google, Inc. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +// [START quickstart] +// Imports the Google Cloud Data Loss Prevention library +const DLP = require('@google-cloud/dlp'); + +// Instantiates a client +const dlp = DLP(); + +// The string to inspect +const string = 'Robert Frost'; + +// 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: 'US_MALE_NAME' }, + { name: 'US_FEMALE_NAME' } +]; + +// Whether to include the matching string +const includeQuote = true; + +// Construct items to inspect +const items = [{ type: 'text/plain', value: string }]; + +// Construct request +const request = { + inspectConfig: { + infoTypes: infoTypes, + minLikelihood: minLikelihood, + maxFindings: maxFindings, + includeQuote: includeQuote + }, + items: items +}; + +// Run request +dlp.inspectContent(request) + .then((response) => { + const findings = response[0].results[0].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.log(`Error in inspectString: ${err.message || err}`); + }); +// [END quickstart] diff --git a/dlp/system-test/quickstart.test.js b/dlp/system-test/quickstart.test.js new file mode 100644 index 0000000000..ce0a1a74ae --- /dev/null +++ b/dlp/system-test/quickstart.test.js @@ -0,0 +1,30 @@ +/** + * Copyright 2017, Google, Inc. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +const path = require('path'); +const test = require('ava'); +const tools = require('@google-cloud/nodejs-repo-tools'); + +const cmd = 'node quickstart'; +const cwd = path.join(__dirname, `..`); + +test.before(tools.checkCredentials); + +test(`should run`, async (t) => { + const output = await tools.runAsync(cmd, cwd); + t.regex(output, /Info type: US_MALE_NAME/); +}); From 6e670fb19bf0bdcad6c3fe36bd6f69bc62d40742 Mon Sep 17 00:00:00 2001 From: Ace Nassri Date: Thu, 3 Aug 2017 16:01:41 -0700 Subject: [PATCH 3/3] Address comments --- dlp/quickstart.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlp/quickstart.js b/dlp/quickstart.js index 20d0985db3..370348330c 100644 --- a/dlp/quickstart.js +++ b/dlp/quickstart.js @@ -72,6 +72,6 @@ dlp.inspectContent(request) } }) .catch((err) => { - console.log(`Error in inspectString: ${err.message || err}`); + console.error(`Error in inspectString: ${err.message || err}`); }); // [END quickstart]