Data Catalog: Node.js Client
Google Cloud Data Catalog API client for Node.js
A comprehensive list of changes in each version may be found in the CHANGELOG .
- Data Catalog Node.js Client API Reference
- Data Catalog Documentation
- github.com/googleapis/nodejs-datacatalog
Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained .
Table of contents:
Quickstart
Before you begin
- Select or create a Cloud Platform project .
- Enable billing for your project .
- Enable the Data Catalog API .
- Set up authentication with a service account so you can access the API from your local workstation.
Installing the client library
npm install @google-cloud/datacatalog
Using the client library
// Import the Google Cloud client library and create a client.
const {DataCatalogClient} = require(' @google-cloud/datacatalog
').v1;
const datacatalog = new DataCatalogClient
();
async function quickstart() {
// Common fields.
let request;
let responses;
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const projectId = 'my_project'; // Google Cloud Platform project
// const datasetId = 'demo_dataset';
// const tableId = 'trips';
// Currently, Data Catalog stores metadata in the
// us-central1 region.
const location = 'us-central1';
// Create Fields.
const fieldSource = {
displayName: 'Source of data asset',
type: {
primitiveType: 'STRING',
},
};
const fieldNumRows = {
displayName: 'Number of rows in data asset',
type: {
primitiveType: 'DOUBLE',
},
};
const fieldHasPII = {
displayName: 'Has PII',
type: {
primitiveType: 'BOOL',
},
};
const fieldPIIType = {
displayName: 'PII type',
type: {
enumType: {
allowedValues: [
{
displayName: 'EMAIL',
},
{
displayName: 'SOCIAL SECURITY NUMBER',
},
{
displayName: 'NONE',
},
],
},
},
};
// Create Tag Template.
const tagTemplateId = 'demo_tag_template';
const tagTemplate = {
displayName: 'Demo Tag Template',
fields: {
source: fieldSource,
num_rows: fieldNumRows,
has_pii: fieldHasPII,
pii_type: fieldPIIType,
},
};
const tagTemplatePath = datacatalog.tagTemplatePath(
projectId,
location,
tagTemplateId
);
// Delete any pre-existing Template with the same name.
try {
request = {
name: tagTemplatePath,
force: true,
};
await datacatalog.deleteTagTemplate(request);
console.log(`Deleted template: ${tagTemplatePath}`);
} catch (error) {
console.log(`Cannot delete template: ${tagTemplatePath}`);
}
// Create the Tag Template request.
const locationPath = datacatalog.locationPath(projectId, location);
request = {
parent: locationPath,
tagTemplateId: tagTemplateId,
tagTemplate: tagTemplate,
};
// Execute the request.
responses = await datacatalog.createTagTemplate(request);
const createdTagTemplate = responses[0];
console.log(`Created template: ${createdTagTemplate.name}`);
// Lookup Data Catalog's Entry referring to the table.
responses = await datacatalog.lookupEntry({
linkedResource:
'//bigquery.googleapis.com/projects/' +
`${projectId}/datasets/${datasetId}/tables/${tableId}`,
});
const entry = responses[0];
console.log(`Entry name: ${entry.name}`);
console.log(`Entry type: ${entry.type}`);
console.log(`Linked resource: ${entry.linkedResource}`);
// Attach a Tag to the table.
const tag = {
name: entry.name,
template: createdTagTemplate.name,
fields: {
source: {
stringValue: 'copied from tlc_yellow_trips_2017',
},
num_rows: {
doubleValue: 113496874,
},
has_pii: {
boolValue: false,
},
pii_type: {
enumValue: {
displayName: 'NONE',
},
},
},
};
request = {
parent: entry.name,
tag: tag,
};
// Create the Tag.
await datacatalog.createTag(request);
console.log(`Tag created for entry: ${entry.name}`);
}
quickstart();
Samples
Samples are in the samples/
directory. Each sample's README.md
has instructions for running its sample.
Sample | Source Code | Try it |
---|---|---|
Create Custom Entry
|
source code | ![]() |
Create Fileset
|
source code | ![]() |
Grant Tag Template User Role
|
source code | ![]() |
Quickstart
|
source code | ![]() |
Search Assets
|
source code | ![]() |
The Data Catalog Node.js Client API Reference documentation also contains samples.
Supported Node.js Versions
Our client libraries follow the Node.js release schedule . Libraries are compatible with all current active and maintenance versions of Node.js.
Client libraries targeting some end-of-life versions of Node.js are available, and
can be installed via npm dist-tags
.
The dist-tags follow the naming convention legacy-(version)
.
Legacy Node.js versions are supported as a best effort:
- Legacy versions will not be tested in continuous integration.
- Some security patches may not be able to be backported.
- Dependencies will not be kept up-to-date, and features will not be backported.
Legacy tags available
-
legacy-8
: install client libraries from this dist-tag for versions compatible with Node.js 8.
Versioning
This library follows Semantic Versioning .
This library is considered to be General Availability (GA). This means it is stable; the code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against GAlibraries are addressed with the highest priority.
More Information: Google Cloud Platform Launch Stages
Contributing
Contributions welcome! See the Contributing Guide .
Please note that this README.md
, the samples/README.md
,
and a variety of configuration files in this repository (including .nycrc
and tsconfig.json
)
are generated from a central template. To edit one of these files, make an edit
to its templates in directory
.
License
Apache Version 2.0
See LICENSE