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/google-cloud-node/packages/google-cloud-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 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 |
---|---|---|
Data_catalog.create_entry
|
source code | ![]() |
Data_catalog.create_entry_group
|
source code | ![]() |
Data_catalog.create_tag
|
source code | ![]() |
Data_catalog.create_tag_template
|
source code | ![]() |
Data_catalog.create_tag_template_field
|
source code | ![]() |
Data_catalog.delete_entry
|
source code | ![]() |
Data_catalog.delete_entry_group
|
source code | ![]() |
Data_catalog.delete_tag
|
source code | ![]() |
Data_catalog.delete_tag_template
|
source code | ![]() |
Data_catalog.delete_tag_template_field
|
source code | ![]() |
Data_catalog.get_entry
|
source code | ![]() |
Data_catalog.get_entry_group
|
source code | ![]() |
Data_catalog.get_iam_policy
|
source code | ![]() |
Data_catalog.get_tag_template
|
source code | ![]() |
Data_catalog.import_entries
|
source code | ![]() |
Data_catalog.list_entries
|
source code | ![]() |
Data_catalog.list_entry_groups
|
source code | ![]() |
Data_catalog.list_tags
|
source code | ![]() |
Data_catalog.lookup_entry
|
source code | ![]() |
Data_catalog.modify_entry_contacts
|
source code | ![]() |
Data_catalog.modify_entry_overview
|
source code | ![]() |
Data_catalog.reconcile_tags
|
source code | ![]() |
Data_catalog.rename_tag_template_field
|
source code | ![]() |
Data_catalog.rename_tag_template_field_enum_value
|
source code | ![]() |
Data_catalog.retrieve_config
|
source code | ![]() |
Data_catalog.retrieve_effective_config
|
source code | ![]() |
Data_catalog.search_catalog
|
source code | ![]() |
Data_catalog.set_config
|
source code | ![]() |
Data_catalog.set_iam_policy
|
source code | ![]() |
Data_catalog.star_entry
|
source code | ![]() |
Data_catalog.test_iam_permissions
|
source code | ![]() |
Data_catalog.unstar_entry
|
source code | ![]() |
Data_catalog.update_entry
|
source code | ![]() |
Data_catalog.update_entry_group
|
source code | ![]() |
Data_catalog.update_tag
|
source code | ![]() |
Data_catalog.update_tag_template
|
source code | ![]() |
Data_catalog.update_tag_template_field
|
source code | ![]() |
Policy_tag_manager.create_policy_tag
|
source code | ![]() |
Policy_tag_manager.create_taxonomy
|
source code | ![]() |
Policy_tag_manager.delete_policy_tag
|
source code | ![]() |
Policy_tag_manager.delete_taxonomy
|
source code | ![]() |
Policy_tag_manager.get_iam_policy
|
source code | ![]() |
Policy_tag_manager.get_policy_tag
|
source code | ![]() |
Policy_tag_manager.get_taxonomy
|
source code | ![]() |
Policy_tag_manager.list_policy_tags
|
source code | ![]() |
Policy_tag_manager.list_taxonomies
|
source code | ![]() |
Policy_tag_manager.set_iam_policy
|
source code | ![]() |
Policy_tag_manager.test_iam_permissions
|
source code | ![]() |
Policy_tag_manager.update_policy_tag
|
source code | ![]() |
Policy_tag_manager.update_taxonomy
|
source code | ![]() |
Policy_tag_manager_serialization.export_taxonomies
|
source code | ![]() |
Policy_tag_manager_serialization.import_taxonomies
|
source code | ![]() |
Policy_tag_manager_serialization.replace_taxonomy
|
source code | ![]() |
Data_catalog.create_entry
|
source code | ![]() |
Data_catalog.create_entry_group
|
source code | ![]() |
Data_catalog.create_tag
|
source code | ![]() |
Data_catalog.create_tag_template
|
source code | ![]() |
Data_catalog.create_tag_template_field
|
source code | ![]() |
Data_catalog.delete_entry
|
source code | ![]() |
Data_catalog.delete_entry_group
|
source code | ![]() |
Data_catalog.delete_tag
|
source code | ![]() |
Data_catalog.delete_tag_template
|
source code | ![]() |
Data_catalog.delete_tag_template_field
|
source code | ![]() |
Data_catalog.get_entry
|
source code | ![]() |
Data_catalog.get_entry_group
|
source code | ![]() |
Data_catalog.get_iam_policy
|
source code | ![]() |
Data_catalog.get_tag_template
|
source code | ![]() |
Data_catalog.list_entries
|
source code | ![]() |
Data_catalog.list_entry_groups
|
source code | ![]() |
Data_catalog.list_tags
|
source code | ![]() |
Data_catalog.lookup_entry
|
source code | ![]() |
Data_catalog.rename_tag_template_field
|
source code | ![]() |
Data_catalog.rename_tag_template_field_enum_value
|
source code | ![]() |
Data_catalog.search_catalog
|
source code | ![]() |
Data_catalog.set_iam_policy
|
source code | ![]() |
Data_catalog.test_iam_permissions
|
source code | ![]() |
Data_catalog.update_entry
|
source code | ![]() |
Data_catalog.update_entry_group
|
source code | ![]() |
Data_catalog.update_tag
|
source code | ![]() |
Data_catalog.update_tag_template
|
source code | ![]() |
Data_catalog.update_tag_template_field
|
source code | ![]() |
Policy_tag_manager.create_policy_tag
|
source code | ![]() |
Policy_tag_manager.create_taxonomy
|
source code | ![]() |
Policy_tag_manager.delete_policy_tag
|
source code | ![]() |
Policy_tag_manager.delete_taxonomy
|
source code | ![]() |
Policy_tag_manager.get_iam_policy
|
source code | ![]() |
Policy_tag_manager.get_policy_tag
|
source code | ![]() |
Policy_tag_manager.get_taxonomy
|
source code | ![]() |
Policy_tag_manager.list_policy_tags
|
source code | ![]() |
Policy_tag_manager.list_taxonomies
|
source code | ![]() |
Policy_tag_manager.set_iam_policy
|
source code | ![]() |
Policy_tag_manager.test_iam_permissions
|
source code | ![]() |
Policy_tag_manager.update_policy_tag
|
source code | ![]() |
Policy_tag_manager.update_taxonomy
|
source code | ![]() |
Policy_tag_manager_serialization.export_taxonomies
|
source code | ![]() |
Policy_tag_manager_serialization.import_taxonomies
|
source code | ![]() |
Quickstart
|
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. If you are using an end-of-life version of Node.js, we recommend that you update as soon as possible to an actively supported LTS version.
Google's client libraries support legacy versions of Node.js runtimes on a best-efforts basis with the following warnings:
- Legacy versions are not tested in continuous integration.
- Some security patches and features cannot be backported.
- Dependencies cannot be kept up-to-date.
Client libraries targeting some end-of-life versions of Node.js are available, and
can be installed through npm dist-tags
.
The dist-tags follow the naming convention legacy-(version)
.
For example, npm install @google-cloud/datacatalog@legacy-8
installs client libraries
for versions compatible with Node.js 8.
Versioning
This library follows Semantic Versioning .
This library is considered to be 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 stablelibraries 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