Skip to content

Commit

Permalink
Merge branch 'main' into copy-backup-2-relevant-changes-only
Browse files Browse the repository at this point in the history
  • Loading branch information
meredithslota committed Sep 22, 2023
2 parents 1d80cf4 + 0126a0e commit 3318e84
Show file tree
Hide file tree
Showing 46 changed files with 7,697 additions and 823 deletions.
4 changes: 2 additions & 2 deletions .github/.OwlBot.lock.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
# limitations under the License.
docker:
image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest
digest: sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9
# created: 2023-05-24T20:32:43.844586914Z
digest: sha256:606f3d9d99a1c7cdfa7158cbb1a75bfeef490655e246a2052f9ee741740d736c
# created: 2023-08-17T19:15:55.176034173Z
2 changes: 1 addition & 1 deletion .github/sync-repo-settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ branchProtectionRules:
- "ci/kokoro: System test"
- docs
- lint
- test (12)
- test (14)
- test (16)
- test (18)
- cla/google
- windows
- OwlBot Post Processor
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node: [12, 14, 16]
node: [14, 16, 18, 20]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
Expand Down
2 changes: 1 addition & 1 deletion .kokoro/common.cfg

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion .kokoro/release/docs.cfg

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .kokoro/release/publish.cfg

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .kokoro/samples-test.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .kokoro/system-test.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .kokoro/test.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .kokoro/test.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@

[1]: https://www.npmjs.com/package/@google-cloud/bigtable?activeTab=versions

## [5.0.0](https://github.com/googleapis/nodejs-bigtable/compare/v4.6.1...v5.0.0) (2023-08-10)


### ⚠ BREAKING CHANGES

