Skip to content

docs(iam): add Manage API keys page for org-scoped keys and creation controls - #3060

Open
mdlinville wants to merge 3 commits into
mainfrom
DOCS-3071-org-scoped-api-keys
Open

docs(iam): add Manage API keys page for org-scoped keys and creation controls#3060
mdlinville wants to merge 3 commits into
mainfrom
DOCS-3071-org-scoped-api-keys

Conversation

@mdlinville

@mdlinville mdlinville commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a primary Manage API keys page and links the existing API key content to it. Drafted ahead of the 0.84.x branch cut so that technical feedback can still reach the code.

Related: DOCS-3071, WB-25038, WB-37180, DOCS-2902

DO NOT MERGE this PR until Dedicated rollout of 0.84.0, scheduled for 8/19.

Why now

disableApiKeyCreation is in master and is not in server-release-0.83.x, so 0.84.0 is its first release. Reviewing this before the cut means any correction can still land in the release rather than in a follow-up.

What changed

File Change
platform/hosting/iam/api-keys.mdx New. Key types, where to find the API Keys tab, visibility by role, table/create/rename/delete/rotate procedures, the two admin settings, and an availability matrix.
platform/app/settings-page/user-settings.mdx Note that this section shows only personal keys, pointing to the new page.
platform/hosting/iam/service-accounts.mdx Note distinguishing an organization-scoped service account from an organization-scoped API key.
platform/hosting/iam/advanced_env_vars.mdx Cross-link from GORILLA_DISABLE_TEAM_SERVICE_ACCOUNT_CREATION to the new page.
docs.json Nav entry under Identity and access management > Authentication.

Why a new page

The product consolidated key management into one API Keys tab covering personal, organization-scoped, team service account, and organization service account keys under a single visibility model. Our docs split that across user settings (personal) and service accounts (service accounts). The new page matches the product; the existing pages now point at it.

It also gave the terminology problem somewhere to live: the docs already used "organization-scoped" for service accounts, which is a different concept from an organization-scoped API key held by a person.

Deployment split as documented

Derived from wandb/core master vs server-release-0.83.x. Please confirm this table above all else.

Capability Multi-tenant Cloud Dedicated Cloud Self-Managed
Search and filter the API keys table Yes v0.84.0+ v0.84.0+
Create a key from the API Keys tab Enterprise orgs v0.84.0+ v0.84.0+
Delete several keys at once Enterprise orgs v0.84.0+ v0.84.0+
Organization-scoped API keys Enterprise orgs Not available Not available
requireOrgScopedAPIKeys Enterprise orgs Not available Not available
disableApiKeyCreation Not available v0.84.0+ v0.84.0+

Reasoning: showCreateKey = (envIsPublicCloud && canCreateOrgScopedKeys) || !envIsPublicCloud, so create and multi-select are unconditional on onprem, while the search field and filter bar render unconditionally everywhere. useStatsigGateCreateOrgScopedKeys resolves to ?? false, so the owner-type column stays hidden on onprem.

There is no key rotation action

Worth flagging on its own. The row actions menu contains only Edit and Delete, and EditApiKeyDrawer.tsx edits only the Name field. Nothing regenerates a secret in place.

The page therefore documents rotation as a manual create, migrate, verify, delete workflow, and states plainly that both keys work until the old one is deleted. If a rotate capability is planned, this section should change shape — and given that key rotation is exactly what the NVIDIA and Canva requests are about, it may be worth knowing whether its absence is deliberate.

Deliberately not documented yet

Two things are omitted pending confirmation, so absence here is intentional rather than an oversight:

  • /authorize now issuing organization-scoped keys. Not documented because the behavior for orgs where the gate is off is unconfirmed, and this is the wandb login path.
  • Removing the ability to create personal API keys. Not documented because the timeline and the fate of existing personal keys are unconfirmed.

Questions for review

  • Is the availability table correct, especially the 0.84.0 onprem rows?
  • Is disableApiKeyCreation intentionally settable only through updateOrganizationPrivacySettings, with no admin UI and no environment variable? This documents a raw GraphQL mutation as an admin procedure, which has no precedent elsewhere in these docs. GORILLA_DISABLE_TEAM_SERVICE_ACCOUNT_CREATION (DOCS-2902) went the environment variable route for the sibling control, so readers will look for an equivalent here. If an env var or UI is planned, the page should wait for it.
  • Is the absence of a rotate action deliberate?
  • Is "organization-scoped API key" the right public-facing term?
  • Does the error string API key creation has been disabled by your organization administrator match what users see?
  • Billing admin behavior is code-derived: hidden in Multi-tenant Cloud via isViewerBillingOnly, unrestricted in the onprem Organization Dashboard. Please confirm, since role behavior can change without anyone treating it as a docs-visible change.

Resolved during review: the single-key delete control is now taken from the code rather than inferred from a screenshot.

Validation

validate-mdx-mintlify.sh validate passes and mint broken-links reports none, both on mint 4.2.792.

🤖 Generated with Claude Code

…controls

Adds a primary page for API key management covering the consolidated
API Keys tab, the key visibility model by role, and the two admin
settings that restrict key creation and use.

Deployment split verified against wandb/core master and
server-release-0.83.x:
- requireOrgScopedAPIKeys is Multi-tenant Cloud only, Enterprise
  non-academic orgs, behind a per-org Statsig gate.
- disableApiKeyCreation is Dedicated Cloud and Self-Managed only,
  new in v0.84.0.
- Search, filter, key creation, and bulk delete in the API Keys tab
  are new for Dedicated Cloud and Self-Managed in v0.84.0.

Also disambiguates "organization-scoped API key" from
"organization-scoped service account", which the docs already used
for a different concept.

Refs DOCS-3071, WB-25038, WB-37180

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
wandb 🟢 Ready View Preview Aug 11, 2026, 9:40 PM

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Readability impact

Word-weighted Flesch-Kincaid grade change across 3 changed pages: +0.0 (unchanged).

Lower Flesch-Kincaid grade and higher reading ease both mean easier to read. This check is informational and never blocks a PR.

Human readability

Page FK grade before FK grade after FK Δ Reading ease Δ Direction
platform/app/settings-page/user-settings.mdx 7.5 7.6 +0.1 -0.5 harder
platform/hosting/iam/advanced_env_vars.mdx 14.3 14.3 +0.0 +0.0 unchanged
platform/hosting/iam/api-keys.mdx 8.2 n/a
platform/hosting/iam/service-accounts.mdx 13.2 13.1 -0.1 +0.1 easier

AI agent comprehension

Rated 0-3 (higher is easier for an agent to parse and act on).

Page Before After Δ
platform/hosting/iam/api-keys.mdx 2
platform/app/settings-page/user-settings.mdx 2 2 +0
platform/hosting/iam/service-accounts.mdx 2 2 +0
platform/hosting/iam/advanced_env_vars.mdx 3 3 +0

Curated-docs baseline median FK grade by type: conceptual 10.5, procedural 8.8, reference 9.4.

From workflow run 31540471719

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

📚 Mintlify Preview Links

🔗 View Full Preview

✨ Added (1 total)

📄 Pages (1)

File Preview
platform/hosting/iam/api-keys.mdx Api Keys

📝 Changed (4 total)

📄 Pages (3)

File Preview
platform/app/settings-page/user-settings.mdx User Settings
platform/hosting/iam/advanced_env_vars.mdx Advanced Env Vars
platform/hosting/iam/service-accounts.mdx Service Accounts
⚙️ Other (1)
File
docs.json

🤖 Generated automatically when Mintlify deployment succeeds
📍 Deployment: b96dcca at 2026-08-11 22:02:05 UTC

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

🔗 Link Checker Results

All links are valid!

No broken links were detected.

Preview: https://wb-21fd5541-docs-3071-org-scoped-api-keys.mintlify.site

Comment thread platform/hosting/iam/api-keys.mdx Outdated
Comment thread platform/hosting/iam/api-keys.mdx Outdated
Comment thread platform/hosting/iam/api-keys.mdx Outdated
Comment thread platform/hosting/iam/api-keys.mdx Outdated
Comment thread platform/hosting/iam/api-keys.mdx
- Give step-wise UI navigation to the API Keys tab for both
  Multi-tenant Cloud and the onprem Organization Dashboard, reusing
  the URL patterns already used in org_dashboard.mdx.
- Correct the billing admin claim. The tab is hidden for the
  BILLING_ONLY org role in Multi-tenant Cloud only; the onprem
  Organization Dashboard renders the tab with no billing guard.
- Add a billing admin row to the visibility table.
- Add "Rotate an API key". W&B has no single rotate action, so the
  section documents the create, migrate, verify, delete workflow.
- Add "Rename an API key" for the row Edit action.
- Replace the inferred single-key delete wording with the actual
  control: the row actions menu offers Edit and Delete.

Refs DOCS-3071

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@w-b-hivemind

w-b-hivemind Bot commented Aug 11, 2026

Copy link
Copy Markdown

HiveMind Sessions

1 session · 46m · $23

Session Agent Duration Tokens Cost Lines
Enterprise-Managed User Accounts Investigation
e11da2ab-9f14-442a-a1f5-a3c9c15d9680
claude 46m 113.0K $23 +342 -16
Total 46m 113.0K $23 +342 -16
Screenshots

View all sessions in HiveMind →

Run claude --resume e11da2ab-9f14-442a-a1f5-a3c9c15d9680 to pickup where you left off.

Comment thread platform/hosting/iam/api-keys.mdx Outdated
@mdlinville mdlinville added the DO-NOT-MERGE For PRs that should not be merged yet label Aug 11, 2026
@mdlinville
mdlinville marked this pull request as ready for review August 11, 2026 22:00
@mdlinville
mdlinville requested a review from a team as a code owner August 11, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO-NOT-MERGE For PRs that should not be merged yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant