Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e315220
feat: update from selective gapic updates
feywind Nov 12, 2025
af2380d
feat: work in progress on updated admin tools
feywind Nov 14, 2025
a5af05c
feat: update proposed gcrule builder
feywind Nov 17, 2025
1386820
feat: more updates on the CUJs
feywind Nov 19, 2025
de68524
feat: updates from comments on new modernization features
feywind Nov 20, 2025
edf5710
fix: implement the rest of the old GcRule rules
feywind Nov 21, 2025
c85d815
fix: clean up waitForConsistency
feywind Nov 21, 2025
6ab7541
docs: typo
feywind Nov 25, 2025
a1f40d6
fix: a couple more pieces of backwards compat
feywind Nov 26, 2025
f3338b9
samples: don't publish data plane generated samples
feywind Nov 26, 2025
c2064de
feat: move admin builder methods to be more namespaced
feywind Nov 26, 2025
61fecdd
fix: updated GcRuleBuilder import
feywind Nov 26, 2025
c828192
build: transform class names for selective gapic
feywind Dec 11, 2025
795ac42
feat: adjust BigtableAdmin for recent doc updates
feywind Dec 11, 2025
ee02f5e
chore: merge remote-tracking branch 'remotes/origin/main' into modern…
feywind Dec 11, 2025
cecdfff
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Dec 11, 2025
f1da03f
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Dec 11, 2025
5e89e77
Merge branch 'modernization-2' of https://github.com/googleapis/nodej…
gcf-owl-bot[bot] Dec 11, 2025
05fd23f
fix: owlbot.py updates and resulting fixes
feywind Dec 11, 2025
b350d5e
feat: improve the type safety of GcRuleBuilder and add tests
feywind Dec 12, 2025
3f2eaa4
tests: add tests for TableAdmin
feywind Dec 12, 2025
0140301
samples: update GcRule samples for GcRuleBuilder
feywind Dec 12, 2025
95e039f
chore: merge remote-tracking branch 'remotes/origin/main' into modern…
feywind Dec 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions owlbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
src_files[version] = list([fn for fn in src_paths[version].glob('**/*.*')])

# Copy bigtable library.
# src/index.ts src/admin/v2/index.ts has added AdminClients manually, we don't wanna override it.
# src/index.ts src/admin/v2/index.ts has added AdminClients manually; we don't want to override it.
# src/*.ts is a added layer for the client libraries, they need extra setting in tsconfig.json & tslint.json
# Tracking issues: 1. https://github.com/googleapis/nodejs-bigtable/issues/636
# 2. https://github.com/googleapis/nodejs-bigtable/issues/635
Expand All @@ -59,6 +59,7 @@
'.github/sync-repo-settings.yaml',
'.github/workflows/ci.yaml',
'.OwlBot.yaml',
'samples/generated/v2/*', # we don't want to encourage non-veneer use here.
] + list(admin_files)
logging.info(f"excluding files for non-admin: {excludes}")
s.copy([library], excludes = excludes)
Expand Down Expand Up @@ -98,10 +99,23 @@
for tfn in tfns:
logging.info(f"munging test file: {str(tfn)}")
contents = tfn.read_text()

# Fix relative paths.
contents = contents.replace("'../", "'../../../")

# Use the selective subclasses.
contents = contents.replace(".v2.BigtableInstanceAdminClient", ".admin.InstanceAdminClient")
contents = contents.replace(".v2.BigtableTableAdminClient", ".admin.TableAdminClient")

# Statics also.
contents = contents.replace("bigtabletableadminModule.v2.BigtableTableAdminClient", \
"bigtabletableadminModule.admin.TableAdminClient")
contents = contents.replace("bigtabletableadminModule.v2.BigtableInstanceAdminClient", \
"bigtabletableadminModule.admin.InstanceAdminClient")

tfn.write_text(contents)

