Skip to content

Commit

Permalink
Merge pull request #51 from shiguredo/feature/add-recording-metadata-…
Browse files Browse the repository at this point in the history
…config

ウェブフックの recording_metadata の送信可否を設定できるようにする
  • Loading branch information
tnamao authored Jan 15, 2025
2 parents fd2f223 + 9f42e64 commit 933b562
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@

## develop

- [UPDATE] 設定に `exclude_webhook_recording_metadata` を追加し、report ファイルアップロード後のウェブフックに `recording_metadata` を含めるかどうか設定できるようにする
- デフォルトは `false``recording_metadata` を送信するウェブフックに含める
- `true` を設定するとレポートファイルに `recording_metadata` または `metadata` が含まれていてもウェブフックには含めない
- [FIX] ウェブフック送信時の Response.Body のクローズ漏れを修正する
- @tnamao
- [FIX] 5GB を超えるファイルのアップロード時に帯域制限がかかるように修正する
Expand Down
6 changes: 6 additions & 0 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ type Config struct {
WebhookTypeSplitArchiveEndUploaded string `ini:"webhook_type_split_archive_end_uploaded"`
WebhookTypeReportUploaded string `ini:"webhook_type_report_uploaded"`

ExcludeWebhookRecordingMetadata bool `ini:"exclude_webhook_recording_metadata"`

WebhookBasicAuthUsername string `ini:"webhook_basic_auth_username"`
WebhookBasicAuthPassword string `ini:"webhook_basic_auth_password"`

Expand All @@ -77,3 +79,7 @@ func newConfig(configFilePath string) (*Config, error) {
}
return config, nil
}

func (c Config) IncludeWebhookRecordingMetadata() bool {
return !c.ExcludeWebhookRecordingMetadata
}
4 changes: 4 additions & 0 deletions config_example.ini
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,7 @@ webhook_type_report_uploaded = "recording-report.uploaded"
# webhook で mTLS を利用する場合に指定します
# webhook_tls_fullchain_path = /path/to/fullchain.pem
# webhook_tls_privkey_path = /path/to/privkey.pem

# report_uploaded ウェブフックに recording_metadata を含めない設定
# recording_metadata を含めない場合は true を指定する
# exclude_webhook_recording_metadata = true
16 changes: 10 additions & 6 deletions uploader.go
Original file line number Diff line number Diff line change
Expand Up @@ -471,12 +471,16 @@ func (u Uploader) handleReport(reportJSONFilePath string) bool {
FileURL: fileURL,
}

// セッション録画とレガシー録画では、録画の metadata のキーが異なるための分岐
// SessionID が空でなければセッション録画とみなす
if rr.SessionID != "" {
w.RecordingMetadata = rr.RecordingMetadata
} else {
w.RecordingMetadata = rr.Metadata
// recording_metadata の除外設定が *無効* の時は recording_metadata をウェブフックに含める
// 関数は !config.ExcludeWebhookRecordingMetadata の値を返しています
if u.config.IncludeWebhookRecordingMetadata() {
// セッション録画とレガシー録画では、録画の metadata のキーが異なるための分岐
// SessionID が空でなければセッション録画とみなす
if rr.SessionID != "" {
w.RecordingMetadata = rr.RecordingMetadata
} else {
w.RecordingMetadata = rr.Metadata
}
}

buf, err := json.Marshal(w)
Expand Down

0 comments on commit 933b562

Please sign in to comment.