CSVエクスポート

このドキュメントはGitLabコードベースにおけるCSVエクスポートの様々な実装を一覧にしています。

エクスポートの種類どのように動作するか利点デメリット既存の例
ストリーミング-
- 直ちにダウンロードを開始します。
- レポートはすぐにご利用いただけます。-
- 信頼性の高い接続が必要です。
監査イベントログのエクスポート
ダウンロード-
- ファイルをメモリにロードします。
- ファイルをクライアントに送信します。
- レポートはすぐにご利用いただけます。-
- メモリを大量に消費します。
- ユーザーが別のページに移動すると、リクエストは期限切れになります。
-Chain of Custody レポートのエクスポート
-ライセンス使用状況ファイルのエクスポート
メール添付- バックグラウンドジョブでクエリを非同期に処理します。
- 電子メールは添付ファイルとしてエクスポートを使用します。
- 非同期処理。-
- メールプロバイダが添付ファイルのサイズを制限する場合があります。
-イシューのエクスポート
-マージリクエストをエクスポートします。
メールでダウンロード可能なリンクとして (*)- バックグラウンドジョブでクエリを非同期に処理します。
- Eメールはエクスポートリンクを使用します。
- 非同期処理。
- 電子メール・プロバイダの添付ファイル・サイズ制限をバイパスします。
- ユーザーが別のアプリ(電子メール)を使用する必要があります。
- 追加のストレージとクリーンアップが必要です。
ユーザー権限のエクスポート
ポーリング(非永続状態)- バックグラウンドジョブで非同期にクエリを処理します。
- フロントエンド(FE) 数秒ごとにポーリングし、CSVファイルの準備ができたかどうかをチェックします。
- 非同期処理。
- 完了時に自動的にローカルマシンにダウンロード。
- アプリ内ソリューション。
- Non-persistable request - ユーザーが別のページに移動するとリクエストは失効します。
- APIはポーリングリクエストごとに処理されます。
エクスポートの脆弱性
ポーリング(永続的な状態) (*)-
- バックエンド(BE) がエクスポート状態を維持
- FE が数秒ごとにポーリングして状態を確認
- エクスポートの準備ができると FE が「ダウンロードリンク」を表示
- ユーザーは新しいレポートをダウンロードまたは再生成できます。
-
- ポーリング要求中にデータベース呼び出しは行われません(エクスポートステータスが変更されるまでHTTP 304ステータスが返されます)。
- エクスポートが完了するまでユーザーがページにとどまる必要はありません。
- アプリ内ソリューション。
- 一般的なCSV機能(ダッシュボード/CSV APIなど)に拡張できます。
-
- CSVエクスポートを自動的にローカルマシンにダウンロードせず、ユーザーが’ダウンロード’を選択する必要があります。
エクスポート マージ コミット レポート
note
とマークされたエクスポート タイプは現在作業中です。