@logbrew/sdk0.1.28@logbrew/node0.1.12@logbrew/browser0.1.11
取得するフィールドを選ぶ
チェックアウトの失敗では、固定のメッセージ、ルートのテンプレート、ステータスコードを記録します。氏名、メールアドレス、支払いデータは記録しないでください。
ユーザーとセッションのコンテキストについては、プロダクトイベントの取得を参照してください。ID に名前が含まれていなくても、その ID で個人を特定できることがあります。
フィールドの選び方をローカルでテストする
Node.js 18 以降を使います。空のディレクトリでパッケージをインストールします。safe-capture.mjs として保存します。
"ok":false を出力して終了コード1で終わります。SDK の検証エラーの場合は、その SDK のエラーコードを出力します。実際のデータを含むプレビューを出力したり、アップロードしたりしないでください。
取得のコードでも同じパターンを使い、アサーションはテストに残します。アプリが送信してはいけないフィールドと値ごとに、確認を追加します。パターンによる秘匿を使う場合は、ルールを変えるたびに確認を再実行します。このテストで確認するのは、キューに入った1件のログです。プライバシーのレビューの代わりにはなりません。
エラーメッセージとスタック
options.message を独自に指定しても、metadata.errorMessage は削除されません。タイトルだけでなく、イベント全体を確認してください。機密の値は、発生元の時点でエラーメッセージに含めないようにします。
各制御をその範囲で使う
JavaScript コアと Node.js
LogBrewClient.create は eventFilter を受け付けます。false を返すと、イベントはキューに入る前に除外されます。それ以外の値を返すと、イベントは残ります。フィルターが受け取るのはイベントのコピーなので、それを変更しても何も秘匿されません。これらのバージョンでは、createLogBrewNodeClient と createLogBrewBrowserClient は eventFilter を適用しません。
droppedEvents() は、サイズやキューの上限で破棄されたイベントを数えます。eventFilter で除外されたイベントは数えません。
Node のクライアントは、Node のバージョン、オペレーティングシステム、アーキテクチャなどの実行時のコンテキストを追加します。これを省くには captureRuntimeContext: false を設定します。この設定は、アプリが渡すコンテキストを削除せず、取得も止めません。
ブラウザー
ブラウザーのクライアントは、デフォルトでグローバルなエラー、処理されなかった Promise の拒否、最初のページビューを取得します。どれかをオフにするには、captureGlobalErrors、captureUnhandledRejections、capturePageViews を false に設定します。
ページビューにはパス名が含まれます。includeQueryString、includeHash、includeDocumentTitle、includeUserAgent を設定しない限り、クエリ文字列、フラグメント、ドキュメントのタイトル、ユーザーエージェントの全体は含まれません。パス名に非公開の値が含まれうる場合は、自動のページビューをオフにし、安全なルート名で独自のページビューを送信します。
sanitizeMetadata が変更するのはメタデータだけです。ページビューやアクションの名前は変わりません。ページビューの名前には、page_view /orders/1234 のような具体的なパス名が含まれます。メタデータの routeTemplate は分析のサーフェスを設定しますが、名前は変えません。shouldCaptureError が除外するのはブラウザーの課題だけです。ログやほかのシグナルは絞り込みません。
ブラウザーのブランド、プラットフォーム、デバイスの種類を省くには、captureRuntimeContext: false を設定します。この設定は includeUserAgent を制御しません。
実際に取得する前に
有効にした取得方法を、エラーの経路やログの連携も含めて、すべて合成データでテストします。 取得の変更は新しいイベントにだけ適用されます。purgePendingEvents() は待機中のローカルのキューを空にしますが、送信中は失敗します。以降の取得を止めることも、LogBrew が受け付けたイベントを削除することもありません。ブラウザーの uninstall() はリスナーを削除しますが、キューに入ったイベントは残します。これらのメソッドは、同意や削除の手続きではありません。
次に、クイックスタートで合成のイベントを1件送信します。見つからない場合は、トラブルシューティングを参照してください。HTTP のエラーについては API エラーを参照してください。