レポートをどこへでも送信
署名付き Webhook で

自社のエンドポイントを指定すれば、すべてのレポートが署名付き・バージョン管理された JSON payload として届きます。独自サービス、キュー、社内ツールに最適です。

安定したバージョン管理スキーマ

以下の構造はバージョン 1 で保証されます。フィールドは追加されることはあっても、黙って改名されることはありません。

フィールド説明
eventstringイベント名 — レポートは share.created、テストボタンは test
schema_versionnumberスキーマのバージョン(現在 1)— パース前に確認してください
share.report_urlstringレポート全体への公開リンク
report.console_errorsarrayコンソールのエラーメッセージと発生元。最大 30 件
report.network_errorsarray失敗したリクエストのメソッド・URL・ステータス。最大 30 件
report.*_errors_countnumberエラー件数 — 上の 2 つの配列と同じ長さ
reporterobjectサイトから渡された識別情報(name / email / uid)。匿名の場合は空文字列

信頼する前に検証する

すべてのリクエストはお客様が管理するシークレットで署名されるため、偽造されたものはエンドポイント側で拒否できます。

署名ヘッダーx-bugcapturer-signature
アルゴリズムリクエスト本文(raw body)に対する HMAC-SHA256
シークレット連携の作成時に一度だけ表示されます
比較定数時間比較を使用してください
verify.js
const crypto = require('crypto');

const expected = crypto
  .createHmac('sha256', process.env.BC_WEBHOOK_SECRET)
  .update(rawBody)
  .digest('hex');

const received = req.headers['x-bugcapturer-signature'];
crypto.timingSafeEqual(
  Buffer.from(expected),
  Buffer.from(received)
);

再試行と配信ログ

Webhook は退屈な理由で失敗します — デプロイ、再起動、回線の不調。BugCapturer はそれを前提にしています。

🔁

自動リトライ

失敗した配信はバックオフ付きで再試行され、その後で失敗として記録されます。

⏸️

自動一時停止

失敗が続くエンドポイントは自動で一時停止し、メールで通知します。

🧾

配信ログ

すべての試行と応答が記録され、推測せずにデバッグできます。

🧯

手動での再送

エンドポイントが復旧したら、失敗した配信を手動で送り直せます。