> ## 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.

# Zgodność na poziomie osób

> Odtworzenie eksportu zgodności szkoleniowej na poziomie osób z poprzedniego dostawcy na podstawie zasobów /v1: przydziałów, zapisów i kursów.

Ten raport stanowi szkoleniową część eksportu zgodności na poziomie osób z poprzedniego dostawcy: tożsamość z katalogu użytkowników oraz jeden wiersz na osobę na każdy zapis na szkolenie (status i daty modułu).

Ziarno danych ma postać długą — osoba × przydział — ponieważ właśnie takie dane
`GET /v1/assignments/{id}/enrollments` już zwraca. Zapytanie nie przestawia
modułów do kolumn.

<Note>
  Potwierdzenia zapoznania się z politykami nie są częścią tego raportu. Living Security
  nie udostępnia API akceptacji polityk, dlatego te kolumny ze starego eksportu są poza zakresem, a nie oczekują na mapowanie. Zobacz [Różnice względem dotychczasowego eksportu](#r%C3%B3%C5%BCnice-wzgl%C4%99dem-dotychczasowego-eksportu).
</Note>

Konfiguracja, dane uwierzytelniające, stronicowanie i ponawianie po przekroczeniu limitu żądań są takie same jak w
[przewodniku łączności z Power BI / Excel](/pl/developers/v1/powerbi). Najpierw dodaj wspólne
zapytanie `Fn_FetchAll`; ten raport wywołuje je po nazwie.

## Wymagane zakresy klucza

| Zakres | Zastosowanie |
| - | - |
| `training:read` | `GET /v1/assignments` i `GET /v1/assignments/{id}/enrollments` |
| `course:read` | `GET /v1/courses` (tytuły z katalogu) |

## Punkty końcowe źródła

| Punkt końcowy | Rola |
| - | - |
| `GET /v1/assignments` | Lista przydziałów: `assignment_id`, tytuł, `course_id`, status cyklu życia, `created_at`. Zapytanie nie filtruje według statusu, więc widoczne są przydziały aktywne, wstrzymane i zakończone (zgodność historyczna). |
| `GET /v1/assignments/{id}/enrollments` | Postęp poszczególnych uczestników szkolenia. Jedno stronicowane przejście na przydział. To jest ziarno faktów i jedyny zasób `/v1` w tym raporcie, który zawiera adres e-mail jako klucz łączenia na potrzeby raportowania. |
| `GET /v1/courses` | Zamienia `course_id` na tytuł kursu (nazwę modułu szkoleniowego). `Assignment.title` jest etykietą kampanii, a nie nazwą modułu. |

To zapytanie **nie** wywołuje `GET /v1/entities`. Wiersz zapisu
już zawiera `email` i `display_name`, a lista encji nie zawiera
działu ani stanowiska — przejście po niej nie wypełniłoby więc
kolumn katalogu, których nie ma jeszcze w wierszu zapisu.

### Ziarno

Jeden wiersz na zapis (osoba × przydział). Osoba przypisana do tego samego
kursu przez dwa przydziały generuje dwa wiersze. Osoba bez
zapisów nie pojawia się — `/v1` nie może wygenerować użytecznego wiersza katalogu
bez adresu e-mail, a tworzenie wierszy samych osób mieszałoby ziarna.

Budżet żądań: jedno stronicowane przejście na przydział, sekwencyjnie, w ramach
wspólnego limitu żądań na klucz. Zawsze ustawiaj `limit = "500"`.

## Mapowanie kolumn

Nazwy kolumn ze starego eksportu pochodzą z eksportu poprzedniego dostawcy. Pola `/v1`
to publiczne nazwy API; zapytanie nadaje niektórym z nich aliasy na potrzeby raportu.

| Kolumna ze starego eksportu | Pole `/v1` lub sposób wyliczenia | Kolumna raportu |
| - | - | - |
| Email | `Enrollment.email` | `email` |
| Full name | `Enrollment.display_name` | `full_name` |
| Department | Brak w `/v1` | Pominięta, bez wartości null |
| Other directory (title, manager, location, …) | Brak w `/v1` — encje zawierają wyłącznie adres e-mail i nazwę wyświetlaną. | Pominięta |
| Training module / course name | `Course.title`, a w razie braku `Assignment.title` | `course_name` |
| Assignment / module status | `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` (stary eksport mógł tego nie zawierać; uwzględnione, ponieważ udostępnia to API) | `due_at` |
| Policy acceptance / acknowledgement | Brak domeny polityk | Pominięta |
| Policy name, accepted date | Brak domeny polityk | Pominięta |

Klucze łączenia zachowane dla modelu gwiazdy: `entity_id`, `assignment_id`,
`course_id`, `user_assignment_id`.

Zapytanie zachowuje także `course_slug`, `assignment_title`, `passed`,
`attempts`, `assignment_lifecycle_status` i `assignment_created_at`.
`enrollment_status` oznacza postęp uczestnika szkolenia, a nie cykl życia przydziału
(`active` / `paused` / `completed`).

## Różnice względem dotychczasowego eksportu

* **Akceptacje polityk są niedostępne.** Ta platforma nie ma domeny
  polityk — nie istnieje `/policies`, `/policy_acceptances` ani równoważny
  zasób `/v1`. Nie traktuj tych kolumn jako oczekujących na mapowanie. Są
  poza zakresem.
* **Dodatkowe dane katalogowe są pominięte, a nie ustawione na null.** Dział, stanowisko,
  przełożony i lokalizacja nie występują w `/v1`. Zapytanie nie tworzy
  dla nich pustych kolumn.
* **Termin wykonania jest uwzględniony**, nawet jeśli stary eksport go nie zawierał,
  ponieważ `Enrollment.due_at` jest dostępny w API.
* **Nazwa kursu preferuje tytuł z katalogu.** `Course.title` jest nazwą
  modułu. `Assignment.title` jest używany tylko wtedy, gdy brakuje wiersza katalogu
  (usunięty lub nieopublikowany).
* **Postać długa, bez przestawiania.** Jeden wiersz na zapis, a nie jeden wiersz
  na osobę z kolumną dla każdego modułu.

## Następne kroki

<CardGroup cols={2}>
  <Card title="Konfiguracja Power BI i Excel" href="/pl/developers/v1/powerbi">
    Dane uwierzytelniające, stronicowanie i ładowanie tych zapytań w Power BI lub Excelu.
  </Card>

  <Card title="Dziennik wiadomości phishingowych" href="/pl/developers/v1/reports/email-phishing-log">
    Interakcje z phishingiem na poziomie zdarzeń z ostatnich 12 miesięcy.
  </Card>

  <Card title="Najbardziej podatni użytkownicy" href="/pl/developers/v1/reports/most-susceptible-users">
    Zestawienie kliknięć, danych uwierzytelniających i zgłoszeń z 12 miesięcy na poziomie osób.
  </Card>

  <Card title="Klucze API" href="/pl/developers/developer-hub/api-keys">
    Nadaj `training:read` i `course:read` kluczowi, który odświeża ten raport.
  </Card>
</CardGroup>


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