Skip to content

Document public-client (PKCE) OAuth flow and CLI browser login#1031

Merged
weppos merged 2 commits into
mainfrom
strange-dijkstra-726e56
Jun 18, 2026
Merged

Document public-client (PKCE) OAuth flow and CLI browser login#1031
weppos merged 2 commits into
mainfrom
strange-dijkstra-726e56

Conversation

@weppos

@weppos weppos commented Jun 13, 2026

Copy link
Copy Markdown
Member

DNSimple introduced a new OAuth mechanism for the CLI, along with changes to the OAuth flow itself. This updates the customer-facing developer docs to match.

On the server, the OAuth provider now supports public clients that authenticate with PKCE (RFC 7636, S256) instead of a client_secret, plus loopback redirect URIs with dynamic ports (RFC 8252 §7.3) for native and CLI apps. On the CLI side, dnsimple auth login now defaults to an interactive browser login, with API token login available via --with-token.

Related to dnsimple/dnsimple-support#1984

The DNSimple OAuth provider now supports public clients that authenticate
with PKCE (RFC 7636, S256) instead of a client secret, plus loopback
redirect URIs with dynamic ports (RFC 8252 section 7.3) for native and CLI
apps. The CLI also now defaults to an interactive browser login.

Update the customer-facing docs to match:

- content/v2/oauth.md: introduce confidential vs public clients; add the
  PKCE parameters (code_challenge / code_challenge_method on authorize,
  code_verifier on token exchange); mark client_secret as confidential-only;
  extend the invalid_grant / invalid_request error cases for PKCE; add a
  "Native and CLI apps (loopback redirect URIs)" section. Note that creating
  a public OAuth application is currently available upon request.
- content/cli.md: document browser login as the default for
  `dnsimple auth login`, with API token login available via `--with-token`
  (paste or pipe). Restructure the Authentication section into Browser
  login, Token login, and Managing contexts.
@weppos weppos self-assigned this Jun 13, 2026
@weppos weppos added the documentation Updates on the documentation and support content. label Jun 13, 2026
@weppos weppos requested review from Pemacaa and stephanoodle June 15, 2026 06:44
Comment thread content/v2/oauth.md Outdated
Comment thread content/v2/oauth.md Outdated
Comment thread content/v2/oauth.md
weppos added a commit to dnsimple/dnsimple-support that referenced this pull request Jun 18, 2026
Updates the CLI and OAuth support articles to match the [new browser-based OAuth login](dnsimple/cli#42) for the DNSimple CLI and the underlying OAuth flow changes (PKCE and public clients).

Related to dnsimple/dnsimple-developer#1031
- Align the public-client availability note with the support article
  framing (web apps registered by default; public clients on request).
- Remove the duplicate availability note from the loopback section; the
  note in the client-types intro is enough.
weppos added a commit to dnsimple/dnsimple-support that referenced this pull request Jun 18, 2026
Follow-up to #1984. The OAuth applications article described the loopback callback URL port matching inaccurately for `localhost`: it grouped `http://localhost` with the loopback IP literals and said *"the port is matched leniently."* Only the loopback IP literals `127.0.0.1` and `::1` get port leniency (RFC 8252 §7.3); `localhost` is matched strictly, including its port.

Rather than restate the precise runtime matching rule here (which is exactly how the `localhost` error crept in), this article now keeps to the **registration constraint** (what callback URL forms you may enter) and defers the **runtime matching semantics** to the [OAuth developer guide](https://developer.dnsimple.com/v2/oauth/), which already owns that detail and is already linked from this article.

The precise rule now lives in exactly one customer-facing place (the developer guide, dnsimple/dnsimple-developer#1031), so it can't drift across surfaces again.
@weppos weppos merged commit f9c8f4b into main Jun 18, 2026
8 checks passed
@weppos weppos deleted the strange-dijkstra-726e56 branch June 18, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Updates on the documentation and support content.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants