@danieljvdm/dev-kit 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/package.json +1 -1
- package/skill-sources.jsonc +2 -33
- package/skill-sources.lock.json +15 -117
- package/skills/animate/LICENSE +21 -0
- package/skills/animate/NOTICE +10 -0
- package/skills/animate/SKILL.md +34 -0
- package/skills/animate/references/gestures.md +27 -0
- package/skills/animate/references/glossary.md +136 -0
- package/skills/animate/references/implementation.md +22 -0
- package/skills/animate/references/opportunities.md +18 -0
- package/skills/animate/references/principles.md +48 -0
- package/skills/animate/references/review.md +19 -0
- package/skills/cloudflare-workers/LICENSE +202 -0
- package/skills/cloudflare-workers/NOTICE +9 -0
- package/skills/cloudflare-workers/SKILL.md +26 -0
- package/skills/cloudflare-workers/references/durable-objects.md +68 -0
- package/skills/cloudflare-workers/references/sandbox.md +48 -0
- package/skills/cloudflare-workers/references/workers.md +63 -0
- package/skills/cloudflare-workers/references/wrangler.md +56 -0
- package/skills/design-ui/LICENSE +21 -0
- package/skills/design-ui/NOTICE +8 -0
- package/skills/design-ui/SKILL.md +29 -0
- package/skills/design-ui/references/appearance.md +22 -0
- package/skills/design-ui/references/components.md +33 -0
- package/skills/design-ui/references/exploration.md +50 -0
- package/skills/design-ui/references/libraries.md +39 -0
- package/skills/design-ui/references/themes.md +23 -0
- package/skills/dev-kit/SKILL.md +19 -38
- package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
- package/skills/dev-kit/references/skills.md +2 -2
- package/skills/effect-development/SKILL.md +27 -0
- package/skills/effect-development/agents/openai.yaml +4 -0
- package/skills/effect-development/references/api/index.md +32 -0
- package/skills/effect-development/references/api/schema-codecs.md +15 -0
- package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
- package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
- package/skills/effect-development/references/atom/index.md +40 -0
- package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
- package/skills/effect-development/references/cli/index.md +39 -0
- package/skills/effect-development/references/setup.md +15 -0
- package/skills/open-pull-request/SKILL.md +10 -70
- package/skills/open-pull-request/references/evidence.md +22 -0
- package/skills/open-pull-request/references/explanation.md +21 -0
- package/skills/open-pull-request/references/publication.md +21 -0
- package/skills/sentry/LICENSE +202 -0
- package/skills/sentry/LICENSE-UPSTREAM +21 -0
- package/skills/sentry/NOTICE +14 -0
- package/skills/sentry/SKILL.md +33 -0
- package/skills/sentry/references/alert-payloads.md +105 -0
- package/skills/sentry/references/alerts.md +17 -0
- package/skills/sentry/references/artifacts.md +25 -0
- package/skills/sentry/references/auth-token.md +65 -0
- package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
- package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
- package/skills/sentry/references/concepts/crons.md +50 -0
- package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
- package/skills/sentry/references/concepts/errors.md +40 -0
- package/skills/sentry/references/concepts/logging.md +85 -0
- package/skills/sentry/references/concepts/metrics.md +49 -0
- package/skills/sentry/references/concepts/monitors.md +78 -0
- package/skills/sentry/references/concepts/profiling.md +38 -0
- package/skills/sentry/references/concepts/reduce-volume.md +49 -0
- package/skills/sentry/references/concepts/releases.md +43 -0
- package/skills/sentry/references/concepts/session-replay.md +35 -0
- package/skills/sentry/references/concepts/tracing.md +54 -0
- package/skills/sentry/references/concepts/user-feedback.md +36 -0
- package/skills/sentry/references/debug-artifacts/android.md +68 -0
- package/skills/sentry/references/debug-artifacts/apple.md +96 -0
- package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
- package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
- package/skills/sentry/references/debug-artifacts/index.md +75 -0
- package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
- package/skills/sentry/references/debug-artifacts/matching.md +73 -0
- package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
- package/skills/sentry/references/first-error-setup.md +25 -0
- package/skills/sentry/references/instrumentation.md +30 -0
- package/skills/sentry/references/issues.md +32 -0
- package/skills/sentry/references/new-project.md +17 -0
- package/skills/sentry/references/otel-exporter.md +30 -0
- package/skills/sentry/references/release-workflow.md +31 -0
- package/skills/sentry/references/releases/ci-pipeline.md +214 -0
- package/skills/sentry/references/releases/index.md +93 -0
- package/skills/sentry/references/releases/suspect-commits.md +155 -0
- package/skills/sentry/references/releases/tagging.md +131 -0
- package/skills/sentry/references/releases/troubleshooting.md +67 -0
- package/skills/sentry/references/sdks/android/crons.md +305 -0
- package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
- package/skills/sentry/references/sdks/android/index.md +748 -0
- package/skills/sentry/references/sdks/android/integrations.md +48 -0
- package/skills/sentry/references/sdks/android/logging.md +374 -0
- package/skills/sentry/references/sdks/android/metrics.md +288 -0
- package/skills/sentry/references/sdks/android/profiling.md +397 -0
- package/skills/sentry/references/sdks/android/session-replay.md +406 -0
- package/skills/sentry/references/sdks/android/tracing.md +861 -0
- package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
- package/skills/sentry/references/sdks/browser/index.md +714 -0
- package/skills/sentry/references/sdks/browser/logging.md +315 -0
- package/skills/sentry/references/sdks/browser/profiling.md +236 -0
- package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
- package/skills/sentry/references/sdks/browser/tracing.md +561 -0
- package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
- package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
- package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
- package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
- package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
- package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
- package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
- package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
- package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
- package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
- package/skills/sentry/references/sdks/cocoa/index.md +497 -0
- package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
- package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
- package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
- package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
- package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
- package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
- package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
- package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
- package/skills/sentry/references/sdks/dotnet/index.md +614 -0
- package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
- package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
- package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
- package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
- package/skills/sentry/references/sdks/elixir/crons.md +371 -0
- package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
- package/skills/sentry/references/sdks/elixir/index.md +383 -0
- package/skills/sentry/references/sdks/elixir/logging.md +239 -0
- package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
- package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
- package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
- package/skills/sentry/references/sdks/flutter/index.md +728 -0
- package/skills/sentry/references/sdks/flutter/logging.md +387 -0
- package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
- package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
- package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
- package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
- package/skills/sentry/references/sdks/go/crons.md +270 -0
- package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
- package/skills/sentry/references/sdks/go/index.md +324 -0
- package/skills/sentry/references/sdks/go/logging.md +354 -0
- package/skills/sentry/references/sdks/go/metrics.md +273 -0
- package/skills/sentry/references/sdks/go/profiling.md +46 -0
- package/skills/sentry/references/sdks/go/tracing.md +366 -0
- package/skills/sentry/references/sdks/index.md +41 -0
- package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
- package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
- package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
- package/skills/sentry/references/sdks/nestjs/index.md +699 -0
- package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
- package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
- package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
- package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
- package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
- package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
- package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
- package/skills/sentry/references/sdks/nextjs/index.md +491 -0
- package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
- package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
- package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
- package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
- package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
- package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
- package/skills/sentry/references/sdks/node/crons.md +432 -0
- package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
- package/skills/sentry/references/sdks/node/index.md +942 -0
- package/skills/sentry/references/sdks/node/logging.md +380 -0
- package/skills/sentry/references/sdks/node/metrics.md +278 -0
- package/skills/sentry/references/sdks/node/profiling.md +373 -0
- package/skills/sentry/references/sdks/node/tracing.md +878 -0
- package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
- package/skills/sentry/references/sdks/php/crons.md +265 -0
- package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
- package/skills/sentry/references/sdks/php/index.md +362 -0
- package/skills/sentry/references/sdks/php/laravel.md +542 -0
- package/skills/sentry/references/sdks/php/logging.md +242 -0
- package/skills/sentry/references/sdks/php/metrics.md +193 -0
- package/skills/sentry/references/sdks/php/profiling.md +115 -0
- package/skills/sentry/references/sdks/php/symfony.md +552 -0
- package/skills/sentry/references/sdks/php/tracing.md +516 -0
- package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
- package/skills/sentry/references/sdks/python/crons.md +218 -0
- package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
- package/skills/sentry/references/sdks/python/index.md +361 -0
- package/skills/sentry/references/sdks/python/logging.md +234 -0
- package/skills/sentry/references/sdks/python/metrics.md +154 -0
- package/skills/sentry/references/sdks/python/profiling.md +120 -0
- package/skills/sentry/references/sdks/python/tracing.md +364 -0
- package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
- package/skills/sentry/references/sdks/react/index.md +492 -0
- package/skills/sentry/references/sdks/react/logging.md +364 -0
- package/skills/sentry/references/sdks/react/profiling.md +322 -0
- package/skills/sentry/references/sdks/react/react-features.md +1272 -0
- package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
- package/skills/sentry/references/sdks/react/tracing.md +1415 -0
- package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
- package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
- package/skills/sentry/references/sdks/react-native/index.md +1030 -0
- package/skills/sentry/references/sdks/react-native/logging.md +444 -0
- package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
- package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
- package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
- package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
- package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
- package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
- package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
- package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
- package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
- package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
- package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
- package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
- package/skills/sentry/references/sdks/ruby/crons.md +184 -0
- package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
- package/skills/sentry/references/sdks/ruby/index.md +297 -0
- package/skills/sentry/references/sdks/ruby/logging.md +168 -0
- package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
- package/skills/sentry/references/sdks/ruby/migration.md +321 -0
- package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
- package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
- package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
- package/skills/sentry/references/sdks/svelte/index.md +467 -0
- package/skills/sentry/references/sdks/svelte/logging.md +344 -0
- package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
- package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
- package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
- package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
- package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
- package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
- package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
- package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
- package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
- package/skills/sentry/references/search-query-language.md +226 -0
- package/skills/sentry/references/semantics/angular.md +7 -0
- package/skills/sentry/references/semantics/app.md +28 -0
- package/skills/sentry/references/semantics/art.md +17 -0
- package/skills/sentry/references/semantics/aws.md +43 -0
- package/skills/sentry/references/semantics/browser.md +34 -0
- package/skills/sentry/references/semantics/cache.md +12 -0
- package/skills/sentry/references/semantics/client.md +8 -0
- package/skills/sentry/references/semantics/cloud.md +12 -0
- package/skills/sentry/references/semantics/cloudflare.md +23 -0
- package/skills/sentry/references/semantics/code.md +11 -0
- package/skills/sentry/references/semantics/culture.md +11 -0
- package/skills/sentry/references/semantics/db.md +21 -0
- package/skills/sentry/references/semantics/device.md +43 -0
- package/skills/sentry/references/semantics/error.md +7 -0
- package/skills/sentry/references/semantics/event.md +8 -0
- package/skills/sentry/references/semantics/exception.md +10 -0
- package/skills/sentry/references/semantics/faas.md +19 -0
- package/skills/sentry/references/semantics/file.md +8 -0
- package/skills/sentry/references/semantics/flag.md +7 -0
- package/skills/sentry/references/semantics/gcp.md +16 -0
- package/skills/sentry/references/semantics/gen_ai.md +53 -0
- package/skills/sentry/references/semantics/general.md +11 -0
- package/skills/sentry/references/semantics/graphql.md +9 -0
- package/skills/sentry/references/semantics/grpc.md +19 -0
- package/skills/sentry/references/semantics/http.md +34 -0
- package/skills/sentry/references/semantics/index.md +63 -0
- package/skills/sentry/references/semantics/jsonrpc.md +8 -0
- package/skills/sentry/references/semantics/jvm.md +12 -0
- package/skills/sentry/references/semantics/koa.md +7 -0
- package/skills/sentry/references/semantics/logger.md +7 -0
- package/skills/sentry/references/semantics/mcp.md +37 -0
- package/skills/sentry/references/semantics/mdc.md +7 -0
- package/skills/sentry/references/semantics/messaging.md +23 -0
- package/skills/sentry/references/semantics/middleware.md +7 -0
- package/skills/sentry/references/semantics/navigation.md +9 -0
- package/skills/sentry/references/semantics/nel.md +11 -0
- package/skills/sentry/references/semantics/network.md +17 -0
- package/skills/sentry/references/semantics/os.md +15 -0
- package/skills/sentry/references/semantics/otel.md +10 -0
- package/skills/sentry/references/semantics/params.md +7 -0
- package/skills/sentry/references/semantics/process.md +14 -0
- package/skills/sentry/references/semantics/react.md +7 -0
- package/skills/sentry/references/semantics/remix.md +7 -0
- package/skills/sentry/references/semantics/resource.md +7 -0
- package/skills/sentry/references/semantics/rpc.md +10 -0
- package/skills/sentry/references/semantics/score.md +10 -0
- package/skills/sentry/references/semantics/sentry.md +69 -0
- package/skills/sentry/references/semantics/server.md +8 -0
- package/skills/sentry/references/semantics/service.md +8 -0
- package/skills/sentry/references/semantics/session.md +7 -0
- package/skills/sentry/references/semantics/state.md +7 -0
- package/skills/sentry/references/semantics/thread.md +8 -0
- package/skills/sentry/references/semantics/timber.md +7 -0
- package/skills/sentry/references/semantics/trpc.md +8 -0
- package/skills/sentry/references/semantics/ui.md +18 -0
- package/skills/sentry/references/semantics/url.md +15 -0
- package/skills/sentry/references/semantics/user.md +17 -0
- package/skills/sentry/references/semantics/user_agent.md +7 -0
- package/skills/sentry/references/semantics/vercel.md +42 -0
- package/skills/sentry/references/setup-verification.md +39 -0
- package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
- package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
- package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
- package/skills/sentry/references/snapshots/index.md +19 -0
- package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
- package/skills/sentry/references/snapshots/snapshots.md +123 -0
- package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
- package/skills/testing/LICENSE +21 -0
- package/skills/testing/NOTICE +7 -0
- package/skills/testing/SKILL.md +13 -19
- package/skills/testing/agents/openai.yaml +1 -2
- package/skills/testing/references/selection.md +23 -0
- package/skills/testing/references/tdd.md +19 -0
- package/skills/testing/references/test-design.md +17 -0
- package/src/catalog.ts +1 -7
- package/skills/build-effect-apis/SKILL.md +0 -81
- package/skills/build-effect-apis/agents/openai.yaml +0 -4
- package/skills/build-effect-clis/SKILL.md +0 -92
- package/skills/build-effect-clis/agents/openai.yaml +0 -4
- package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
- package/skills/effect-atom-state/SKILL.md +0 -97
- package/skills/effect-atom-state/agents/openai.yaml +0 -4
- package/skills/effect-ts/SKILL.md +0 -35
- package/skills/effect-ts/agents/openai.yaml +0 -4
- /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
- /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# Error Monitoring — Sentry Cloudflare SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/cloudflare` v8.0.0+ Hono integration: v10.0.0+ Durable Object
|
|
4
|
+
> instrumentation: v8.x+ Queue/Email/Tail handler instrumentation: v10.x+
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
The `@sentry/cloudflare` SDK captures errors across all Cloudflare runtime contexts:
|
|
11
|
+
|
|
12
|
+
- **Fetch handlers** (Workers and Pages)
|
|
13
|
+
- **Scheduled handlers** (cron triggers)
|
|
14
|
+
- **Queue handlers** (Cloudflare Queues consumers)
|
|
15
|
+
- **Email handlers** (Email Workers)
|
|
16
|
+
- **Durable Object methods** (fetch, alarm, WebSocket, RPC)
|
|
17
|
+
- **Workflow steps**
|
|
18
|
+
- **Hono `onError` handler**
|
|
19
|
+
|
|
20
|
+
When you wrap your handler with `withSentry` or `sentryPagesPlugin`, unhandled
|
|
21
|
+
exceptions are automatically captured with proper mechanism metadata.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Automatic Error Capture
|
|
26
|
+
|
|
27
|
+
### Workers (via `withSentry`)
|
|
28
|
+
|
|
29
|
+
All exported handler methods are automatically instrumented:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import * as Sentry from "@sentry/cloudflare";
|
|
33
|
+
|
|
34
|
+
export default Sentry.withSentry(
|
|
35
|
+
(env: Env) => ({
|
|
36
|
+
dsn: env.SENTRY_DSN,
|
|
37
|
+
dataCollection: {
|
|
38
|
+
// To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
|
|
39
|
+
// https://docs.sentry.io/platforms/javascript/guides/cloudflare/configuration/options/#dataCollection
|
|
40
|
+
// userInfo: false,
|
|
41
|
+
// httpBodies: [],
|
|
42
|
+
},
|
|
43
|
+
}),
|
|
44
|
+
{
|
|
45
|
+
async fetch(request, env, ctx) {
|
|
46
|
+
// Unhandled errors here are captured automatically
|
|
47
|
+
throw new Error("This is captured by Sentry");
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
async scheduled(controller, env, ctx) {
|
|
51
|
+
// Unhandled errors in scheduled handlers are captured too
|
|
52
|
+
throw new Error("Cron job failed");
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
async queue(batch, env, ctx) {
|
|
56
|
+
// Queue handler errors are captured with queue metadata
|
|
57
|
+
for (const message of batch.messages) {
|
|
58
|
+
await processMessage(message);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
async email(message, env, ctx) {
|
|
63
|
+
// Email handler errors are captured automatically
|
|
64
|
+
await forwardEmail(message);
|
|
65
|
+
},
|
|
66
|
+
} satisfies ExportedHandler<Env>,
|
|
67
|
+
);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Pages (via `sentryPagesPlugin`)
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
// functions/_middleware.ts
|
|
74
|
+
import * as Sentry from "@sentry/cloudflare";
|
|
75
|
+
|
|
76
|
+
export const onRequest = Sentry.sentryPagesPlugin((context) => ({
|
|
77
|
+
dsn: context.env.SENTRY_DSN,
|
|
78
|
+
dataCollection: {
|
|
79
|
+
// To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
|
|
80
|
+
// https://docs.sentry.io/platforms/javascript/guides/cloudflare/configuration/options/#dataCollection
|
|
81
|
+
// userInfo: false,
|
|
82
|
+
// httpBodies: [],
|
|
83
|
+
},
|
|
84
|
+
}));
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Errors in any Pages function are captured, re-thrown (so your error responses still
|
|
88
|
+
work), and flushed via `ctx.waitUntil()`.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Manual Error Capture
|
|
93
|
+
|
|
94
|
+
### `Sentry.captureException(error, hint?)`
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
try {
|
|
98
|
+
await riskyOperation();
|
|
99
|
+
} catch (error) {
|
|
100
|
+
Sentry.captureException(error, {
|
|
101
|
+
tags: { operation: "risky" },
|
|
102
|
+
extra: { inputData: someData },
|
|
103
|
+
});
|
|
104
|
+
// Handle the error gracefully
|
|
105
|
+
return new Response("Something went wrong", { status: 500 });
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### `Sentry.captureMessage(message, level?)`
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
Sentry.captureMessage("User performed unusual action", "warning");
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Supported levels: `"fatal"`, `"error"`, `"warning"`, `"info"`, `"debug"`.
|
|
116
|
+
|
|
117
|
+
### `Sentry.captureEvent(event)`
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
Sentry.captureEvent({
|
|
121
|
+
message: "Custom event",
|
|
122
|
+
level: "info",
|
|
123
|
+
tags: { component: "auth" },
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Enriching Events
|
|
130
|
+
|
|
131
|
+
### Tags
|
|
132
|
+
|
|
133
|
+
Tags are indexed key-value pairs for filtering and searching:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
Sentry.setTag("region", "us-east-1");
|
|
137
|
+
Sentry.setTag("worker_name", "api-gateway");
|
|
138
|
+
|
|
139
|
+
Sentry.setTags({
|
|
140
|
+
version: "2.1.0",
|
|
141
|
+
tier: "premium",
|
|
142
|
+
});
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### User Context
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
Sentry.setUser({
|
|
149
|
+
id: "user-123",
|
|
150
|
+
email: "user@example.com",
|
|
151
|
+
ip_address: "{{auto}}",
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Clear user on logout
|
|
155
|
+
Sentry.setUser(null);
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
> **PII note:** Use `dataCollection.cookies: true` in init options to include cookies
|
|
159
|
+
> (off by default for Cloudflare).
|
|
160
|
+
> Headers are captured by default with sensitive values redacted.
|
|
161
|
+
> For more control, configure `dataCollection.httpHeaders` and
|
|
162
|
+
> `dataCollection.httpBodies`.
|
|
163
|
+
|
|
164
|
+
### Extra Data
|
|
165
|
+
|
|
166
|
+
For arbitrary unindexed data attached to events:
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
Sentry.setExtra("requestBody", JSON.stringify(body));
|
|
170
|
+
|
|
171
|
+
Sentry.setExtras({
|
|
172
|
+
queryParams: Object.fromEntries(url.searchParams),
|
|
173
|
+
workerVersion: "1.2.3",
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Context
|
|
178
|
+
|
|
179
|
+
Structured context data for specific categories:
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
Sentry.setContext("cloudflare", {
|
|
183
|
+
worker: "api-gateway",
|
|
184
|
+
route: "/api/users",
|
|
185
|
+
datacenter: request.cf?.colo,
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The SDK automatically sets `cloud_resource` context with `cloud.provider: "cloudflare"`
|
|
190
|
+
and `culture` context with timezone from `request.cf`.
|
|
191
|
+
|
|
192
|
+
### Breadcrumbs
|
|
193
|
+
|
|
194
|
+
Breadcrumbs record a trail of events leading to an error:
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
Sentry.addBreadcrumb({
|
|
198
|
+
category: "auth",
|
|
199
|
+
message: "User authenticated via API key",
|
|
200
|
+
level: "info",
|
|
201
|
+
data: { method: "api_key" },
|
|
202
|
+
});
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
The `fetchIntegration` (default) automatically creates breadcrumbs for outbound
|
|
206
|
+
`fetch()` calls. The `consoleIntegration` (default) captures `console.*` calls as
|
|
207
|
+
breadcrumbs.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Scopes
|
|
212
|
+
|
|
213
|
+
### `withScope` — Temporary Scope
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
Sentry.withScope((scope) => {
|
|
217
|
+
scope.setTag("handler", "api");
|
|
218
|
+
scope.setExtra("requestId", requestId);
|
|
219
|
+
Sentry.captureException(error);
|
|
220
|
+
// Tags and extras only apply to this captureException call
|
|
221
|
+
});
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### `withIsolationScope` — Request-Level Isolation
|
|
225
|
+
|
|
226
|
+
Each request processed by `withSentry` or `sentryPagesPlugin` automatically runs in its
|
|
227
|
+
own isolation scope.
|
|
228
|
+
You typically don’t need to call this manually.
|
|
229
|
+
|
|
230
|
+
### `getCurrentScope` / `getIsolationScope` / `getGlobalScope`
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
const currentScope = Sentry.getCurrentScope();
|
|
234
|
+
const isolationScope = Sentry.getIsolationScope();
|
|
235
|
+
const globalScope = Sentry.getGlobalScope();
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Event Filtering
|
|
241
|
+
|
|
242
|
+
### `beforeSend`
|
|
243
|
+
|
|
244
|
+
Filter or modify events before they are sent:
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
Sentry.withSentry(
|
|
248
|
+
(env: Env) => ({
|
|
249
|
+
dsn: env.SENTRY_DSN,
|
|
250
|
+
beforeSend(event, hint) {
|
|
251
|
+
// Drop events with specific messages
|
|
252
|
+
if (event.message?.includes("expected error")) {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Scrub sensitive data
|
|
257
|
+
if (event.request?.headers) {
|
|
258
|
+
delete event.request.headers["authorization"];
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return event;
|
|
262
|
+
},
|
|
263
|
+
}),
|
|
264
|
+
handler,
|
|
265
|
+
);
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### `ignoreErrors`
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
Sentry.withSentry(
|
|
272
|
+
(env: Env) => ({
|
|
273
|
+
dsn: env.SENTRY_DSN,
|
|
274
|
+
ignoreErrors: ["AbortError", /^NetworkError/, "Non-Error promise rejection captured"],
|
|
275
|
+
}),
|
|
276
|
+
handler,
|
|
277
|
+
);
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Cloudflare-Specific Request Data
|
|
283
|
+
|
|
284
|
+
The SDK automatically captures Cloudflare-specific request data when `request.cf` is
|
|
285
|
+
available:
|
|
286
|
+
|
|
287
|
+
- **Timezone** — set as `culture` context from `request.cf.timezone`
|
|
288
|
+
- **HTTP protocol** — set as `network.protocol.name` span attribute from
|
|
289
|
+
`request.cf.httpProtocol`
|
|
290
|
+
- **Cloud provider** — always set as `cloud.provider: "cloudflare"` in `cloud_resource`
|
|
291
|
+
context
|
|
292
|
+
- **Request data** — URL, method, headers (respects `dataCollection.httpHeaders` and
|
|
293
|
+
`dataCollection.cookies`)
|
|
294
|
+
- **Content-Length** — captured as `http.request.body.size` span attribute
|
|
295
|
+
- **User-Agent** — captured as `user_agent.original` span attribute
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Best Practices
|
|
300
|
+
|
|
301
|
+
1. **Always use `withSentry` or `sentryPagesPlugin`** — don’t call `Sentry.init()`
|
|
302
|
+
directly. The wrappers handle per-request isolation, flushing via `ctx.waitUntil()`,
|
|
303
|
+
and client disposal.
|
|
304
|
+
|
|
305
|
+
2. **Store DSN as a secret** — use `wrangler secret put SENTRY_DSN`, not environment
|
|
306
|
+
variables in `wrangler.toml` (which are visible in source control).
|
|
307
|
+
|
|
308
|
+
3. **Configure `dataCollection` thoughtfully** — use `dataCollection.cookies: true` to
|
|
309
|
+
include cookies for user context.
|
|
310
|
+
Headers are captured with sensitive values redacted by default.
|
|
311
|
+
Consider privacy implications when enabling additional data collection.
|
|
312
|
+
|
|
313
|
+
4. **Set `tracesSampleRate` lower in production** — `1.0` is fine for development; use
|
|
314
|
+
`0.1`–`0.5` for production to manage costs.
|
|
315
|
+
|
|
316
|
+
5. **Don’t catch and swallow errors silently** — if you catch an error for graceful
|
|
317
|
+
handling, still call `Sentry.captureException(error)` to report it.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Troubleshooting
|
|
322
|
+
|
|
323
|
+
| Issue | Solution |
|
|
324
|
+
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
|
|
325
|
+
| Events not appearing | Verify `SENTRY_DSN` is set; add `debug: true` to init options; check worker logs for SDK output |
|
|
326
|
+
| Duplicate events | Ensure handler is wrapped only once; don’t nest `withSentry` calls |
|
|
327
|
+
| Missing request data | Set `dataCollection.cookies: true` to include cookies. Headers are captured by default with sensitive values redacted |
|
|
328
|
+
| Events cut off mid-request | Ensure `withSentry`/`sentryPagesPlugin` is used — they handle `ctx.waitUntil()` for flushing |
|
|
329
|
+
| `captureException` returns undefined | Verify SDK is initialized — `Sentry.isInitialized()` should return `true` inside a handler |
|