* upgrade to Node 14 ([#1311](https://github.com/googleapis/nodejs-bigtable/issues/1311))

### Miscellaneous Chores

* Upgrade to Node 14 ([#1311](https://github.com/googleapis/nodejs-bigtable/issues/1311)) ([4330cb2](https://github.com/googleapis/nodejs-bigtable/commit/4330cb238ec887e85456cde0f18f3881caca5e14))

## [4.6.1](https://github.com/googleapis/nodejs-bigtable/compare/v4.6.0...v4.6.1) (2023-05-30)


### Bug Fixes

* Properly handle asynchronous read from stream ([#1284](https://github.com/googleapis/nodejs-bigtable/issues/1284)) ([55d86ba](https://github.com/googleapis/nodejs-bigtable/commit/55d86baaf554247c0c3d063fc790a37569f3e77b)). This could result in silently dropped rows in a `createReadStream`. The bug is active when the `ReadRows` stream would be piped into a consumer that would defer the processing of the rows until the next event loop run (i.e. use a `Transform` that would defer the callback invocation via `setTimeout()`).


## [4.6.0](https://github.com/googleapis/nodejs-bigtable/compare/v4.5.2...v4.6.0) (2023-05-26)


### Features

* Add ChangeStreamConfig to CreateTable and UpdateTable ([#1269](https://github.com/googleapis/nodejs-bigtable/issues/1269)) ([2b05fa4](https://github.com/googleapis/nodejs-bigtable/commit/2b05fa4c7ad37fa4478f5de3cf5645b44b34ecfc))

## [4.5.2](https://github.com/googleapis/nodejs-bigtable/compare/v4.5.1...v4.5.2) (2023-05-24)


Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ also contains samples.

## Supported Node.js Versions

Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/).
Our client libraries follow the [Node.js release schedule](https://github.com/nodejs/release#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
Expand Down
31 changes: 16 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@google-cloud/bigtable",
"version": "4.5.2",
"version": "5.0.0",
"description": "Cloud Bigtable Client Library for Node.js",
"keywords": [
"bigtable",
Expand Down Expand Up @@ -47,16 +47,16 @@
"precompile": "gts clean"
},
"dependencies": {
"@google-cloud/precise-date": "^3.0.0",
"@google-cloud/projectify": "^3.0.0",
"@google-cloud/promisify": "^3.0.0",
"@google-cloud/precise-date": "^4.0.0",
"@google-cloud/projectify": "^4.0.0",
"@google-cloud/promisify": "^4.0.0",
"arrify": "^2.0.0",
"concat-stream": "^2.0.0",
"dot-prop": "^6.0.0",
"escape-string-regexp": "^4.0.0",
"extend": "^3.0.2",
"google-gax": "^3.5.2",
"grpc-gcp": "^1.0.0",
"google-gax": "^4.0.3",
"grpc-gcp": "^1.0.1",
"is": "^3.0.1",
"is-utf8": "^0.2.1",
"lodash.snakecase": "^4.1.1",
Expand All @@ -65,25 +65,26 @@
"stream-events": "^1.0.2"
},
"devDependencies": {
"@grpc/grpc-js": "^1.7.1",
"@grpc/grpc-js": "^1.9.0",
"@grpc/proto-loader": "^0.7.3",
"@types/escape-string-regexp": "^1.0.0",
"@types/extend": "^3.0.1",
"@types/is": "0.0.22",
"@types/lodash.snakecase": "^4.1.5",
"@types/mocha": "^9.0.0",
"@types/node": "^18.0.0",
"@types/node": "^20.4.9",
"@types/proxyquire": "^1.3.28",
"@types/pumpify": "^1.4.1",
"@types/sinon": "^10.0.0",
"@types/uuid": "^9.0.0",
"c8": "^7.1.0",
"c8": "^8.0.1",
"codecov": "^3.6.5",
"gts": "^3.1.0",
"jsdoc": "^4.0.0",
"jsdoc-fresh": "^2.0.0",
"gapic-tools": "^0.1.8",
"gts": "^5.0.0",
"jsdoc": "^4.0.2",
"jsdoc-fresh": "^3.0.0",
"jsdoc-region-tag": "^2.0.0",
"linkinator": "^4.0.0",
"linkinator": "^5.0.0",
"mocha": "^9.2.2",
"null-loader": "^4.0.0",
"p-queue": "^6.0.2",
Expand All @@ -93,12 +94,12 @@
"snap-shot-it": "^7.9.1",
"tcp-port-used": "^1.0.2",
"ts-loader": "^9.0.0",
"typescript": "^4.6.4",
"typescript": "^5.1.6",
"uuid": "^9.0.0",
"webpack": "^5.0.0",
"webpack-cli": "^5.0.0"
},
"engines": {
"node": ">=12.0.0"
"node": ">=14.0.0"
}
}
10 changes: 7 additions & 3 deletions protos/google/bigtable/admin/v2/bigtable_table_admin.proto
Original file line number Diff line number Diff line change
Expand Up @@ -600,11 +600,15 @@ message UpdateTableRequest {
Table table = 1 [(google.api.field_behavior) = REQUIRED];

// Required. The list of fields to update.
// A mask specifying which fields (e.g. `deletion_protection`) in the `table`
// A mask specifying which fields (e.g. `change_stream_config`) in the `table`
// field should be updated. This mask is relative to the `table` field, not to
// the request message. The wildcard (*) path is currently not supported.
// Currently UpdateTable is only supported for the following field:
// * `deletion_protection`
// Currently UpdateTable is only supported for the following fields:
//
// * `change_stream_config`
// * `change_stream_config.retention_period`
// * `deletion_protection`
//
// If `column_families` is set in `update_mask`, it will return an
// UNIMPLEMENTED error.
google.protobuf.FieldMask update_mask = 2
Expand Down
15 changes: 15 additions & 0 deletions protos/google/bigtable/admin/v2/table.proto
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,16 @@ message RestoreInfo {
}
}

// Change stream configuration.
message ChangeStreamConfig {
// How long the change stream should be retained. Change stream data older
// than the retention period will not be returned when reading the change
// stream from the table.
// Values must be at least 1 day and at most 7 days, and will be truncated to
// microsecond granularity.
google.protobuf.Duration retention_period = 1;
}

// A collection of user data indexed by row, column, and timestamp.
// Each table is served using the resources of its parent cluster.
message Table {
Expand Down Expand Up @@ -157,6 +167,11 @@ message Table {
// field will be populated with information about the restore.
RestoreInfo restore_info = 6 [(google.api.field_behavior) = OUTPUT_ONLY];

// If specified, enable the change stream on this table.
// Otherwise, the change stream is disabled and the change stream is not
// retained.
ChangeStreamConfig change_stream_config = 8;

// Set to true to make the table protected against data loss. i.e. deleting
// the following resources through Admin APIs are prohibited:
// - The table.
Expand Down
34 changes: 30 additions & 4 deletions protos/google/bigtable/v2/bigtable.proto
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2022 Google LLC
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -227,7 +227,6 @@ service Bigtable {

// Request message for Bigtable.ReadRows.
message ReadRowsRequest {
//
// The desired view into RequestStats that should be returned in the response.
//
// See also: RequestStats message.
Expand All @@ -254,8 +253,8 @@ message ReadRowsRequest {
}
];

// This value specifies routing for replication. This API only accepts the
// empty value of app_profile_id.
// This value specifies routing for replication. If not specified, the
// "default" application profile will be used.
string app_profile_id = 5;

// The row keys and/or ranges to read sequentially. If not specified, reads
Expand Down Expand Up @@ -489,6 +488,33 @@ message MutateRowsResponse {

// One or more results for Entries from the batch request.
repeated Entry entries = 1;

// Information about how client should limit the rate (QPS). Primirily used by
// supported official Cloud Bigtable clients. If unset, the rate limit info is
// not provided by the server.
optional RateLimitInfo rate_limit_info = 3;
}

// Information about how client should adjust the load to Bigtable.
message RateLimitInfo {
// Time that clients should wait before adjusting the target rate again.
// If clients adjust rate too frequently, the impact of the previous
// adjustment may not have been taken into account and may
// over-throttle or under-throttle. If clients adjust rate too slowly, they
// will not be responsive to load changes on server side, and may
// over-throttle or under-throttle.
google.protobuf.Duration period = 1;

// If it has been at least one `period` since the last load adjustment, the
// client should multiply the current load by this value to get the new target
// load. For example, if the current load is 100 and `factor` is 0.8, the new
// target load should be 80. After adjusting, the client should ignore
// `factor` until another `period` has passed.
//
// The client can measure its load using any unit that's comparable over time
// For example, QPS can be used as long as each request involves a similar
// amount of work.
double factor = 2;
}

// Request message for Bigtable.CheckAndMutateRow.
Expand Down
39 changes: 39 additions & 0 deletions protos/google/bigtable/v2/feature_flags.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2023 Google LLC
//
// 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.

syntax = "proto3";

package google.bigtable.v2;

option csharp_namespace = "Google.Cloud.Bigtable.V2";
option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable";
option java_multiple_files = true;
option java_outer_classname = "FeatureFlagsProto";
option java_package = "com.google.bigtable.v2";
option php_namespace = "Google\\Cloud\\Bigtable\\V2";
option ruby_package = "Google::Cloud::Bigtable::V2";

// Feature flags supported by a client.
// This is intended to be sent as part of request metadata to assure the server
// that certain behaviors are safe to enable. This proto is meant to be
// serialized and websafe-base64 encoded under the `bigtable-features` metadata
// key. The value will remain constant for the lifetime of a client and due to
// HTTP2's HPACK compression, the request overhead will be tiny.
// This is an internal implementation detail and should not be used by endusers
// directly.
message FeatureFlags {
// Notify the server that the client enables batch write flow control by
// requesting RateLimitInfo from MutateRowsResponse.
bool mutate_rows_rate_limit = 3;
}
Loading

0 comments on commit 3318e84

Please sign in to comment.