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