Skip to content
master
Switch branches/tags
Code

Google Cloud Node.js Client Libraries

Node.js idiomatic client libraries for Google Cloud Platform services.

Libraries are available on GitHub and npm for developing Node.js applications that interact with individual Google Cloud services:

Repo Release Level Version
Access Approval GA npm
App Engine Admin API GA npm
Asset Inventory GA npm
AutoML GA npm
Bigtable GA npm
Billing GA npm
Billing Budgets GA npm
Build GA npm
Channel API GA npm
Data Catalog GA npm
Data Loss Prevention GA npm
Dataproc GA npm
Datastore GA npm
Datastore Session GA npm
Dialogflow API GA npm
Dialogflow CX API GA npm
DNS GA npm
Firestore GA npm
Firestore Session GA npm
Functions GA npm
Game Servers GA npm
Google BigQuery GA npm
Google BigQuery Connection GA npm
Google BigQuery Data Transfer Service GA npm
Google BigQuery Reservation GA npm
Google BigQuery Storage GA npm
Google Container Analysis GA npm
Grafeas GA npm
IAM Policy Troubleshooter API GA npm
IAM Service Account Credentials API GA npm
Internet of Things (IoT) Core GA npm
Key Management Service GA npm
Kubernetes Engine Cluster Manager API GA npm
Logging GA npm
Logging for Bunyan GA npm
Logging for Winston GA npm
Managed Service for Microsoft Active Directory GA npm
Memorystore for Memcached GA npm
Monitoring Dashboards GA npm
Natural Language GA npm
Organization Policy GA npm
OS Config API GA npm
OS Login GA npm
Profiler GA npm
Pub/Sub GA npm
reCAPTCHA Enterprise GA npm
Recommender GA npm
Redis GA npm
Retail API GA npm
Scheduler GA npm
Secret Manager GA npm
Security Command Center GA npm
Service Control API GA npm
Service Directory GA npm
Service Management API GA npm
Spanner GA npm
Speech GA npm
Stackdriver Monitoring GA npm
Storage GA npm
Talent Solution GA npm
Tasks GA npm
Text-to-Speech GA npm
Translation GA npm
Video Intelligence GA npm
Vision API GA npm
Web Risk API GA npm
Web Security Scanner GA npm
AI Platform Preview npm
AI Platform Notebooks Preview npm
API Gateway Preview npm
Area120 Tables API Preview npm
Artifact Registry Preview npm
Assured Workloads for Government Preview npm
Binary Authorization Preview npm
Certificate Authority Service Preview npm
Data Labeling Preview npm
Data QnA Preview npm
Dataproc Metastore Preview npm
Document AI Preview npm
Domains Preview npm
Error Reporting Preview npm
GKE Hub Preview npm
Google Analytics Admin Preview npm
Google Analytics Data Preview npm
Google Compute Engine Preview npm
Media Translation Preview npm
Network Connectivity Center Preview npm
Phishing Protection Preview npm
Resource Manager API Preview npm
Runtime Config Preview npm
Stackdriver Debugger Preview npm
Stackdriver Trace Preview npm
Transcoder API Preview npm
Workflows Preview npm

If the service is not listed above, google-api-nodejs-client interfaces with additional Google Cloud APIs using a legacy REST interface.

When building Node.js applications, preference should be given to the libraries listed in the table.

Enabling APIs

Before you can interact with a given Google Cloud Service, you must enable its API.

Links are available for enabling APIs in the table at the beginning of this document, and in each libraries README.md.

Authentication

Download your Service Account Credentials JSON file

To use Application Default Credentials, You first need to download a set of JSON credentials for your project. Go to APIs & Auth > Credentials in the Google Developers Console and select Service account from the Add credentials dropdown.

This file is your only copy of these credentials. It should never be committed with your source code, and should be stored securely.

Once downloaded, store the path to this file in the GOOGLE_APPLICATION_CREDENTIALS environment variable.

Other Authentication Methods

Other authentication methods are outlined in the README for google-auth-library-nodejs, which is the authentication library used by all Google Cloud Node.js clients.

Example Applications

  • nodejs-getting-started - A sample and tutorial that demonstrates how to build a complete web application using Cloud Datastore, Cloud Storage, and Cloud Pub/Sub and deploy it to Google App Engine or Google Compute Engine.
  • gcloud-node-todos - A TodoMVC backend using google-cloud-node and Datastore.
  • gitnpm - Easily lookup an npm package's GitHub repo using google-cloud-node and Google App Engine.
  • gcloud-kvstore - Use Datastore as a simple key-value store.
  • hya-wave - Cloud-based web sample editor. Part of the hya-io family of products.
  • gstore-node - Google Datastore Entities Modeling library.
  • gstore-api - REST API builder for Google Datastore Entities.

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 targetting 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

Our libraries follow Semantic Versioning.

Please note it is currently under active development. Any release versioned 0.x.y is subject to backwards-incompatible changes at any time.

GA: Libraries defined at the GA (general availability) quality level are 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 GA libraries are addressed with the highest priority.

Please note that the auto-generated portions of the GA libraries (the ones in modules such as v1 or v2) are considered to be of Beta quality, even if the libraries that wrap them are GA.

Beta: Libraries defined at the Beta quality level are expected to be mostly stable, while we work towards their release candidate. We will address issues and requests with a higher priority.

Alpha: Libraries defined at the Alpha quality level are still a work-in-progress and are more likely to get backwards-incompatible updates.

Contributing

Contributions to this library are always welcome and highly encouraged.

See CONTRIBUTING for more information on how to get started.

License

Apache 2.0 - See LICENSE for more information.