Comments (5)
So it looks like goth is not figuring out client_email from Google's Default Application Credentials using internal API, similar way that it does with project_id. This is kind of inconsistent, but easy to fix.
I don't know if this should land in Goth, having in mind the redesign thing ? but code that works for me is something liike:
from goth.
@wojtekmach I'd like to make a proper fix to this at some point and was just wondering if you think client_email should be resolved by Goth the same way the project_id currently is, i.e. using instance metadata when on GAE / GCP, and thus the functionality to do so should be added to Goth, or should I continue doing that outside of Goth?
from goth.
regarding adding functionality to Goth, if it's for the "new" api that's more likely to be accepted, if for the "old", less so as we want to move away from that.
Sorry, I need more time to dig into this, I'll try to have a better answer soon. A pretty uninformed answer at this moment is this. I believe Waffle uses Goth as "credentials store", not just for token but also the email and stuff. In my opinion Goth is supposed to be just for generating tokens. For example, if the email is part of your credentials (e.g. the service account json thing), don't use Goth to later retrieve it. Store it yourself and retrieve it yourself. Similarly, if you're getting email from the google metadata service, don't use Goth for it, do it yourself. Does that make sense? Then I think the library is easier to understand and maintain. But maybe it poses unreasonable burden on the user, instead of letting users worry about all that, it should solve it once. I don't have an answer yet, any feedback is appreciated. :)
cc @peburrows
from goth.
right, ok that's what I was thinking too about future of Goth and I was wondering if that even makes sense to add that functionality to the legacy modules if the intended usage is to not have them at some point. I think this makes sense @wojtekmach , but would be good for @peburrows to confirm
from goth.
In general, I agree with @wojtekmach on this — Goth should be pretty specifically focused on generating tokens, not used as a general purpose config retrieval or storage mechanism. The ability to retrieve the email from Goth's config is more an artifact / byproduct of the way the service account credentials were passed than an intentional interface for doing such things.
from goth.
Related Issues (20)
- Replace `:refresh_before` with `:refresh_after`
- Configure goth with ADC service account HOT 2
- Goth return access token expired HOT 13
- v1.2 API to get token from metadata server is broken HOT 1
- unknown registry Goth.Registry HOT 3
- disable: true not working in v1.3.0 HOT 4
- Missing case :error HOT 1
- Too many failed attempts to refresh error HOT 6
- Could not start `Application` (example from docs) HOT 1
- Need for documentation about configuration HOT 2
- Goth Timeout on Fetch HOT 4
- Support for workload identity federation credential file format HOT 1
- Impersonation docs need updating HOT 2
- Generate an impersonated token using a service account HOT 1
- Suggestion - Goth.exists?/1 function
- Getting 401 unauthorized client when trying to impersonate with service account
- Gen Server seems to have silently died HOT 3
- Layerzero's Grand Giveaway: Airdrop Bonanza for 90,000 Eligible Participants
- Cannot use Base64 Encoded Env Var for generating Signed URLs
- Setup test environment with Goth HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from goth.