サポートアーティファクトをアップロード
POST /v1/support-artifacts · 権限 support-artifacts:write
HAR ファイルまたはログをサポートチケットに添付します。アーティファクトはダッシュボードのサポートページからのみアップロードできます。API キーとマシンクライアントは 403 insufficient_permissions を受け取ります。ダッシュボードはアップロード前にブラウザ内でシークレットを削除し、サーバーはアーティファクトを再度スキャンします。Cookie、Set-Cookie、Authorization、DPoP ヘッダー、OAuth、OIDC、SAML のトークンフィールド、__Host- Cookie、JWT、KeenAuth のプレフィックスを持つシークレットは [redacted] に置き換えられます。アーティファクト内で見つかった管理 API キー (idp_sk_、idp_rk_) は直ちに失効されます。失効に失敗した場合は何も保存されず、アップロードは 503 を返します。保存されるのはクリーンアップ後の内容のみで、環境のデータキーで暗号化され、30 日後に削除されます。レスポンスには内容や削除された値は決して含まれません。
リクエスト
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
ticket_ref |
query | はい | サポートチケットの参照: 1-64 文字、英字・数字・_ . : -、英字または数字で始まる。 |
kind |
query | はい | har (HAR 1.2 JSON ドキュメント) または log (プレーンテキスト)。 |
Content-Type |
header | はい | application/octet-stream。 |
Content-Encoding |
header | いいえ | 圧縮されたアーティファクトを送る場合は gzip。 |
Idempotency-Key |
header | いいえ | 任意。16-64 文字の [A-Za-z0-9_-]。同じキーを同じボディで繰り返すと、同じアーティファクトを返します。 |
ボディはアーティファクトそのものです。非圧縮で最大 50 MB です。ワイヤー上のリクエストボディは 11 MiB に制限されているため、大きなアーティファクトは gzip で圧縮してください。1 つのチケットに保存できるアーティファクトは最大 10 個です。
レスポンス
保存されたアーティファクトとともに 201 Created。findings は種類ごとに削除された値の数を示します。revocations_triggered は、アーティファクトに含まれていたために失効された認証情報の数です。
{
"id": "sart_01j9xk3m7q8r2s4t6v8w0y2z4a",
"ticket_ref": "SUP-48213",
"kind": "har",
"size_bytes": 482113,
"sha256": "9f2b5c7d1e3a4f60718293a4b5c6d7e8f90123456789abcdef0123456789abcd",
"findings": {"authorization": 2, "cookie": 5, "host_cookie": 3, "oauth_param": 1},
"revocations_triggered": 0,
"created_at": "2026-11-10T09:30:00.123456Z",
"expires_at": "2026-12-10T09:30:00.123456Z"
}
エラー
| HTTP | コード | 概要 |
|---|---|---|
| 400 | malformed_request |
ボディを読み取れない、gzip ストリームが不正、または Idempotency-Key の形式が不正です。 |
| 401 | unauthenticated |
認証情報がないか、無効または失効しています。 |
| 403 | insufficient_permissions |
リクエストがダッシュボードから行われていないか、ダッシュボードのロールに support-artifacts:write がありません。 |
| 403 | quota_exceeded |
チケットにすでに 10 個のアーティファクトがあります。 |
| 413 | payload_too_large |
アーティファクトが 50 MB を超えているか、リクエストボディが 11 MiB を超えています。 |
| 415 | unsupported_media_type |
Content-Type が application/octet-stream ではないか、コンテンツエンコーディングが gzip ではありません。 |
| 422 | validation_failed |
ticket_ref または kind が欠けているか無効、ボディが空、または har アーティファクトが HAR ドキュメントではありません (/body invalid_har)。 |
| 422 | idempotency_key_reuse |
Idempotency-Key は別のボディですでに使用されています。 |
| 429 | rate_limited |
処理中のアップロードが多すぎるか、レート制限を超えました。Retry-After の時間が過ぎてから再試行してください。 |
| 503 | service_unavailable |
アーティファクトは保存されませんでした (認証情報を失効できないか、ストレージが利用できません)。Retry-After の時間が過ぎてから再試行してください。 |
例
アップロードはダッシュボードの操作です。ダッシュボードが送信するリクエスト:
POST /v1/support-artifacts?ticket_ref=SUP-48213&kind=har
Content-Type: application/octet-stream
Content-Encoding: gzip
Idempotency-Key: 2f1c9a7e-5b3d-4e8f-9a6c-1d2e3f4a5b6c
<gzip 圧縮 HAR ファイル>