レポートビルダー (Pro)
注: 再利用可能なレポートビルダー(テーマ、ブロック、テンプレート、および保存された生成済みレポート)はDefectDojo Proの機能であり、現在ベータ版です。
DefectDojo Proのレポートビルダーを使用すると、再利用可能な部品から洗練されたレポートを組み立てることができるため、レポートを毎回ゼロから作り直すのではなく、一度部品を作成してあらゆる場所で再利用できます。サイドバーの**📄 レポート機能**エリアからアクセスできます。
オープンソース版との比較
オープンソース版DefectDojoでは、レポートの作成、実行、出力の取得ができますが、レポートテンプレートの保存や生成したレポートの永続化は行いません。各レポートは一回限りの作業です。
DefectDojo Proは、レポート機能を再利用可能な構成要素に変えます。組み合わせたり再利用したりできるテーマ、ブロック、テンプレートを保存でき、実行した各レポートは、後でダウンロードしたり再実行したりできる生成済みレポートとして永続化されます。また、Proはワークフロー全体を完全なREST APIとして公開しており、LLM支援による作成もサポートしているため、レポートをプログラムで作成・実行できます。
💡 Tip: オープンソース版DefectDojoを使用している場合は、代わりにオープンソース版レポートビルダーを参照してください。
主要な概念
レポートビルダーは4つの構成要素からなり、それぞれが/api/v2/配下のRESTリソースとして利用可能です: report_themes、report_blocks、report_templates、generated_reports。これらがどのように連携するかを理解することが、効率的にレポートを作成するための鍵となります。
テーマ
テーマは、レポートの色、ヘッダーおよびフッターの画像、フッターテキストなど、視覚的なスタイルとブランディングを制御します。テーマを一度定義しておけば、作成するすべてのレポートに一貫した企業ブランディングを適用できます。
テーマには次の設定があります。
| 設定 | 用途 | デフォルト |
|---|---|---|
| 名前 | テーマのラベル | — |
| プライマリカラー | メインのブランドカラー | #1e3a5f |
| セカンダリカラー | 補助的なブランドカラー | #4a90a4 |
| アクセントカラー | 強調色 | #e67e22 |
| テキストカラー | 本文のテキストカラー | #333333 |
| 背景色 | ページの背景色 | #ffffff |
| フッターテキスト | ページフッターに表示されるテキスト | — |
| ページ番号を表示 | ページ番号を印刷するかどうか | オン |
| ヘッダー画像 | ヘッダーに表示される画像 | — |
| フッター画像 | フッターに表示される画像 | — |
💡 Tip: 5つの色はすべて7文字の16進数値(例:
#1e3a5f)で表されるため、組織の正確なブランドパレットに合わせることができます。
これはUI(以下を参照)で作成することも、APIで自動化することもできます。
ブロック
ブロックは、再利用可能なコンテンツの単位です。ブロックを一度作成し、表示内容を設定すれば、好きなだけ多くのテンプレートに配置できます。ブロックタイプは4種類あります。
| ブロックタイプ | 生成される内容 |
|---|---|
| Stock | 表紙、目次、改ページ、画像、テキストブロックなど、データを伴わないコンテンツ。 |
| Tabular | 単一のエンティティから取得したレコードの表。 |
| Detail | レコードごとのレイアウトで、description、impact、mitigation、referencesのようにマークダウンとして表示される長文フィールドに最適です。 |
| Chart | ビジュアルチャート。近日公開 — このブロックタイプはデータモデルには定義されていますが、APIやUIではまだ利用できません。 |
Stockブロックは、5つのstockタイプのいずれかを選択し、必要に応じてタイトル、サブタイトル、テキストコンテンツ、または画像を設定することで構成します。
- 表紙
- 目次
- 改ページ
- 画像
- テキストブロック
TabularブロックとDetailブロックはどちらも、単一のエンティティから最新のレコードを取得します。モデル選択でエンティティを選び、含めるフィールドとレコードの並び順を指定します。モデル選択は、次の7つのエンティティのいずれか一つです。
- 組織
- アセット
- エンゲージメント
- テスト
- 検出事項
- テストタイプ
- リスク受容
💡 Tip: DefectDojo Proでは、アセットは以前製品と呼ばれており、組織は以前製品タイプと呼ばれていました。一部の基盤となるフィールド名やフィルター名には、この従来の呼び方が残っている場合があります。
違いは表示方法です。Tabularブロックはレコードを列の表として並べるため、要約や一覧に最適です。一方、Detailブロックは一度に1件のレコードを長文レイアウトで表示するため、description、impact、mitigation、referencesのようなマークダウンを多用するフィールドに最も適しています。
💡 Tip: フィルターはテンプレートではなくブロックに紐づきます。ブロックは独自のフィルターを保持しているため、ブロックを再利用すると、それが使われるすべての場所でフィルターも同一に再利用されます。同じ内容で異なるフィルターが必要な場合は、ブロックを複製してコピーを調整してください。
これはUI(以下を参照)で作成することも、APIで自動化することもできます。
テンプレート
テンプレートは、単一のテーマに紐づけられたブロックの順序付きリストです。テンプレートはレポートに何が、どの順序で表示されるかを定義し、紐づけられたテーマがその見た目を制御します。
テンプレートは参照によってブロックを含めるため、同じブロックがテンプレート内に複数回出現することもあります。たとえば、再利用可能な改ページブロックを、同じレポート内の複数のセクションの間に挿入できます。
これはUI(以下を参照)で作成することも、APIで自動化することもできます。
生成済みレポート
テンプレートを実行すると生成済みレポートが作成されます。これは、ダウンロードしたり必要に応じて再実行したりできる、永続化されたPDFまたはHTMLファイルです。各生成済みレポートはその時点で固定されます。つまり、生成された時点のDefectDojoのデータを記録しており、後で元のデータが変更されても自動的には更新されません。最新のスナップショットを取得するには、テンプレートを再実行してください。
生成済みレポートは、作成される過程で次のステータスを経過します。
| ステータス | 意味 |
|---|---|
| Pending | レポートがリクエストされ、キューに入っている状態です。 |
| Processing | レポートを組み立てている状態です。 |
| Completed | レポートのダウンロード準備が整った状態です。 |
| Failed | レポートを生成できなかった状態です。 |
🔑 Important: レポート機能はデフォルトで有効です。スーパーユーザーは設定 > 機能フラグからオン・オフを切り替えられます(機能フラグを参照)。閲覧はDefectDojoのロールベースアクセス制御(RBAC)に従うため、ユーザーはレポート内であっても、閲覧を許可されたデータのみを見ることができます。
これはUI(以下を参照)で作成することも、APIで自動化することもできます。
UIでレポートを作成する
以下の手順では、レポート作成の一連の流れ、つまりテーマの作成、コンテンツを保持するブロックの作成、それらのテンプレートへの組み立て、最終的なレポートの生成について説明します。
ステップ1: テーマを作成する
テーマエリアから始めます。テーマ一覧には、これまでに定義したすべてのテーマが表示され、新しいテーマを作成することもできます。

新しいテーマを開いてブランディングを設定します。テーマフォームには、5つの色、任意のヘッダー画像とフッター画像、フッターテキスト、ページ番号の切り替えが表示されます。作成するすべてのレポートが一貫した見た目になるよう、組織のブランドに合った色を選択してください。

ステップ2: ブロックを作成する
次に、コンテンツブロックを作成します。ブロック一覧には、すべてのタイプにわたるすべてのブロックが表示されます。

データを扱うブロックを作成するには、タイプを選択して設定します。以下の例は、未解決の検出事項向けに名付けられたTabularブロックです。ブロックタイプはTabularに設定され、ヘッダーが指定され、モデルは検出事項、選択されたフィールドは深刻度、タイトル、製品、経過日数、SLA残り日数で、レコードは深刻度(数値)の降順で並べ替えられています。フィルターはブロックに紐づいているため、ここでのフィルター条件によって、このブロックが使用される場所でどのレコードを取得するかが正確に決まります。

ブロックをテンプレートに組み込む前に、プレビューでテーマを適用した際の表示を確認できます。以下のプレビューでは、テーマの色とブランディングを反映したスタイル付きの表紙(「DefectDojo Security Report」)が表示されています。

💡 Tip: 同じレイアウトで異なるフィルターが必要な場合は、複製を使用して既存のブロックをコピーします。フィルターはブロックとともに複製されるため、たとえば同じ列レイアウトから「重大」の検出事項テーブルと「高」の検出事項テーブルを作成する場合、複製が適切な方法です。
ステップ3: テンプレートを組み立てる
ブロックの準備ができたら、テンプレートを作成します。テンプレート一覧には、保存済みのテンプレートが表示されます。

テンプレートエディターでは、テーマを選択し、表示させたい順序でブロックを配置します。以下の例では、表紙 → エグゼクティブ概要 → 未解決の検出事項 → KEV → 改ページ → アセット一覧という順序になっています。すでに作成したブロックを再利用するには既存のブロックを追加を、その場で新しいブロックを作成するには新しいブロックを追加を使用し、ドラッグハンドルで順序を変更します。同じブロックが複数回出現できることを覚えておいてください。たとえば、1つの改ページブロックを複数のセクションの間に挿入できます。

ステップ4: 生成してダウンロードする
テンプレートの準備ができたら、レポートを生成します。生成ダイアログでテンプレートを確認し、出力形式(HTMLまたはPDF)を選択できます。

生成されたレポートは生成済みレポート一覧にまとめられ、各レポートのステータス、ファイル形式、リクエストおよび完了した時刻、ダウンロードリンクが表示されます。

テンプレートはいつでも再実行して、最新のレポートを生成できます。各生成済みレポートはその時点で固定されることに注意してください。生成された時点のデータを反映しており、DefectDojoのデータが変更されても変わらないため、最新のスナップショットが必要な場合はテンプレートを再実行してください。
クラシックレポートエンジンからの移行
クラシックレポートエンジン ── サイドバーのクラシックレポートエンジンの下にあるレポートビルダー、レポートテンプレート、生成済みレポートの各ページ ── は**3.3.0(2026年9月8日)**で削除されます。それまでの間、これらのページにはその日付を知らせるバナーが表示され、これらのページとこのレポートビルダーの両方でワンクリックの移行機能が提供されます。
保存済みテンプレートを移行する
任意のクラシックページで新しいエンジンに移行を使用するか、こちらのすべてのレポートテンプレートでクラシックエンジンからインポートを使用します。どちらも同じ変換処理を行うため、どちらから始めても問題ありません。また、どちらも複数回実行しても安全です。名前がすでにここに存在するクラシックテンプレートは、複製されるのではなく移行済みとして報告されます。
各クラシックウィジェットは、次のようにブロックになります。
| クラシックウィジェット | 変換後 |
|---|---|
| Cover Page | Cover Page stockブロック |
| Table Of Contents | Table of Contents stockブロック |
| Page Break | Page Break stockブロック |
| Custom Content / WYSIWYG | テキストブロック |
| Findings | Findings用のTabularブロック(ウィジェットのフィルターを保持) |
| Vulnerable Endpoints | URL用のTabularブロック |
| Severities | 深刻度別のアクティブな検出事項チャートブロック |
次の2つは移行されず、大まかな形に変換される代わりに、テンプレートごとにその旨が表示されます。
- Executive Summary — クラシックエンジンでは、同じレポート内にあるFindingsウィジェットからこれを導出していました。相当する集計ブロックは存在しないため、必要であればテキストブロックとして再構築してください。
- Report Options — ブロックではありません。そのReport nameは新しいテンプレートの名前になります。Finding notes、finding images、ウィジェットごとの改ページは、新しいエンジンではテーマレベルの設定になります。
すでに実行したレポートはどうなるか
何も起こりません。クラシックエンジンで生成されたレポートは完成済みのファイルであるため、変換する必要はありません。エンジンが削除されるまで一覧に表示され、ダウンロード可能な状態が続きます。3.3.0以降も残しておきたいものは保存しておいてください。
レポートビルダーが無効化されている場合
Reporting機能フラグが無効になっていても、移行は機能します。変換されたテンプレートは、フラグが再度有効になるまで表示されないだけなので、任意のタイミングでテンプレートを移行できます。
次のステップ
- レポートビルダーAPI — テーマ、ブロック、テンプレート、生成済みレポートを含むワークフロー全体をスクリプト化し、再現性のある自動化されたレポート作成を実現します。
- LLMを使ったレポートビルダー — LLM支援による作成機能を使用して、対話形式でレポートを設計・構築します。