docs: teach site and collector key types for Capture and OTLP HTTP - #904
docs: teach site and collector key types for Capture and OTLP HTTP#904davidmytton wants to merge 2 commits into
Conversation
Capture and OTLP HTTP accept a site SDK key or a project collector key. Collector keys are ingest-only; protect and guard still require a site key. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Approved
Rationale: Documentation-only change updating three MDX files to describe two key kinds (site SDK key ajkey_ and project collector key aj_prj_key_) plus regenerated screenshot snapshots. No code, no dependencies, no infrastructure. No security-sensitive code paths touched; the change is descriptive prose explaining how existing endpoints treat the two key types.
Summary of Changes
Docs update explaining that Arcjet issues two key types — site SDK keys (ajkey_) and project collector keys (aj_prj_key_) — and clarifying which is accepted by protect()/guard() (site only), Capture, and OTLP HTTP (either). Updates environment.mdx, guards/capture.mdx, and troubleshooting.mdx, plus regenerated troubleshooting screenshot baselines.
Review: a7b1e341 | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
|
|
||
| OTLP export to Arcjet is HTTP only. Set this header on the exporter: | ||
|
|
||
| ```sh |
There was a problem hiding this comment.
The header value "Authorization=Bearer SITE_OR_COLLECTOR_KEY" uses = between header name and value, which is the format OTEL_EXPORTER_OTLP_HEADERS expects (comma-separated key=value pairs). Confirm this is intentional — readers familiar with raw HTTP headers may expect Authorization: Bearer ... and copy-paste this incorrectly. Consider a one-line note that the = is required by the OTEL env-var syntax, not a typo.
|
We'll leave this undocumented for now. |
Documents the credential outcome from arcjet#8942 (
0b49efff694ba343696573620a2c444283ef2f45).What changed
Arcjet issues two secrets: a site SDK key (
ajkey_) and a project collector key (aj_prj_key_). Capture and OTLP HTTP accept either. Site keys keep working.Collector keys are ingest-only. In production, Guard and Decide respond
404to a collector key.ARCJET_KEYforprotect()andguard()stays a site key.OTLP is HTTP only. Set
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer <site or collector key>"against the Worker HTTP endpoint. gRPC OTLP is unsupported.Where
ajkey_” claim with the two key kinds, the Capture/OTLP acceptance matrix, and the OTLP HTTP header.guard()orprotect().No new OTLP product page. No Project View / customer Project UI. Collector keys are documented as issued through the project and site APIs. No actor, inputs,
policyInput, or remote-policy teaching. Separate from #901 (Python capture degraded).Verification
astro check: 0 errors, 0 warnings.ARCJET_KEYset: complete; starlight-links-validator reports all internal links valid./environment,/guards/capture, and/troubleshooting: new key-type copy is present; the old “always prefixed withajkey_” sentence is gone.npm run pw:run -- --update-snapshots=changed -g troubleshootingpassed (2 tests).