google-cloud-cpp icon indicating copy to clipboard operation
google-cloud-cpp copied to clipboard

Refactor storage credentials

Open dbolduc opened this issue 1 year ago • 1 comments

Storage introduced credentials in the public namespace google::cloud::storage::oauth2. These credential classes are now deprecated in favor of GUAC (google::cloud::Credentials):

https://github.com/googleapis/google-cloud-cpp/blob/80a518a357c93eec7ddc49666efcd7984135dafb/google/cloud/storage/oauth2/credentials.h#L45

However, the storage internals are implemented in terms of google::cloud::storage::oauth2::Credentials.

https://github.com/googleapis/google-cloud-cpp/blob/80a518a357c93eec7ddc49666efcd7984135dafb/google/cloud/storage/client.cc#L50

We map GUAC -> storage credentials.

https://github.com/googleapis/google-cloud-cpp/blob/80a518a357c93eec7ddc49666efcd7984135dafb/google/cloud/storage/client_options.cc#L296-L300

This is backwards. We need to map storage credentials to GUAC and use GUAC in the implementation, if we ever want to remove the deprecated credentials in google::cloud::storage::oauth2.

dbolduc avatar Oct 15 '24 14:10 dbolduc

For the record, we do not need to refactor. We can "delete" the storage::oauth2 classes by moving them into storage_internal and keeping the implementation mostly the same.

We might do this to unblock the next major release.

It is just that the resulting implementation would be unnecessarily complicated compared with using GUAC types.

dbolduc avatar Oct 16 '24 14:10 dbolduc