Skip to content

Sync API docs from bc3: Basecamp-served authorization document - #435

Merged
jeremy merged 1 commit into
masterfrom
sync-authorization-doc
Aug 12, 2026
Merged

Sync API docs from bc3: Basecamp-served authorization document#435
jeremy merged 1 commit into
masterfrom
sync-authorization-doc

Conversation

@jeremy

@jeremy jeremy commented Aug 12, 2026

Copy link
Copy Markdown
Member

Documents GET https://3.basecampapi.com/authorization.json — the authorization document Basecamp serves itself (both token types, the RFC 8707 resource indicator, the scope presence rule, identity-id-only shape, ISO 8601 expires_at) — from basecamp/bc3#12646, now deployed.

Synced from bc3 doc/api/ by script/api/sync_to_bc3_api — not a hand-edit.

Copilot AI balanced review requested due to automatic review settings August 12, 2026 02:50
@jeremy
jeremy merged commit a2899b2 into master Aug 12, 2026
1 check passed
@jeremy
jeremy deleted the sync-authorization-doc branch August 12, 2026 02:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documents Basecamp’s authorization endpoint and its token-specific response fields.

Changes:

  • Adds response and cURL examples.
  • Documents resource, scope, identity, expiration, and DPoP behavior.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

**Note on authenticating users via OAuth**: We don't recommend using the OAuth API to authenticate users in third-party services (e.g. a "Login with Basecamp" button). We don't verify email addresses, so an attacker could gain access using email addresses they don't own.


Get authorization from Basecamp

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b462c21155

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +133 to +134
Get authorization from Basecamp
-------------------------------

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add the Basecamp authorization endpoint to the contents list

When readers use the endpoint list at the top of this section for discovery or anchor navigation, the newly added endpoint is missing, so they cannot see or jump to #get-authorization-from-basecamp from that list. Add a matching bullet alongside the existing authorization link, as required by the section-file structure.

AGENTS.md reference: AGENTS.md:L38-L42

Useful? React with 👍 / 👎.

Comment on lines +139 to +140
prefix — for any token it accepts: a Basecamp-issued OAuth token or personal
access token, or a legacy Launchpad-issued token. It mirrors Launchpad's

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reconcile personal tokens with the OAuth-only guidance

For users choosing an authentication method, this newly documented support for personal access tokens directly conflicts with both this guide's opening statement that all requests use OAuth 2 and README.md's authentication section saying OAuth 2 is mandatory. Update the overview and main guide to describe when personal access tokens are supported; otherwise readers receive mutually exclusive instructions about a token type this endpoint explicitly accepts.

Useful? React with 👍 / 👎.

Comment on lines +143 to +145
- `identity` carries only `id`. The name and email fields are omitted: they
were never suitable for identifying users within Basecamp (see the note on
the Launchpad document above) — use the [Get person][people] endpoints.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Direct users to the current-user profile endpoint

When a client needs the authenticated user's name or email omitted from this document, the linked Get person endpoint requires a Basecamp person ID, while this paragraph explicitly says the returned identity ID is not suitable for identifying that person. Following the link therefore leaves the client without a usable ID and may lead it to request the wrong profile; point readers to GET /my/profile.json (Get my personal info), which resolves the current user without an ID.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants