Skip to content

feat(spec): retire ApiKeySchema — sys_api_key has one declaration, the platform object (#8715, ADR-0049) - #8932

Merged
os-project-manager merged 4 commits into
mainfrom
claude/issue-8715-apikey-schema-retirement
Aug 15, 2026
Merged

feat(spec): retire ApiKeySchema — sys_api_key has one declaration, the platform object (#8715, ADR-0049)#8932
os-project-manager merged 4 commits into
mainfrom
claude/issue-8715-apikey-schema-retirement

Conversation

@os-project-manager

Copy link
Copy Markdown
Collaborator

Fixes#8715

§1 only, per the maintainer ruling of 2026-08-15 (「接受全部建议。」 item 1, comment 5299771349): disposition B — delete. §2 (the sk_live_ prefix) merged separately via PR #8733 and is untouched here.

What this does

ApiKeySchema / ApiKey / ApiKeyParsed leave @objectstack/spec/identity entirely. The schema documented better-auth's apiKeyplugin shape — a plugin this platform does not load: start / lastRefetchAt (no such columns), enabled (the real column is revoked, opposite polarity), four per-key rate-limit keys (no such surface exists anywhere), permissions / metadata (no columns), camelCase organizationId next to the real snake_case active_organization_id. One table had two declarations and the published one was fiction (AGENTS.md PD #10). packages/platform-objects/src/identity/sys-api-key.object.ts is now the single declaration; the generated reference page's ApiKey section disappears with the schema.

Zero-consumer premise re-measured at base 7901b2d (three spec PRs merged since the 08-14 measurement): grep hits are only the schema's own file, its unit test, the export/api-surface snapshots, the generated docs pages, and the developer-portal.zod.ts prose mention. Premise holds.

The retirement kit (route 3 — no carrier key, no authored document, so no tombstone and no D2 conversion)

⚠️ Shared generated surfaces — os-regen relay

  • packages/spec/src/migrations/registry.ts is touched (HOT) — via gen:migration-registry from two new entry files; the marked regions are generated, never hand-edited. One hand edit outside the markers: the 18: [ … ] region scaffolding for retired-def:18, which did not exist yet — this PR is the first retired-def entry of major 18, which is one of the two merge-queue conflict shapes the entries README documents (first-entry-of-a-new-major). If a sibling lands a retired-def:18 entry first, I am the second lander and the os-regen relay applies at landing.
  • Reference docs (content/docs/references/identity/identity.mdx, cloud/developer-portal.mdx, index.mdx) and api-surface/ / export-origins/ identity shards regenerated, not hand-edited.
  • Sibling in flight Refuse the declared relative-date preset vocabulary as a bare temporal comparand at publish time — the ruled C half of #8690, carved out for the spec seat #8793 (data/filter.zod.ts + contracts + lint) is disjoint at source level.

Out of scope, recorded

Verification

Gate readings and the union run at the final head are posted in the report comment on #8715 (report lands at draft-PR time; CI convergence is the PM's read per the 2026-08-10 ruling).


Generated by Claude Code

…e platform object (#8715, ADR-0049)
Maintainer ruling 2026-08-15 (disposition B: delete). ApiKeySchema documented
better-auth's apiKey plugin schema — a plugin this platform does not load —
so one table had two declarations and the published one was fiction (PD #10).
Zero consumers outside its own unit test, re-measured at base 7901b2d.
Route 3 retirement kit (#8586 / PR #8702, #8075 precedents): retired-def
entry identity/ApiKey + D3 semantic entry identity-api-key-schema-retired
under protocol 18; manifest and authorable-surface/authorable-defaults lines
removed via the sanctioned deliberate-deletion path the #2978/#4725 gates
prescribe; pin tests on both sides of the package boundary; developer-portal
prose corrected (the marketplace-key plan is ruled NOT live).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fgvh1iEJfxetei7aNVdtJt
@vercel

vercelBot commented Aug 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 15, 2026 9:39pm

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

106 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx(via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx(via @objectstack/spec)
  • content/docs/ai/skills.mdx(via @objectstack/spec)
  • content/docs/api/client-sdk.mdx(via @objectstack/spec)
  • content/docs/api/environment-routing.mdx(via @objectstack/spec)
  • content/docs/api/error-catalog.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx(via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx(via @objectstack/spec)
  • content/docs/api/index.mdx(via @objectstack/spec)
  • content/docs/automation/approvals.mdx(via @objectstack/spec)
  • content/docs/automation/connectors.mdx(via @objectstack/spec)
  • content/docs/automation/flows.mdx(via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx(via packages/spec)
  • content/docs/automation/hooks.mdx(via @objectstack/spec)
  • content/docs/automation/index.mdx(via @objectstack/spec)
  • content/docs/automation/webhooks.mdx(via @objectstack/spec)
  • content/docs/automation/workflows.mdx(via @objectstack/spec)
  • content/docs/concepts/architecture.mdx(via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx(via packages/spec)
  • content/docs/concepts/index.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx(via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx(via packages/spec)
  • content/docs/concepts/north-star.mdx(via @objectstack/spec)
  • content/docs/data-modeling/analytics.mdx(via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx(via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx(via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx(via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx(via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx(via @objectstack/spec)
  • content/docs/data-modeling/index.mdx(via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx(via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx(via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx(via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx(via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx(via @objectstack/spec)
  • content/docs/deployment/cli.mdx(via @objectstack/spec)
  • content/docs/deployment/tenancy-modes.mdx(via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx(via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx(via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx(via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx(via @objectstack/spec)
  • content/docs/getting-started/examples.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx(via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx(via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx(via @objectstack/spec)
  • content/docs/kernel/cluster.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx(via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx(via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/email-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/examples.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/index.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx(via @objectstack/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx(via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx(via @objectstack/spec)
  • content/docs/kernel/services-checklist.mdx(via @objectstack/spec)
  • content/docs/kernel/services.mdx(via @objectstack/spec)
  • content/docs/permissions/authorization.mdx(via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx(via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx(via @objectstack/spec)
  • content/docs/permissions/positions.mdx(via @objectstack/spec)
  • content/docs/permissions/rls.mdx(via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx(via @objectstack/spec)
  • content/docs/permissions/system-context.mdx(via packages/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx(via @objectstack/spec)
  • content/docs/plugins/development.mdx(via @objectstack/spec)
  • content/docs/plugins/index.mdx(via @objectstack/spec)
  • content/docs/plugins/packages.mdx(via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx(via @objectstack/spec)
  • content/docs/protocol/diagram.mdx(via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/http-protocol.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx(via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx(via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx(via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx(via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx(via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx(via @objectstack/spec)
  • content/docs/ui/actions.mdx(via @objectstack/spec)
  • content/docs/ui/apps.mdx(via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx(via @objectstack/spec)
  • content/docs/ui/dashboards.mdx(via @objectstack/spec)
  • content/docs/ui/field-grouping-and-order.mdx(via @objectstack/spec)
  • content/docs/ui/forms.mdx(via @objectstack/spec)
  • content/docs/ui/index.mdx(via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx(via @objectstack/spec)
  • content/docs/ui/setup-app.mdx(via @objectstack/spec)
  • content/docs/ui/translations.mdx(via @objectstack/spec)
  • content/docs/ui/views.mdx(via @objectstack/spec)

7 release-owned page(s) also reference the affected code. These are read-only:

  • content/docs/releases/implementation-status.mdx(via @objectstack/spec)
  • content/docs/releases/index.mdx(via @objectstack/spec)
  • content/docs/releases/v12.mdx(via @objectstack/spec)
  • content/docs/releases/v13.mdx(via @objectstack/spec)
  • content/docs/releases/v16.mdx(via @objectstack/spec)
  • content/docs/releases/v17.mdx(via @objectstack/spec)
  • content/docs/releases/v9.mdx(via @objectstack/spec)

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tests tooling labels Aug 15, 2026
@os-project-manager
os-project-manager marked this pull request as ready for review August 15, 2026 21:59
@os-project-manager
os-project-manager added this pull request to the merge queueAug 15, 2026
Merged via the queue into main with commit 2c86fe3Aug 15, 2026
28 checks passed
@os-project-manager
os-project-manager deleted the claude/issue-8715-apikey-schema-retirement branch August 15, 2026 22:17
os-project-manager pushed a commit that referenced this pull request Aug 15, 2026
…try sibling (#8793)
os-regen relay for #8932's retired-def:18 landing: merge committed first,
then gen:migration-registry / api-surface / export-origins / spec-changes /
upgrade-guide / openapi re-run on the merged tree. Both sides asserted
surviving: this branch's filter-preset-ordering-comparand-refused entry AND
#8932's identity-api-key-schema-retired entry + its identity.zod.ts deletion.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fgvh1iEJfxetei7aNVdtJt
os-project-manager pushed a commit that referenced this pull request Aug 15, 2026
…relay)
gen:migration-registry (96 semantic — both semantic:18 entries stack:
engine-dotted-filter-refused + filter-preset-ordering-comparand-refused),
spec build, gen:export-origins, gen:api-surface, gen:spec-changes,
gen:upgrade-guide, gen:openapi restore. check:generated: all 13 artifacts
up to date. Survival asserted on the merged tree: #8935's entry and its
implementation body (isDateRangePresetName), #8932's ApiKeySchema still
absent, this branch's entry and classifyDottedFilterHead at all three
consuming files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fgvh1iEJfxetei7aNVdtJt
os-project-manager pushed a commit that referenced this pull request Aug 16, 2026
…8939 relay)
gen:migration-registry, spec build, gen:export-origins, gen:api-surface,
gen:spec-changes, gen:upgrade-guide, gen:openapi restore. check:generated:
all 13 artifacts up to date. Survival asserted on the merged tree, one hit
each in the regenerated registry: engine-dotted-filter-refused (this
branch), driver-sql-unresolvable-where-column-refused (#8927),
filter-preset-ordering-comparand-refused (#8935),
identity-api-key-schema-retired (#8932) - plus implementation bodies:
sql-driver.ts INVALID_FIELD refusal + envelope test (#8927),
isDateRangePresetName (#8935), ApiKeySchema still absent (#8932),
classifyDottedFilterHead at both doors (this branch).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fgvh1iEJfxetei7aNVdtJt
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/lteststooling

Projects

None yet

2 participants

@os-project-manager@claude