feat(storage): Add client feature tracking in HTTP client#14691
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements feature tracking headers for the HTTP storage client by introducing a trackingTransport that wraps the client's base transport and injects feature attributes into outgoing requests. Review feedback highlights two critical issues: first, configFeatureAttributes is never initialized in newHTTPStorageClient, meaning client-level features are not currently tracked; second, trackingTransport does not implement CloseIdleConnections(), which will cause Close() to be a no-op and potentially leak idle connections.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request implements client-level feature tracking for the HTTP storage client by wrapping the transport in a custom trackingTransport to inject tracking headers. However, the configFeatureAttributes field in httpStorageClient is never initialized in newHTTPStorageClient, which prevents client-level features from being tracked. A suggestion has been provided to initialize this field with config.featureAttributes.
54ad35d to
a9373a2
Compare
🤖 I have created a release *beep* *boop* --- ## [1.63.0](storage/v1.62.2...storage/v1.63.0) (2026-06-25) ### Features * **go:** Add full object checksum for negative offsets > size ([#20026](#20026)) ([a04d980](a04d980)) * **storage:** Add client feature tracking in HTTP client ([#14691](#14691)) ([319cc4c](319cc4c)) * **storage:** App Centric Observability ([#14685](#14685)) ([c3273bb](c3273bb)) * **storage:** Read checksums in gRPC partial reads ([#14586](#14586)) ([d29f68a](d29f68a)) * **storage:** Support deleteSourceObjects option in object compose ([#14704](#14704)) ([0d2d680](0d2d680)) * Update API sources and regenerate ([#14701](#14701)) ([a9b7921](a9b7921)) ### Bug Fixes * **storage:** Add server closed idle connection to retriable errors ([#14594](#14594)) ([a6bd392](a6bd392)) * **storage:** Fix race condition during retries in gRPC writer ([#14649](#14649)) ([c781a75](c781a75)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Krishnam Dhanush <krishnamd@google.com>
No description provided.