> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 個人別コンプライアンス

> /v1 の割り当て、受講登録、コースから、従来のプロバイダーによる個人別トレーニングコンプライアンスのエクスポートを再現します。

このレポートは、従来のプロバイダーが提供していた個人別コンプライアンスエクスポートのうち、トレーニングに関する部分です。ディレクトリ ID と、トレーニング受講登録ごとに 1 人につき 1 行(モジュールのステータスと日付)で構成されます。

粒度はロングフォーム(人 × 割り当て)です。これは
`GET /v1/assignments/{id}/enrollments` がすでに返す形式であるためです。このクエリでは、モジュールを列にピボットしません。

<Note>
  ポリシーの承諾状況は、このレポートに含まれません。Living Security にはポリシー承諾 API がないため、従来のそれらの列は対応付け待ちではなく、対象外です。[従来のエクスポートとの相違点](#%E5%BE%93%E6%9D%A5%E3%81%AE%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A8%E3%81%AE%E7%9B%B8%E9%81%95%E7%82%B9)を参照してください。
</Note>

セットアップ、認証情報、ページネーション、レート制限時の再試行は、[Power BI / Excel 接続ガイド](/ja/developers/v1/powerbi)と同じです。最初に共有の
`Fn_FetchAll` クエリを追加してください。このレポートは、そのクエリを名前で呼び出します。

## 必要なキースコープ

| スコープ | 用途 |
| - | - |
| `training:read` | `GET /v1/assignments` および `GET /v1/assignments/{id}/enrollments` |
| `course:read` | `GET /v1/courses`(カタログのタイトル) |

## ソースエンドポイント

| エンドポイント | 役割 |
| - | - |
| `GET /v1/assignments` | 割り当て一覧: `assignment_id`、タイトル、`course_id`、ライフサイクルステータス、`created_at`。このクエリはステータスで絞り込まないため、アクティブ、一時停止中、完了済みのすべての割り当てが表示されます(過去のコンプライアンス)。 |
| `GET /v1/assignments/{id}/enrollments` | 受講者ごとの進捗。割り当てごとに 1 回ページ送りで取得します。これがファクトの粒度であり、このレポートでメールアドレスをレポート用の結合キーとして持つ唯一の `/v1` リソースです。 |
| `GET /v1/courses` | `course_id` → コースタイトル(トレーニングモジュール名)を解決します。`Assignment.title` はキャンペーンのラベルであり、モジュール名ではありません。 |

このクエリは `GET /v1/entities` を呼び出し**ません**。受講登録の行がすでに `email` と `display_name` を持っており、エンティティ一覧には部署や役職がないため、これを取得しても、受講登録の行にないディレクトリ列は補えません。

### 粒度

受講登録(人 × 割り当て)ごとに 1 行です。同じコースが 2 つの割り当てで割り当てられた人には 2 行が生成されます。受講登録のない人は表示されません。`/v1` は、メールアドレスなしでは使用可能なディレクトリ行を出力できず、人のみの行を作成すると粒度が混在してしまうためです。

リクエスト予算: 割り当てごとに 1 回のページ送り取得を、キー単位の共有レート制限の範囲内で順次実行します。必ず `limit = "500"` を設定してください。

## 列のマッピング

従来の列名は、以前のプロバイダーのエクスポートに基づきます。`/v1` のフィールドは公開 API 名です。クエリでは、レポート用に一部の名前を別名にしています。

| 従来の列 | `/v1` フィールドまたは導出 | レポートの列 |
| - | - | - |
| Email | `Enrollment.email` | `email` |
| Full name | `Enrollment.display_name` | `full_name` |
| Department | `/v1` には存在しません | 省略(null にはしません) |
| その他のディレクトリ情報(役職、マネージャー、所在地など) | `/v1` には存在しません。エンティティにはメールアドレスと表示名のみがあります。 | 省略 |
| トレーニングモジュール / コース名 | `Course.title`、なければ `Assignment.title` | `course_name` |
| 割り当て / モジュールのステータス | `Enrollment.status` — `not_started` \| `in_progress` \| `completed` \| `overdue` \| `withdrawn` | `enrollment_status` |
| 割り当て日 | `Enrollment.assigned_at` | `assigned_at` |
| 完了日 | `Enrollment.completed_at` | `completed_at` |
| 期限日 | `Enrollment.due_at`(従来のエクスポートにはなかった可能性がありますが、API に存在するため含めています) | `due_at` |
| ポリシーの承諾 / 確認 | ポリシードメインなし | 省略 |
| ポリシー名、承諾日 | ポリシードメインなし | 省略 |

スタースキーマモデル用に保持する結合キー: `entity_id`、`assignment_id`、`course_id`、`user_assignment_id`。

クエリでは、`course_slug`、`assignment_title`、`passed`、`attempts`、`assignment_lifecycle_status`、`assignment_created_at` も保持します。`enrollment_status` は割り当てのライフサイクルではなく、受講者の進捗です(`active` / `paused` / `completed`)。

## 従来のエクスポートとの相違点

* **ポリシーの承諾状況は利用できません。** このプラットフォームにはポリシードメインがなく、`/policies`、`/policy_acceptances`、またはそれに相当する `/v1` リソースはありません。これらの列を対応付け待ちとして扱わないでください。対象外です。
* **ディレクトリの追加情報は省略され、null にはなりません。** 部署、役職、マネージャー、所在地は `/v1` にありません。クエリは、これらの空の列を作成しません。
* **期限日は含まれます。** 従来のエクスポートになかった場合でも、`Enrollment.due_at` が API にあるためです。
* **コース名はカタログのタイトルを優先します。** `Course.title` がモジュール名です。`Assignment.title` は、カタログの行が存在しない場合(削除または非公開)にのみ使用されます。
* **ロングフォームであり、ピボットされません。** 受講登録ごとに 1 行であり、モジュールごとに列を持つ 1 人 1 行の形式ではありません。

## 次のステップ

<CardGroup cols={2}>
  <Card title="Power BI と Excel のセットアップ" href="/ja/developers/v1/powerbi">
    認証情報、ページネーション、Power BI または Excel でのこれらのクエリの読み込み。
  </Card>

  <Card title="メールフィッシングログ" href="/ja/developers/v1/reports/email-phishing-log">
    過去 12 か月間のフィッシングインタラクションのイベント単位のログ。
  </Card>

  <Card title="最も感染しやすいユーザー" href="/ja/developers/v1/reports/most-susceptible-users">
    個人別の過去 12 か月間のクリック、認証情報、報告の集計。
  </Card>

  <Card title="API キー" href="/ja/developers/developer-hub/api-keys">
    このレポートを更新するキーに `training:read` と `course:read` を付与します。
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.