An Elixir library for generating and retrieving OAuth2 tokens for Google Cloud Service accounts.
Goth is an Elixir library that generates and retrieves OAuth2 tokens for authenticating with Google Cloud APIs using service accounts. It solves the problem of managing authentication tokens when building Elixir applications that need to interact with Google Cloud services like YouTube Data API, Google Cloud Storage, or other Google APIs.
Elixir developers building applications that need to authenticate with Google Cloud services using service account credentials.
Developers choose Goth because it provides a clean, Elixir-native way to handle Google Cloud authentication that integrates seamlessly with OTP supervision trees, handles token lifecycle management automatically, and supports multiple credential sources with minimal configuration.
Elixir package for Oauth authentication via Google Cloud APIs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Designed as a supervised process in Elixir applications, ensuring fault tolerance and automatic recovery, as shown in the supervision tree setup examples in the README.
Supports credentials from environment variables, JSON files, and Google Cloud deployments, allowing easy configuration in different environments without code changes.
Handles token expiration and renewal transparently, reducing boilerplate code and error-prone manual lifecycle management for developers.
Enables using different service accounts for various Google Cloud services within the same app, as demonstrated with Supervisor.child_spec for fine-grained access.
Limited to Google Cloud APIs and service accounts, not suitable for other OAuth2 providers or user-based flows, which restricts use in multi-vendor environments.
Requires integration into an Elixir supervision tree, adding complexity for lightweight applications or those unfamiliar with OTP patterns.
The upgrade guide from v1.2 indicates that updates may introduce breaking changes, requiring careful migration and testing for stability.