Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: emit auto-auth errors #907

Conversation

stephenplusplus
Copy link
Contributor

⚠️ Opinions needed on this one.

We have been ignoring the error that google-auth-library returns when it can't find the environment's default credentials.

As explained in the comment from the code:

google-auth-library returns a "Could not load..." error if it can't get an access token. However, it's possible an API request doesn't need to be authenticated, e.g. when downloading a file from a public bucket. We consider this error a warning, and allow the request to go through without authentication, relying on the upstream API to return an error the user would find more helpful, should one occur.

We have a bug currently because of this: GoogleCloudPlatform/nodejs-getting-started#25 - I'll explain this in a comment on the offending line of code.

Considering this instantiation:

var gcloud = require('gcloud');

// No credentials provided:
var dataset = gcloud.datastore().dataset({
  projectId: 'grape-spaceship-123'
});

Here is what will happen if we merge this PR:

dataset.runQuery(/*...*/, function(err) {
  // The error comes from google-auth-library:
  // err.message = 'Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.'
});

Pretending we didn't merge this PR, and just fixed the bug mentioned earlier, here's what would happen:

dataset.runQuery(/*...*/, function(err) {
  // The error comes from the API:
  // err.message = 'Unauthorized'
});

To get the better error (the first example), we have to not allow unauthenticated requests. I'm not sure if/what/how much of our API allows unauthenticated requests, or if we even want to support that in the first place?

@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Oct 8, 2015
// consider this error a warning, and allow the request to go through
// without authentication, relying on the upstream API to return an error
// the user would find more helpful, should one occur.
if (err && err.message.indexOf('Could not load') === -1) {

This comment was marked as spam.

@stephenplusplus
Copy link
Contributor Author

Let's just go with it.

stephenplusplus added a commit that referenced this pull request Oct 14, 2015
@stephenplusplus stephenplusplus merged commit 9fd2420 into googleapis:master Oct 14, 2015
sofisl pushed a commit that referenced this pull request Jan 17, 2023
[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [sinon](https://sinonjs.org/) ([source](https://github.com/sinonjs/sinon)) | [`^10.0.0` -> `^11.0.0`](https://renovatebot.com/diffs/npm/sinon/10.0.0/11.1.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sinonjs/sinon</summary>

### [`v11.1.0`](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1110--2021-05-25)

[Compare Source](https://github.com/sinonjs/sinon/compare/v11.0.0...31be9a5d5a4762ef01cb195f29024616dfee9ce8)

\==================

-   Add sinon.promise() implementation ([#&#8203;2369](https://github.com/sinonjs/sinon/issues/2369))
-   Set wrappedMethod on getters/setters ([#&#8203;2378](https://github.com/sinonjs/sinon/issues/2378))
-   \[Docs] Update fake-server usage & descriptions ([#&#8203;2365](https://github.com/sinonjs/sinon/issues/2365))
-   Fake docs improvement ([#&#8203;2360](https://github.com/sinonjs/sinon/issues/2360))
-   Update nise to 5.1.0 (fixed [#&#8203;2318](https://github.com/sinonjs/sinon/issues/2318))

### [`v11.0.0`](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1100--2021-05-24)

[Compare Source](https://github.com/sinonjs/sinon/compare/v10.0.1...v11.0.0)

\==================

-   Explicitly use samsam 6.0.2 with fix for [#&#8203;2345](https://github.com/sinonjs/sinon/issues/2345)
-   Update most packages ([#&#8203;2371](https://github.com/sinonjs/sinon/issues/2371))
-   Update compatibility docs ([#&#8203;2366](https://github.com/sinonjs/sinon/issues/2366))
-   Update packages (includes breaking fake-timers change, see [#&#8203;2352](https://github.com/sinonjs/sinon/issues/2352))
-   Warn of potential memory leaks ([#&#8203;2357](https://github.com/sinonjs/sinon/issues/2357))
-   Fix clock test errors

### [`v10.0.1`](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1001--2021-04-08)

[Compare Source](https://github.com/sinonjs/sinon/compare/v10.0.0...v10.0.1)

\==================

-   Upgrade sinon components (bumps y18n to 4.0.1)
-   Bump y18n from 4.0.0 to 4.0.1

</details>

---

### Configuration

📅 **Schedule**: "after 9am and before 3pm" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-vision).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes This human has signed the Contributor License Agreement. core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants