Quick Summary: A training belongs to a person skill — the skill must already be on the person’s profile before a training can be recorded. Approval is a full request-and-decide workflow with delegation; renewal supersedes records without deleting them.
Attributes
Statuses
Approval
GET /training-approvals?status=covers every decidable state, not just the pending queue.GET /trainings/{id}/potential-approversunions three unrelated authorities: global-admin/full-access users, the submitter’s entire chain of command, and holders of a trainer-designating skill flag (expertsOnly=truereturns just the flag holders).GET /people/{id}/approval-activitylists everything a person decided;GET /people/{id}/approval-requestsis the other side.
Renewal supersedes, it does not delete
POST /skills/{id}/renew-training marks affected trainings needs_reapproval across everyone holding the skill — a fan-out counted against the bulk rate-limit bucket. Preview first with GET /skills/{id}/renew-training/preview. Superseded records stay readable through GET /people/{personId}/skills/{skillId}/training-log, the only read that spans live and superseded records together.