# Finally, the samples. .v2 -> .admin.v2
# Finally, the samples. Shift to selective subclasses.
samplesStr = str(samples)
sfns = [fn
for fn
Expand All @@ -110,7 +124,12 @@
for sfn in sfns:
logging.info(f"munging sample file: {str(sfn)}")
contents = sfn.read_text()
contents = contents.replace(').v2', ').admin.v2')
contents = contents.replace("const {BigtableInstanceAdminClient} = require('@google-cloud/bigtable').v2", \
"const {InstanceAdminClient} = require('@google-cloud/bigtable').admin")
contents = contents.replace("const {BigtableTableAdminClient} = require('@google-cloud/bigtable').v2", \
"const {TableAdminClient} = require('@google-cloud/bigtable').admin")
contents = contents.replace("new BigtableInstanceAdminClient", "new InstanceAdminClient")
contents = contents.replace("new BigtableTableAdminClient", "new TableAdminClient")
sfn.write_text(contents)

os.system(f"mkdir -p {inProtoPath}")
Expand Down
3 changes: 3 additions & 0 deletions protos/google/bigtable/v2/feature_flags.proto
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,7 @@ message FeatureFlags {

// Notify the server that the client explicitly opted in for Direct Access.
bool direct_access_requested = 10;

// If the client can support using BigtablePeerInfo.
bool peer_info = 11;
}
77 changes: 77 additions & 0 deletions protos/google/bigtable/v2/peer_info.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// Copyright 2025 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 = "cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb";
option java_multiple_files = true;
option java_outer_classname = "PeerInfoProto";
option java_package = "com.google.bigtable.v2";
option php_namespace = "Google\\Cloud\\Bigtable\\V2";
option ruby_package = "Google::Cloud::Bigtable::V2";

// PeerInfo contains information about the peer that the client is
// connecting to.
message PeerInfo {
// The transport type that the client used to connect to this peer.
enum TransportType {
// The transport type is unknown.
TRANSPORT_TYPE_UNKNOWN = 0;

// The client connected to this peer via an external network
// (e.g. outside Google Coud).
TRANSPORT_TYPE_EXTERNAL = 1;

// The client connected to this peer via CloudPath.
TRANSPORT_TYPE_CLOUD_PATH = 2;

// The client connected to this peer via DirectAccess.
TRANSPORT_TYPE_DIRECT_ACCESS = 3;

// The client connected to this peer via Bigtable Sessions using an unknown
// transport type.
TRANSPORT_TYPE_SESSION_UNKNOWN = 4;

// The client connected to this peer via Bigtable Sessions on an external
// network (e.g. outside Google Cloud).
TRANSPORT_TYPE_SESSION_EXTERNAL = 5;

// The client connected to this peer via Bigtable Sessions using CloudPath.
TRANSPORT_TYPE_SESSION_CLOUD_PATH = 6;

// The client connected to this peer via Bigtable Sessions using
// DirectAccess.
TRANSPORT_TYPE_SESSION_DIRECT_ACCESS = 7;
}

// An opaque identifier for the Google Frontend which serviced this request.
// Only set when not using DirectAccess.
int64 google_frontend_id = 1;

// An opaque identifier for the application frontend which serviced this
// request.
int64 application_frontend_id = 2;

// The Cloud zone of the application frontend that served this request.
string application_frontend_zone = 3;

// The subzone of the application frontend that served this request, e.g. an
// identifier for where within the zone the application frontend is.
string application_frontend_subzone = 4;

TransportType transport_type = 5;
}
3 changes: 3 additions & 0 deletions protos/google/bigtable/v2/response_params.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,7 @@ message ResponseParams {
// Identifier for a cluster that represents set of
// bigtable resources.
optional string cluster_id = 2;

// The AFE ID for the AFE that is served this request.
optional int64 afe_id = 3;
}
2 changes: 1 addition & 1 deletion protos/google/cloud/common_resources.proto
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019 Google LLC.
// Copyright 2025 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
148 changes: 148 additions & 0 deletions protos/protos.d.ts

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

Loading
Loading