Introduction
Training
API-only service that answers: what is this user permitted and ready to do?
It manages skills, training programmes, certifications, sign-off, expiry, and computed readiness. It does not schedule shifts or assign jobs. Planning should ingest bulk eligibility snapshots instead of reimplementing these rules.
User types: admin, area-manager, manager, member (from Directory memberships on service training). Garage roles on garage-crm map onto those types. Directory tokens omit actorType.
userId, siteId, brandId, and department are opaque ids from the calling site. Training stores profiles, skills, job roles, and qualifications against those ids. It does not own a people directory, a worksite catalog, or access roles. Equipment types (/v1/equipment-types) are the capability taxonomy Planning references.
Readiness
Live evaluation is always recomputed, never stored as ready=true. Planner bulk snapshots are persisted and deterministic for asOf.
Unsatisfied items use codes such as CERTIFICATION_EXPIRED and TRAINING_INCOMPLETE. Downstream systems should consume GET /v1/events rather than copying readiness rules.
/v1/training-plans is an alias of /v1/training-programmes.
What it does not own
Scheduling, LMS file uploads, payroll, or a mobile UI. Training content is text for now.
See the Training API reference.