> ## 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 assignments, enrollments और courses से किसी पिछले प्रदाता के प्रति-व्यक्ति Training अनुपालन एक्सपोर्ट को पुनः बनाएँ।

यह रिपोर्ट किसी पिछले प्रदाता के प्रति-व्यक्ति अनुपालन एक्सपोर्ट का Training वाला भाग है:
डायरेक्टरी पहचान, तथा प्रत्येक व्यक्ति के प्रत्येक Training enrollment के लिए एक पंक्ति
(मॉड्यूल की स्थिति और तिथियाँ)।

इसका ग्रेन लॉन्ग-फ़ॉर्म है — व्यक्ति × assignment — क्योंकि
`GET /v1/assignments/{id}/enrollments` पहले से यही लौटाता है। क्वेरी
मॉड्यूल को कॉलम में पिवट नहीं करती।

<Note>
  पॉलिसी स्वीकृतियाँ इस रिपोर्ट का भाग नहीं हैं। Living Security में
  पॉलिसी-स्वीकृति API उपलब्ध नहीं है, इसलिए वे पुराने कॉलम इस रिपोर्ट के दायरे से बाहर हैं; वे लंबित मैपिंग नहीं हैं। देखें [पुराने एक्सपोर्ट से भिन्नताएँ](#%E0%A4%AA%E0%A5%81%E0%A4%B0%E0%A4%BE%E0%A4%A8%E0%A5%87-%E0%A4%8F%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A4%AA%E0%A5%8B%E0%A4%B0%E0%A5%8D%E0%A4%9F-%E0%A4%B8%E0%A5%87-%E0%A4%AD%E0%A4%BF%E0%A4%A8%E0%A5%8D%E0%A4%A8%E0%A4%A4%E0%A4%BE%E0%A4%8F%E0%A4%81)।
</Note>

सेटअप, क्रेडेंशियल, पेजिनेशन और रेट-लिमिट रीट्राई की प्रक्रिया
[Power BI / Excel कनेक्टिविटी गाइड](/hi/developers/v1/powerbi) के समान है। पहले साझा
`Fn_FetchAll` क्वेरी जोड़ें; यह रिपोर्ट उसे नाम से कॉल करती है।

## आवश्यक key scopes

| Scope | उपयोग |
| - | - |
| `training:read` | `GET /v1/assignments` और `GET /v1/assignments/{id}/enrollments` |
| `course:read` | `GET /v1/courses` (कैटलॉग शीर्षक) |

## स्रोत endpoints

| Endpoint | भूमिका |
| - | - |
| `GET /v1/assignments` | Assignment सूची: `assignment_id`, शीर्षक, `course_id`, जीवनचक्र स्थिति, `created_at`। क्वेरी स्थिति के आधार पर फ़िल्टर नहीं करती, इसलिए सक्रिय, रोके गए और पूर्ण किए गए सभी assignments दिखाई देते हैं (ऐतिहासिक अनुपालन)। |
| `GET /v1/assignments/{id}/enrollments` | प्रति-Learner प्रगति। प्रत्येक assignment के लिए एक पेजयुक्त वॉक। यही फ़ैक्ट ग्रेन है और इस रिपोर्ट में ईमेल को रिपोर्टिंग जॉइन कुंजी के रूप में रखने वाला एकमात्र `/v1` संसाधन है। |
| `GET /v1/courses` | `course_id` को course शीर्षक (Training मॉड्यूल का नाम) में परिवर्तित करता है। `Assignment.title` एक कैंपेन लेबल है, मॉड्यूल का नाम नहीं। |

यह क्वेरी `GET /v1/entities` को कॉल **नहीं** करती। enrollment पंक्ति में
पहले से ही `email` और `display_name` मौजूद हैं, और entity सूची में
विभाग या पदनाम नहीं है — इसलिए उसे वॉक करने से भी ऐसे डायरेक्टरी
कॉलम नहीं भरे जा सकते जो enrollment पंक्ति में पहले से उपलब्ध नहीं हैं।

### ग्रेन

प्रति enrollment (व्यक्ति × assignment) एक पंक्ति। यदि किसी व्यक्ति को एक ही
course दो assignments के माध्यम से सौंपा गया है, तो दो पंक्तियाँ बनती हैं। जिस व्यक्ति का कोई
enrollment नहीं है, वह दिखाई नहीं देता — `/v1` ईमेल के बिना
उपयोगी डायरेक्टरी पंक्ति नहीं बना सकता, और केवल-व्यक्ति वाली पंक्तियाँ गढ़ने से ग्रेन मिश्रित हो जाएँगे।

अनुरोध बजट: प्रत्येक assignment के लिए एक पेजयुक्त वॉक, क्रमिक रूप से, साझा
प्रति-key रेट लिमिट के अंतर्गत। `limit = "500"` हमेशा सेट करें।

## कॉलम मैपिंग

Legacy कॉलम के नाम आपके पिछले प्रदाता के एक्सपोर्ट से हैं। `/v1` फ़ील्ड
सार्वजनिक API नाम हैं; क्वेरी रिपोर्ट के लिए उनमें से कुछ के alias बनाती है।

| Legacy कॉलम | `/v1` फ़ील्ड या व्युत्पत्ति | रिपोर्ट कॉलम |
| - | - | - |
| Email | `Enrollment.email` | `email` |
| Full name | `Enrollment.display_name` | `full_name` |
| Department | `/v1` पर उपलब्ध नहीं | हटाया गया, null नहीं किया गया |
| अन्य डायरेक्टरी (पदनाम, मैनेजर, स्थान, …) | `/v1` पर उपलब्ध नहीं — entities में केवल ईमेल और प्रदर्शित नाम होता है। | हटाया गया |
| Training मॉड्यूल / course का नाम | `Course.title`, विफल होने पर `Assignment.title` | `course_name` |
| Assignment / मॉड्यूल की स्थिति | `Enrollment.status` — `not_started` \| `in_progress` \| `completed` \| `overdue` \| `withdrawn` | `enrollment_status` |
| Assigned date | `Enrollment.assigned_at` | `assigned_at` |
| Completed date | `Enrollment.completed_at` | `completed_at` |
| Due date | `Enrollment.due_at` (संभव है कि legacy एक्सपोर्ट में यह न रहा हो; API में उपलब्ध होने के कारण शामिल किया गया है) | `due_at` |
| पॉलिसी स्वीकृति / acknowledgement | कोई पॉलिसी डोमेन नहीं | हटाया गया |
| पॉलिसी का नाम, स्वीकृति की तिथि | कोई पॉलिसी डोमेन नहीं | हटाया गया |

स्टार-स्कीमा मॉडल के लिए रखी गई जॉइन कुंजियाँ: `entity_id`, `assignment_id`,
`course_id`, `user_assignment_id`।

क्वेरी `course_slug`, `assignment_title`, `passed`,
`attempts`, `assignment_lifecycle_status` और `assignment_created_at` भी रखती है।
`enrollment_status` Learner की प्रगति है, assignment का जीवनचक्र नहीं
(`active` / `paused` / `completed`)।

## पुराने एक्सपोर्ट से भिन्नताएँ

* **पॉलिसी स्वीकृतियाँ उपलब्ध नहीं हैं।** इस प्लेटफ़ॉर्म में कोई पॉलिसी
  डोमेन नहीं है — कोई `/policies`, `/policy_acceptances` या समकक्ष
  `/v1` संसाधन नहीं है। उन कॉलमों को लंबित मैपिंग न समझें। वे
  दायरे से बाहर हैं।
* **अतिरिक्त डायरेक्टरी फ़ील्ड हटाए गए हैं, null नहीं किए गए।** विभाग, पदनाम,
  मैनेजर और स्थान `/v1` पर उपलब्ध नहीं हैं। क्वेरी उनके लिए खाली
  कॉलम नहीं बनाती।
* **Due date शामिल है**, भले ही legacy एक्सपोर्ट में वह न रहा हो,
  क्योंकि `Enrollment.due_at` API पर उपलब्ध है।
* **Course नाम के लिए कैटलॉग शीर्षक को प्राथमिकता दी जाती है।** `Course.title` ही मॉड्यूल
  का नाम है। `Assignment.title` का उपयोग केवल तभी होता है जब कैटलॉग पंक्ति उपलब्ध न हो
  (हटाई गई या अप्रकाशित)।
* **लॉन्ग-फ़ॉर्म, पिवट नहीं किया गया।** प्रति enrollment एक पंक्ति, न कि प्रति
  व्यक्ति एक पंक्ति जिसमें प्रत्येक मॉड्यूल के लिए एक कॉलम हो।

## अगले चरण

<CardGroup cols={2}>
  <Card title="Power BI और Excel सेटअप" href="/hi/developers/v1/powerbi">
    क्रेडेंशियल, पेजिनेशन, और Power BI या Excel में इन क्वेरी को लोड करना।
  </Card>

  <Card title="ईमेल फ़िशिंग लॉग" href="/hi/developers/v1/reports/email-phishing-log">
    पिछले 12 महीनों की इवेंट-स्तरीय फ़िशिंग इंटरैक्शन।
  </Card>

  <Card title="सबसे संवेदनशील उपयोगकर्ता" href="/hi/developers/v1/reports/most-susceptible-users">
    प्रति-व्यक्ति 12 महीनों का क्लिक, क्रेडेंशियल और रिपोर्ट रोलअप।
  </Card>

  <Card title="API keys" href="/hi/developers/developer-hub/api-keys">
    इस रिपोर्ट को रिफ़्रेश करने वाली key पर `training:read` और `course:read` प्रदान करें।
  </Card>
</CardGroup>


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