diff --git a/.repo-metadata.json b/.repo-metadata.json new file mode 100644 index 000000000..846e171ae --- /dev/null +++ b/.repo-metadata.json @@ -0,0 +1,13 @@ +{ + "name": "bigtable", + "name_pretty": "Cloud Bigtable", + "product_documentation": "https://cloud.google.com/bigtable", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/bigtable/latest/", + "issue_tracker":"https://issuetracker.google.com/savedsearches/559777", + "release_level": "ga", + "language": "nodejs", + "repo": "googleapis/nodejs-bigtable", + "distribution_name": "@google-cloud/bigtable", + "api_id": "bigtable.googleapis.com", + "requires_billing ": true +} diff --git a/README.md b/README.md index 01317281f..d3fc59604 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,22 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo # [Cloud Bigtable: Node.js Client](https://github.com/googleapis/nodejs-bigtable) - -[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-general%20availability%20%28GA%29-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/bigtable.svg)](https://www.npmjs.org/package/@google-cloud/bigtable) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-bigtable/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-bigtable) -> Node.js idiomatic client for [Cloud Bigtable][product-docs]. -[Cloud Bigtable](https://cloud.google.com/bigtable/docs/) is Google's NoSQL Big Data database service. It's the same database that powers many core Google services, including Search, Analytics, Maps, and Gmail. + + +Cloud Bigtable Client Library for Node.js * [Cloud Bigtable Node.js Client API Reference][client-docs] -* [github.com/googleapis/nodejs-bigtable](https://github.com/googleapis/nodejs-bigtable) * [Cloud Bigtable Documentation][product-docs] +* [github.com/googleapis/nodejs-bigtable](https://github.com/googleapis/nodejs-bigtable) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -23,6 +25,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. **Table of contents:** + * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) @@ -36,71 +39,48 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. ### Before you begin -1. Select or create a Cloud Platform project. - - [Go to the projects page][projects] - -1. Enable billing for your project. - - [Enable billing][billing] - -1. Enable the Cloud Bigtable and Cloud Bigtable Admin APIs. - - [Enable the APIs][enable_api] - +1. [Select or create a Cloud Platform project][projects]. +1. [Enable the Cloud Bigtable API][enable_api]. 1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. -[projects]: https://console.cloud.google.com/project -[billing]: https://support.google.com/cloud/answer/6293499#enable-billing -[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=bigtable.googleapis.com,bigtableadmin.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started - ### Installing the client library - npm install --save @google-cloud/bigtable +```bash +npm install @google-cloud/bigtable +``` + ### Using the client library -[embedmd]:# (samples/quickstart.js javascript /.*Imports/ /}\)\(\);/) ```javascript // Imports the Google Cloud client library const Bigtable = require('@google-cloud/bigtable'); -// The name of the Cloud Bigtable instance -const INSTANCE_NAME = 'my-bigtable-instance'; -// The name of the Cloud Bigtable table -const TABLE_NAME = 'my-table'; - -(async () => { - try { - // Creates a Bigtable client - const bigtable = new Bigtable(); - - // Connect to an existing instance:my-bigtable-instance - const instance = bigtable.instance(INSTANCE_NAME); - - // Connect to an existing table:my-table - const table = instance.table(TABLE_NAME); - - // Read a row from my-table using a row key - let [singleRow] = await table.row('r1').get(); - - // Print the row key and data (column value, labels, timestamp) - console.log( - `Row key: ${singleRow.id}\nData: ${JSON.stringify( - singleRow.data, - null, - 4 - )}` - ); - } catch (err) { - // Handle error performing the read operation - console.error(`Error reading row r1:`, err); - } -})(); +async function quickstart( + INSTANCE_ID = 'my-instance', // ID of the Cloud Bigtable instance + TABLE_ID = 'my-table' // ID of the Cloud Bigtable table +) { + const bigtable = Bigtable(); + + // Connect to an existing instance:my-bigtable-instance + const instance = bigtable.instance(INSTANCE_ID); + + // Connect to an existing table:my-table + const table = instance.table(TABLE_ID); + + // Read a row from my-table using a row key + const [singleRow] = await table.row('r1').get(); + + // Print the row key and data (column value, labels, timestamp) + const rowData = JSON.stringify(singleRow.data, null, 4); + console.log(`Row key: ${singleRow.id}\nData: ${rowData}`); +} + ``` + + ## Samples Samples are in the [`samples/`](https://github.com/googleapis/nodejs-bigtable/tree/master/samples) directory. The samples' `README.md` @@ -108,9 +88,11 @@ has instructions for running the samples. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Hello World | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/hello-world/index.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/hello-world/index.js,samples/hello-world/README.md) | -| Instance operations | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/instances.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/instances.js,samples/README.md) | -| Table operations | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/tableadmin.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/tableadmin.js,samples/README.md) | +| Instances | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/instances.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/instances.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Tableadmin | [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/tableadmin.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/tableadmin.js,samples/README.md) | + + The [Cloud Bigtable Node.js Client API Reference][client-docs] documentation also contains samples. @@ -119,12 +101,17 @@ also contains samples. This library follows [Semantic Versioning](http://semver.org/). + 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 **GA** libraries are addressed with the highest priority. + + + + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages @@ -140,6 +127,9 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-bigtable/blob/master/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/bigtable/latest/ -[product-docs]: https://cloud.google.com/bigtable/docs/ -[shell_img]: //gstatic.com/cloudssh/images/open-btn.png - +[product-docs]: https://cloud.google.com/bigtable +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=bigtable.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/samples/README.md b/samples/README.md index 21707f30a..86e662ea2 100644 --- a/samples/README.md +++ b/samples/README.md @@ -1,146 +1,80 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# Cloud Bigtable: Node.js Samples +# [Cloud Bigtable: Node.js Samples](https://github.com/googleapis/nodejs-bigtable) [![Open in Cloud Shell][shell_img]][shell_link] -[Cloud Bigtable](https://cloud.google.com/bigtable/docs/) is Google's NoSQL Big Data database service. It's the same database that powers many core Google services, including Search, Analytics, Maps, and Gmail. + ## Table of Contents - - +* [Before you begin](#before-you-begin) +* [Samples](#samples) + * [Instances](#instances) + * [Quickstart](#quickstart) + * [Tableadmin](#tableadmin) +## Before you begin -- [Before you begin](#before-you-begin) -- [Samples](#samples) - - [Hello World](#hello-world) - - [Instances](#instances) +Before running the samples, make sure you've followed the steps outlined in +[Using the client library](https://github.com/googleapis/nodejs-bigtable#using-the-client-library). - +## Samples -## Before you begin -Before running the samples, make sure you've followed the steps in the -[Before you begin section](../README.md#before-you-begin) of the client -library's README. +### Instances + +View the [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/instances.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/instances.js,samples/README.md) + +__Usage:__ + + +`node instances.js` + + +----- + + -## Samples ### Quickstart -The [Quick start](quickstart.js) sample shows a basic usage of the Bigtable client library: reading rows from a table. - -Follow the [cbt tutorial](https://cloud.google.com/bigtable/docs/quickstart-cbt) to install the cbt command line tool. -Here are the cbt commands to create a table, column family and add some data: -``` - cbt createtable my-table - cbt createfamily my-table cf1 - cbt set my-table r1 cf1:c1=test-value -``` - -Run the quick start to read the row you just wrote using `cbt`: -``` - node quickstart.js -``` -Expected output similar to: -``` - Row key: r1 - Data: { - "cf1": { - "c1": [ - { - "value": "test-value", - "labels": [], - "timestamp": "1526104247827000" - } - ] - } - } -``` - -### Hello World - -View the [Hello World][hello_world_directory] sample to see a basic usage of -the Bigtable client library. -### Instances +View the [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/quickstart.js). -View the [source code][instances_0_code]. +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/instances.js,samples/README.md) +__Usage:__ -__Usage:__ `node instances.js --help` - -``` -instances.js - -Commands: - instances.js run Creates an Instance(type: PRODUCTION) and run basic instance-operations - instances.js dev-instance Create Development Instance - instances.js del-instance Delete the Instance - instances.js add-cluster Add Cluster - instances.js del-cluster Delete the Cluster - -Options: - --version Show version number [boolean] - --instance Cloud Bigtable Instance name - --cluster Cloud Bigtable Cluster name - --help Show help [boolean] - -Examples: - node instances.js run --instance [instanceName] --cluster Run instance operations - [clusterName] - node instances.js dev-instance --instance [instanceName] Create Development Instance - node instances.js del-instance --instance [instanceName] Delete the Instance. - node instances.js add-cluster --instance [instanceName] Add Cluster - --cluster [clusterName] - node instances.js del-cluster --instance [instanceName] Delete the Cluster - --cluster [clusterName] - -For more information, see https://cloud.google.com/bigtable/docs -``` - -### Table / Column family management - -View the [source code](tableadmin.js). -This sample showcases the basic table / column family operations: -1. Create a table (if does not exist) -1. List tables in the current project -1. Retrieve table metadata -1. Create column families with supported garbage collection(GC) rules -1. List table column families and GC rules -1. Update a column family GC rule -1. Delete a column family -1. Delete a table -[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/instances.js,samples/README.md) +`node quickstart.js` + + +----- + + + + +### Tableadmin + +View the [source code](https://github.com/googleapis/nodejs-bigtable/blob/master/samples/tableadmin.js). + +[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/tableadmin.js,samples/README.md) + +__Usage:__ + -__Usage:__ `node tableadmin.js --help` +`node tableadmin.js` -``` -Commands: - tableadmin.js run Create a table (if does not exist) and run basic table operations. - tableadmin.js delete Delete table. -Options: - --version Show version number [boolean] - --instance Cloud Bigtable Instance name [required] - --table Cloud Bigtable Table name [required] - --help Show help [boolean] -Examples: - node tableadmin.js run --instance [instanceName] --table Create a table (if does not exist) and run basic table - [tableName] operations. - node tableadmin.js delete --instance [instanceName] --table Delete a table. - [tableName] -For more information, see https://cloud.google.com/bigtable/docs -``` -[instances_0_docs]: https://cloud.google.com/bigtable/docs/ -[instances_0_code]: instances.js -[hello_world_directory]: hello-world -[shell_img]: //gstatic.com/cloudssh/images/open-btn.png +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-bigtable&page=editor&open_in_editor=samples/README.md +[product-docs]: https://cloud.google.com/bigtable \ No newline at end of file