Repository navigation
Conversation
A Custom keys section under Endpoint & keys lists keys with their signals, rate limit and attribute overrides, and creates, edits, toggles, rolls and deletes them. The secret is shown once after create and roll.
Block empty attribute values and reserved keys in any case, cap the description, let the edit dialog change or keep the expiry, drop an inline cast, and say the rate limit is split across servers.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Maple review🟢 Confidence 8/10 · likely safe to merge Adds a Custom keys section to Settings → Ingestion that lists, creates, edits, enables, rolls and deletes custom ingest keys, plus a new list atom and an authentication-docs section. The API contracts it calls all exist and no defect turned up; safe to merge, with no browser test covering the new section.
Production impactProduction traffic of the changed files (last 7 days)
What was checked
Observability coverage: 1 of 1 changes observable
|
🍁 Maple PR previewWarning Preview cleanup could not be confirmed. The Alchemy teardown outcome was Final commit |
Maple review🟢 Confidence 7/10 · likely safe to merge Adds a Custom keys section to Settings → Ingestion that lists and manages custom ingest keys (create, edit, enable/disable, roll, delete) against
Before merge
Findings🔵 Note · F1 · Custom-key form rules and create→reveal flow have no testtests · This section adds rules the server enforces with a 400 (rate-limit bounds, reserved 🤖 Prompt to fix this finding with an AI agentProduction impactProduction traffic of the changed files (last 7 days)
What was checked
Observability coverage: 0 of 1 changes observable
|
|
Re F1 (no test for the form rules and reveal flow): added |
|
Note ⏳ Maple is reviewing this pull request at |
Maple review🟢 Confidence 9/10 · safe to merge Adds the Custom keys section to Settings → Ingestion (create/edit/roll/delete, one-time secret reveal) and the browser test that was missing at e0ed30a. UI-only, safe to merge.
Fixed since the last review
Production impactProduction traffic of the changed files (last 7 days)
What was checked
|
Maple review🟢 Confidence 8/10 · likely safe to merge Adds a Custom keys section to Settings → Ingestion: list, create, edit, enable/disable, roll and delete custom ingest keys, with the secret shown once. Payloads match the v2 ingest-key schemas, so it is safe to merge.
Production impactProduction traffic of the changed files (last 7 days)
What was checked
|
Preview test (pr-1520, deployed
|
| Check | Result |
|---|---|
| Create key, one-time masked secret, list row | ✅ |
/v1/traces, /v1/logs |
200 |
/v1/metrics |
403 "This ingest key is not allowed to send metrics" |
/v1/sessionEvents (click + custom rows) |
403 "…not allowed to send sessions or events" |
| 5-request burst at 2 req/s | 200, 200, 429, 429, 200 · retry-after: 1 |
Unknown maple_ik_ key |
401 |
| Disable toggle | 200 → 401 within 40 s |
| Re-enable + roll | old secret 401, new secret 200 |
| Delete | 401 |
Stored span (sent with deployment.environment=prod, no service.name, spoofed maple_ingest_key_id) |
deployment.environment=qa, service.name=qa-svc, maple_ingest_key_id=ingk_v9SD…, maple_ingest_key_type=custom |
| Create | List |
|---|---|
![]() |
![]() |
Trace facets (env qa, service qa-svc) |
Span resource attributes |
|---|---|
![]() |
![]() |
Walkthrough recording: preview-walkthrough.mp4
Not covered on the preview: the sender-key-id strip from #1519 (3f696ba) was still deploying; it is pinned by default_keys_get_no_key_id_stamp_or_overrides.
Ingestion splits into Setup, Keys and Attribute mappings. Keys is one table of the default and custom keys with status and last data. New and configure are a full-page form with a live preview of how each resource attribute lands. A key's page shows the one-time secret with paste-ready snippets, status cards, 24h span and log volume, its configuration, and pause (for an hour, a day or until resumed) in place of the enable switch.
Rows open from the keyboard, a filter with no match says so, the view switch is Tabs, banners use Alert, the form takes a create or configure mode, one hook reads a key from the shared list, and limits come from the domain.
Maple review🟢 Confidence 8/10 · likely safe to merge Adds the custom ingest key UI: a Keys tab in Settings → Ingestion, a full-page create/configure form, a key page with usage, pause/roll/delete and a one-time secret, plus the auth docs section. Browser-only and contained; safe to merge.
Production impactProduction traffic of the changed files (last 7 days)
What was checked
|
The settings route's search schema only needs the view names, so they move to a dependency-free module and the key helpers stay in the split chunk. Initial static JS goes from 706.7 KB to 705.9 KB gzip (budget 706.5 KB).
Maple review🟢 Confidence 7/10 · likely safe to merge Rebuilds the Ingestion settings tab into Setup, Keys and Attribute-mappings views, with a custom-key table, a key page (one-time secret, volume, pause/roll/delete) and a sectioned key form. The UI work is sound, but the breadcrumb hook added to the settings route breaks the rules of hooks on the retired-tab redirect path.
Findings🟠 Warning · F2 ·
|
| File | Calls/day | Busiest operations |
|---|---|---|
apps/web/src/components/settings/ingest-keys/shared.ts |
1.2M | POST /v1/traces 466k/day, 0.0% errPOST /v1/traces 255k/day, 0.0% errPOST /v1/metrics 186k/day, 0.0% err |
What was checked
- The
View traceslink'sresourceAttributeFiltersshape matches the/tracessearch schema (apps/web/src/routes/traces/index.tsx:63) - Key ids round-trip through
CustomIngestKeyPublicIdencode/decode, so row links, crumbs and mutations agree - Search objects replace rather than merge, matching
search: (prev) => ...used elsewhere inapps/web
6204865 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
The retired-tab redirects return early, so a hook after them ran on some renders and not others.
|
Re the 7/10 review: right, |
Maple review🟢 Confidence 9/10 · safe to merge
Fixed since the last review
Production impactProduction traffic of the changed files (last 7 days)
What was checked
|






Part 3 of 3: the ingest keys UI, rebuilt after the Paper design. Base: #1519.
Settings → Ingestion splits into Setup, Keys and Attribute mappings.
Rows open from the mouse or the keyboard.
Verified in the local dev stack, signed in, against the real API, Postgres and warehouse:
Browser tests:
until, Resume on a paused key, and a rolled secret handed up.Both tests were mutation-checked. Web typecheck and oxlint are clean.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.