Skip to content

Commit

Permalink
Add DLP quickstart + fix incorrect comments (#442)
Browse files Browse the repository at this point in the history
* Fix typo in comments

* Add DLP quickstart

* Address comments
  • Loading branch information
Ace Nassri authored Aug 4, 2017
1 parent dc56d22 commit 86902b2
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 14 deletions.
20 changes: 10 additions & 10 deletions dlp/inspect.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 = {
Expand Down Expand Up @@ -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 = {
Expand Down Expand Up @@ -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 = {
Expand Down
77 changes: 77 additions & 0 deletions dlp/quickstart.js
Original file line number Diff line number Diff line change
@@ -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.error(`Error in inspectString: ${err.message || err}`);
});
// [END quickstart]
8 changes: 4 additions & 4 deletions dlp/redact.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 }];

Expand Down Expand Up @@ -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';
Expand Down
30 changes: 30 additions & 0 deletions dlp/system-test/quickstart.test.js
Original file line number Diff line number Diff line change
@@ -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/);
});

0 comments on commit 86902b2

Please sign in to comment.