Conversation
…t gen, remove events+rate-limiter BREAKING CHANGES: - create()/rotate(): secret material generated server-side, remove hash/lookupPrefix/secretHex from client args - Admin mutations (revoke/disable/enable/update/rotate/getUsage): ownerId now required - apiKeyEvents table removed — structured logs replace event-based audit trail - @convex-dev/rate-limiter removed — rate limiting is integrator's responsibility - @convex-dev/aggregate and @convex-dev/crons removed (unused) - getUsage(): period param removed (counter-only), lastUsedAt removed from return - list()/listByTag(): paginated via .take(100) default limit New features: - ownerId cross-check on all admin mutations (auth boundary) - Input validation: keyPrefix charset, env charset, gracePeriodMs bounds, metadata/scopes/tags size caps - configure() bounds validation + structured audit logging - lastUsedAt/remaining writes decoupled in validate (single merged patch) - lastUsedAt throttled to 60s to reduce OCC contention - revokeByTag expanded to include rotating+disabled statuses - Structured logging replaces all event table writes Tests: 82 passing (was 69), +14 new tests for auth boundary, input validation, bounds
…AUDE - README: new API signatures with ownerId, remove rate-limiter/events claims, update architecture to 1 child component, add security model section - docs/API.md: all method signatures updated, input validation table added - CHANGELOG.md: full v0.2.0 entry with breaking changes + migration guide - AGENTS.md: fix schema reference, add docs-sync rule - CLAUDE.md: update design decisions, architecture, schema references - Spec archived to specs/shipped/ with retro
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Breaking Changes
create()argshash,lookupPrefix,secretHex— server generates internallyrotate()argslookupPrefix,secretHex— server generates internallyownerIdas required arggetUsage()periodparam,lastUsedAtfrom returnapiKeyEventstable@convex-dev/rate-limiterStats
Test plan
pnpm test)pnpm lint)pnpm build)pnpm build:codegenwith Convex auth to regenerate_generated/types