# Field dictionary

What every field of every register means, from the same dictionary as the records packs.

These meanings come from the dictionary Kapi uses for the registers and the records packs, published in the contract. The contract gives each field's type, and whether it can be null.

## Training

| Field | Meaning |
| --- | --- |
| `deployment_id` | Kapi deployment UUID. |
| `organization_id` | Company UUID; the tenant boundary. |
| `learning_space_id` | Learning-space UUID. |
| `record_id` | Stable owed-record UUID: person, course and published release, or renewal cycle. |
| `learner_profile_id` | Employee profile UUID; retained after erasure. |
| `person_name` | Name from its current source row. Erased person once Kapi erased the person at the company’s instruction. Certificate names are the issued subject name until then. |
| `work_email` | Address on the current source employee invitation; not the Auth account email. Null for an erased person. |
| `course_id` | Course UUID. |
| `course_release_id` | Immutable published course version UUID. |
| `renews_certificate_id` | Certificate whose renewal created this owed record. |
| `sequence` | Sequence of this stored row version in the company history; snapshot.sequence is the upper boundary for the pull. |
| `valid_from` | When these facts took effect. |
| `recorded_at` | When the history writer captured them. |
| `cause` | first, change or sweep. |
| `logic_version` | Version of the shared owed-learning decider. |
| `requirement` | required, optional, no_longer_required or superseded. |
| `assigned_at` | When the requirement began. |
| `due_at` | Deadline instant, or null for no deadline. |
| `due_time_zone` | IANA company/deadline time zone. |
| `due_basis` | share_deadline, days_after_added, renewal, override or none. |
| `completed_at` | Time Kapi’s server received the completion, including offline completions received later. |
| `completion_receipt_id` | Server completion receipt UUID. |
| `ended_at` | When the record stopped applying. |
| `ended_reason` | Fixed reason code, never typed text; source_removed when the person was erased. |
| `share_ids` | JSON array of all contributing share UUIDs. |
| `doors` | JSON array of audience doors; includes employee. |
| `certificate_id` | Certificate UUID. |
| `obligation_change_id` | Source obligation-change ID. |
| `waived_at` | When an administrator changed the obligation. |
| `waiver_actor_id` | Administrator UUID. |
| `waiver_reason_code` | Fixed waiver reason code. |
| `outcome` | completed_on_time, completed_late, completed_before_requirement, not_due_yet, overdue, missed, excused, waived or optional_not_done. |
| `days_late` | Ceiling of elapsed days past the deadline at completion or the end of the period/obligation. |
| `reminders_sent` | Number of completed reminder sends known at the pinned capture. |

## Certificates

| Field | Meaning |
| --- | --- |
| `certificate_id` | Certificate UUID. |
| `deployment_id` | Kapi deployment UUID. |
| `organization_id` | Company UUID; the tenant boundary. |
| `learning_space_id` | Learning-space UUID. |
| `learner_profile_id` | Employee profile UUID; retained after erasure. |
| `person_name` | Name from its current source row. Erased person once Kapi erased the person at the company’s instruction. Certificate names are the issued subject name until then. |
| `course_id` | Course UUID. |
| `course_release_id` | Immutable published course version UUID. |
| `course_release_version` | Published course version number. |
| `certificate_title` | Title recorded on the certificate edition. |
| `kind` | completion or assessed. |
| `earned_at` | Completion or assessment time. |
| `issued_at` | Certificate issue time. |
| `valid_until` | Fixed expiry instant; null means no expiry. |
| `status` | Certificate state at the requested moment: valid, expired, revoked or replaced. |
| `changed_at` | Revocation/replacement time, when known at this snapshot. |
| `changed_by` | Actor UUID for revocation/replacement. |
| `supersedes_id` | Earlier certificate corrected by this certificate. |
| `renews_id` | Earlier certificate renewed by this certificate. |
| `check_code` | Certificate check code. Returned only with people:read because it opens the public check page, which shows the holder's name. The check page shows nothing once the holder is erased. |
| `live_session_id` | Live session UUID when the person finished the course by attending a live session in full; null otherwise. |
| `live_session_format` | online or on_site. |
| `live_session_starts_at` | When the live session started. |
| `live_session_ends_at` | When the live session ended. |
| `live_session_minutes` | Length of the live session in minutes. |
| `live_session_marked_by` | Who made the final register mark: trainer, or kapi when Kapi changed it after an ask. |
| `trainer_name` | Trainer of the live session, from their current Kapi profile; A Kapi expert until they set a name. |

## People

| Field | Meaning |
| --- | --- |
| `deployment_id` | Kapi deployment UUID. |
| `organization_id` | Company UUID; the tenant boundary. |
| `learning_space_id` | Learning-space UUID. |
| `person_id` | Stable employee or invitation row UUID. |
| `learner_profile_id` | Employee profile UUID; retained after erasure. |
| `invitation_id` | Invitation UUID for invitation rows. |
| `sequence` | Sequence of this stored row version in the company history; snapshot.sequence is the upper boundary for the pull. |
| `valid_from` | When these facts took effect. |
| `recorded_at` | When the history writer captured them. |
| `cause` | first, change or sweep. |
| `logic_version` | Version of the shared owed-learning decider. |
| `entry_type` | employee or invitation; accepted invitations and employees are distinct source rows. |
| `person_name` | Name from its current source row. Erased person once Kapi erased the person at the company’s instruction. Certificate names are the issued subject name until then. |
| `work_email` | Address on the current source employee invitation; not the Auth account email. Null for an erased person. |
| `invited_at` | Invitation creation time. |
| `joined_at` | When the person joined Kapi; not an employment start date. |
| `left_at` | When access ended in Kapi. |
| `invitation_expires_at` | Invitation expiry time. |
| `invitation_state` | Stored invitation state. |
| `invitation_status` | Invitation state at the requested moment, including expiry. |
| `access_state` | active, suspended, ended, erased, invited or staff_practice. erased means Kapi removed the person at the company’s instruction. |
| `doors` | JSON array of audience doors; includes employee. |
| `team_ids` | JSON array of company team UUIDs. |
| `records_owed` | Open required employee records at the requested moment. |
| `records_completed` | Completed employee records at the requested moment. |
| `no_required_records` | True when no required records are open. |

## Courses

| Field | Meaning |
| --- | --- |
| `row_id` | Stable course release row UUID. |
| `course_id` | Course UUID. |
| `course_release_id` | Immutable published course version UUID. |
| `course_title` | Title from the current source course. |
| `version` | Published version number. |
| `published_at` | Time the release was sealed. |
| `publisher_id` | Publisher UUID. |
| `content_sha256` | Immutable course content fingerprint. |
| `contents_sha256` | Fingerprint of the list of contained releases. |
| `source_kind` | course_release, release_unavailable or lesson_share_without_course_release. |
| `lessons` | JSON array of lesson release IDs, current source titles, versions and content SHA-256 values. |
