#gcp #google-cloud #cloud #google #gcloud #service-account

gouth

This library provides auto-renewed tokens for GCP service authentication

5 releases

0.2.1 Apr 19, 2021
0.2.0 Feb 12, 2021
0.1.2 Jun 28, 2020
0.1.1 May 11, 2020
0.1.0 May 4, 2020

#749 in Authentication

Download history 485/week @ 2024-03-14 522/week @ 2024-03-21 724/week @ 2024-03-28 904/week @ 2024-04-04 725/week @ 2024-04-11 803/week @ 2024-04-18 588/week @ 2024-04-25 434/week @ 2024-05-02 518/week @ 2024-05-09 893/week @ 2024-05-16 947/week @ 2024-05-23 952/week @ 2024-05-30 661/week @ 2024-06-06 1194/week @ 2024-06-13 840/week @ 2024-06-20 504/week @ 2024-06-27

3,365 downloads per month
Used in 4 crates (3 directly)

MIT license

27KB
698 lines

gouth

ci Rust Documentation Latest Version

This library provides auto-renewed tokens for GCP service authentication.

Notes

Authentication flow Status
API key Not supported / No plans to support
OAuth 2.0 client Supported
Environment-provided service account Supported
Service account key Supported

Example

Default

  • Scope is https://www.googleapis.com/auth/cloud-platform
  • Looks for credentials in the following places, preferring the first location found:
    • A JSON file whose path is specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable.
    • A JSON file in a location known to the gcloud command-line tool.
    • On Google Compute Engine, it fetches credentials from the metadata server.
// simple:
// gouth = { version = "x.x.x" }
let token = gouth::Token::new().unwrap();
println!("authorization: {}", token.header_value().unwrap());

// with tonic:
// gouth = { path = "x.x.x", features = ["tonic-intercept"] }
let mut service = PublisherClient::with_interceptor(channel, gouth::tonic::interceptor());
service.list_topics(...);

Custom

scope:

use gouth::Builder;

let token = Builder::new()
	.scopes(&["https://www.googleapis.com/auth/bigquery"])
	.build()
	.unwrap();
println!("authorization: {}", token.header_value().unwrap());

json:

use gouth::Builder;

let token = Builder::new().json("credentials-data").build().unwrap();
println!("authorization: {}", token.header_value().unwrap());

file:

use gouth::Builder;

let token = Builder::new().file("credentials-path").build().unwrap();
println!("authorization: {}", token.header_value().unwrap());

License

Licensed under MIT license.


lib.rs:

This library provides auto-renewed tokens for GCP service authentication.

Example

use gouth::Token;

let token = Token::new().unwrap();
println!("authorization: {}", token.header_value().unwrap());

Dependencies

~15–20MB
~474K SLoC