レポートビルダー (Pro)

注: 再利用可能なレポートビルダー(テーマ、ブロック、テンプレート、および保存された生成済みレポート)はDefectDojo Proの機能であり、現在ベータ版です。

DefectDojo Proのレポートビルダーを使用すると、再利用可能な部品から洗練されたレポートを組み立てることができるため、レポートを毎回ゼロから作り直すのではなく、一度部品を作成してあらゆる場所で再利用できます。サイドバーの**📄 レポート機能**エリアからアクセスできます。

オープンソース版との比較

オープンソース版DefectDojoでは、レポートの作成、実行、出力の取得ができますが、レポートテンプレートの保存や生成したレポートの永続化は行いません。各レポートは一回限りの作業です。

DefectDojo Proは、レポート機能を再利用可能な構成要素に変えます。組み合わせたり再利用したりできるテーマブロックテンプレートを保存でき、実行した各レポートは、後でダウンロードしたり再実行したりできる生成済みレポートとして永続化されます。また、Proはワークフロー全体を完全なREST APIとして公開しており、LLM支援による作成もサポートしているため、レポートをプログラムで作成・実行できます。

💡 Tip: オープンソース版DefectDojoを使用している場合は、代わりにオープンソース版レポートビルダーを参照してください。

主要な概念

レポートビルダーは4つの構成要素からなり、それぞれが/api/v2/配下のRESTリソースとして利用可能です: report_themesreport_blocksreport_templatesgenerated_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残り日数で、レコードは深刻度(数値)の降順で並べ替えられています。フィルターはブロックに紐づいているため、ここでのフィルター条件によって、このブロックが使用される場所でどのレコードを取得するかが正確に決まります。

Tabularブロックの設定

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

レンダリングされたブロックのプレビュー

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

ステップ3: テンプレートを組み立てる

ブロックの準備ができたら、テンプレートを作成します。テンプレート一覧には、保存済みのテンプレートが表示されます。

テンプレート一覧

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

テンプレートエディター

ステップ4: 生成してダウンロードする

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

レポート生成ダイアログ

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

生成済みレポート一覧

テンプレートはいつでも再実行して、最新のレポートを生成できます。各生成済みレポートはその時点で固定されることに注意してください。生成された時点のデータを反映しており、DefectDojoのデータが変更されても変わらないため、最新のスナップショットが必要な場合はテンプレートを再実行してください。

クラシックレポートエンジンからの移行

クラシックレポートエンジン ── サイドバーのクラシックレポートエンジンの下にあるレポートビルダーレポートテンプレート生成済みレポートの各ページ ── は**3.3.0(2026年9月8日)**で削除されます。それまでの間、これらのページにはその日付を知らせるバナーが表示され、これらのページとこのレポートビルダーの両方でワンクリックの移行機能が提供されます。

保存済みテンプレートを移行する

任意のクラシックページで新しいエンジンに移行を使用するか、こちらのすべてのレポートテンプレートクラシックエンジンからインポートを使用します。どちらも同じ変換処理を行うため、どちらから始めても問題ありません。また、どちらも複数回実行しても安全です。名前がすでにここに存在するクラシックテンプレートは、複製されるのではなく移行済みとして報告されます。

各クラシックウィジェットは、次のようにブロックになります。

クラシックウィジェット変換後
Cover PageCover Page stockブロック
Table Of ContentsTable of Contents stockブロック
Page BreakPage Break stockブロック
Custom Content / WYSIWYGテキストブロック
FindingsFindings用のTabularブロック(ウィジェットのフィルターを保持)
Vulnerable EndpointsURL用のTabularブロック
Severities深刻度別のアクティブな検出事項チャートブロック

次の2つは移行されず、大まかな形に変換される代わりに、テンプレートごとにその旨が表示されます。

  • Executive Summary — クラシックエンジンでは、同じレポート内にあるFindingsウィジェットからこれを導出していました。相当する集計ブロックは存在しないため、必要であればテキストブロックとして再構築してください。
  • Report Options — ブロックではありません。そのReport nameは新しいテンプレートの名前になります。Finding notes、finding images、ウィジェットごとの改ページは、新しいエンジンではテーマレベルの設定になります。

すでに実行したレポートはどうなるか

何も起こりません。クラシックエンジンで生成されたレポートは完成済みのファイルであるため、変換する必要はありません。エンジンが削除されるまで一覧に表示され、ダウンロード可能な状態が続きます。3.3.0以降も残しておきたいものは保存しておいてください。

レポートビルダーが無効化されている場合

Reporting機能フラグが無効になっていても、移行は機能します。変換されたテンプレートは、フラグが再度有効になるまで表示されないだけなので、任意のタイミングでテンプレートを移行できます。

次のステップ

  • レポートビルダーAPI — テーマ、ブロック、テンプレート、生成済みレポートを含むワークフロー全体をスクリプト化し、再現性のある自動化されたレポート作成を実現します。
  • LLMを使ったレポートビルダー — LLM支援による作成機能を使用して、対話形式でレポートを設計・構築します。