Phil
Phil

Reputation: 50516

How to auth google cloud API from Java in the same way I authenticated with gcloud CLI

Using gcloud command line I can do the following operation

gcloud builds describe 74f859e9-d621-4632-b6dd-XXXXXXXX

However I wish to use the Google Cloud API from Java, now as I understand the GCloud CLI is not using a service account, it is using a user account. How can I use the same authentication from Google Cloud Java API to do this same operation to describe a build?

Upvotes: 0

Views: 554

Answers (1)

DazWilkin
DazWilkin

Reputation: 40426

Google provides decent documentation that explains how to use its SDKs (Client Libraries) with all of its services.

Here's the Cloud Build client libraries documentation. Pick your preferred language and go.

If you can't use one of Google's SDKs, then you can write code directly against the underlying API. Google's APIs Explorer is an excellent tool for navigating all Google's services. Here's Cloud Build and projects.builds.get which I think (!?) maps to gcloud build describe. You can confirm that by running gcloud builds describe --log-http to see which underlying calls are made.

Code that doesn't access user data (data owned by a user account), should run as a Service Account. Code that accesses user data or operates on behalf of a user, should use the OAuth flow for the user and use an OAuth Client ID. This is what gcloud does. As a program operating on behalf of users, it authenticates you the user using a regular OAuth flow but it operates using an OAuth Client ID against a hidden backing project. Your code should probably just run as a service account.

Upvotes: 2

Related Questions