Repository navigation
-
The default (loopback) OAuth flow now verifies that the
statereturned with the authorization code matches the one gargle sent, as the pseudo-OOB flow already did. If the user denies consent, gargle now errors immediately with a clear message, instead of failing later with an HTTP 400. -
The default (loopback) and pseudo-OOB OAuth flows now use PKCE (Proof Key for Code Exchange, RFC 7636), which ties the authorization code to the R session that requested it, so an intercepted code can't be exchanged for tokens by anyone else.
-
request_build()now places an API key in theX-goog-api-keyrequest header instead of the URL query. When gargle stores a response, forgargle_last_response()or in a request error, it now redacts theX-goog-api-keyheader. -
credentials_external_account()now supports workload identity federation configurations whose credential source is a URL or a file, in addition to AWS. This means thattoken_fetch()and Application Default Credentials work in GitHub Actions workflows that use thegoogle-github-actions/authaction with aservice_account(#199). -
credentials_app_default()now defaults toscopes = "https://www.googleapis.com/auth/cloud-platform", andscopes = NULLmeans the same thing. Previously, callingcredentials_app_default()without scopes returnedNULLfor user credentials (e.g. fromgcloud auth application-default login) and for an external account, and requested only the email scope for a service account (#229, #252, @aebrahim). -
gargle's unexported, legacy secret management functions (deprecated in gargle 1.5.0, June 2023) have been removed:
secret_pw_name(),secret_pw_gen(),secret_pw_exists(),secret_pw_get(),secret_can_decrypt(),secret_read(), andsecret_write(). The sodium package is no longer a suggested dependency. Use the exportedsecret_*()functions instead, as described in Managing tokens securely. -
The unexported roxygen helper
PREFIX_auth_configure_params()no longer documents theappargument (documented as deprecated in favor ofclientsince gargle 1.4.0). Packages that use this helper should removeappfromPKG_auth_configure()before re-documenting.vignette("oauth-client-not-app")is now a checklist for wrapper packages finishing the transition from OAuth "app" to "client".