[{"data":1,"prerenderedAt":377},["ShallowReactive",2],{"/docs/base/jobs-base/features/training":3,"/docs/base/jobs-base/features/training-surround":364,"/docs/base/jobs-base/features/training-implemented-suggestions":376},{"id":4,"title":5,"body":6,"description":353,"extension":354,"head":355,"implementedSuggestions":355,"meta":356,"navigation":357,"path":359,"schemaOrg":355,"seo":360,"sitemap":361,"stem":362,"__hash__":363},"docs/1.docs/base/2.jobs-base/2.features/2.training.md","Training & Qualifications",{"type":7,"value":8,"toc":342},"minimark",[9,14,18,86,90,112,115,119,127,242,249,253,263,266,287,294,298,305,317,321],[10,11,13],"h2",{"id":12},"structured-employee-development","Structured employee development",[15,16,17],"p",{},"The Training App gives configured jobs one shared place for courses, scheduled sessions, enrollment,\nresults, qualifications, employee records, and audit history. It is a native Jobs Base tablet app and\nalso works on supported external tablet surfaces.",[19,20,21,34],"table",{},[22,23,24],"thead",{},[25,26,27,31],"tr",{},[28,29,30],"th",{},"Area",[28,32,33],{},"What it provides",[35,36,37,46,54,62,70,78],"tbody",{},[25,38,39,43],{},[40,41,42],"td",{},"Course catalogue",[40,44,45],{},"Reusable courses with codes, descriptions, duration, capacity, grade requirements, prerequisites, and optional qualifications",[25,47,48,51],{},[40,49,50],{},"Sessions",[40,52,53],{},"Scheduled dates, locations, instructors, participant limits, notes, and lifecycle states",[25,55,56,59],{},[40,57,58],{},"Enrollment",[40,60,61],{},"Self-enrollment, approval, waitlists, cancellation, attendance, results, notes, and scores",[25,63,64,67],{},[40,65,66],{},"Qualifications",[40,68,69],{},"Automatic awards after a passed course plus manual issue and revocation workflows",[25,71,72,75],{},[40,73,74],{},"Employee records",[40,76,77],{},"Per-employee training history and active, expired, or revoked qualifications",[25,79,80,83],{},[40,81,82],{},"Audit log",[40,84,85],{},"Persistent history for catalogue, session, enrollment, and qualification actions",[10,87,89],{"id":88},"course-and-session-workflow","Course and session workflow",[91,92,93,97,100,103,106,109],"ol",{},[94,95,96],"li",{},"An authorized employee creates an active course in the catalogue.",[94,98,99],{},"The course defines its minimum grade, prerequisite qualification codes, trainer grades, and the\nqualification awarded after passing.",[94,101,102],{},"An instructor schedules a session with a start time, location, capacity, and assigned instructor.",[94,104,105],{},"Employees enroll themselves or are reviewed by an authorized trainer.",[94,107,108],{},"The trainer records attendance and the final result after the session starts.",[94,110,111],{},"A passed result issues the configured qualification in the same database transaction.",[15,113,114],{},"When a place becomes available, the oldest waitlisted enrollment is promoted. Sessions and courses\nwith history are archived or cancelled instead of silently deleting referenced records.",[10,116,118],{"id":117},"granular-boss-menu-permissions","Granular Boss Menu permissions",[15,120,121,122,126],{},"Training permissions appear as their own group in the Jobs Base Boss Menu. The default IDs can be\nchanged in ",[123,124,125],"code",{},"Config.Training.permissions",".",[19,128,129,140],{},[22,130,131],{},[25,132,133,137],{},[28,134,136],{"align":135},"right","Default ID",[28,138,139],{},"Capability",[35,141,142,152,162,172,182,192,202,212,222,232],{},[25,143,144,149],{},[40,145,146],{"align":135},[123,147,148],{},"1001",[40,150,151],{},"Schedule and manage the employee's own sessions",[25,153,154,159],{},[40,155,156],{"align":135},[123,157,158],{},"1002",[40,160,161],{},"Manage the course catalogue",[25,163,164,169],{},[40,165,166],{"align":135},[123,167,168],{},"1003",[40,170,171],{},"View employee training records",[25,173,174,179],{},[40,175,176],{"align":135},[123,177,178],{},"1004",[40,180,181],{},"Permanently delete eligible training data",[25,183,184,189],{},[40,185,186],{"align":135},[123,187,188],{},"1005",[40,190,191],{},"Manage and assign every training session",[25,193,194,199],{},[40,195,196],{"align":135},[123,197,198],{},"1006",[40,200,201],{},"Review participant enrollments",[25,203,204,209],{},[40,205,206],{"align":135},[123,207,208],{},"1007",[40,210,211],{},"Record attendance and results",[25,213,214,219],{},[40,215,216],{"align":135},[123,217,218],{},"1008",[40,220,221],{},"Issue qualifications manually",[25,223,224,229],{},[40,225,226],{"align":135},[123,227,228],{},"1009",[40,230,231],{},"Revoke qualifications with a reason",[25,233,234,239],{},[40,235,236],{"align":135},[123,237,238],{},"1010",[40,240,241],{},"View the complete audit log",[15,243,244,245,248],{},"Grades with the global ",[123,246,247],{},"ALL"," permission inherit every Training capability. Other grades can be\nconfigured individually without granting catalogue, records, results, or deletion access together.",[10,250,252],{"id":251},"configuration","Configuration",[15,254,255,258,259,262],{},[123,256,257],{},"Config.Training.enabled"," controls the complete feature. ",[123,260,261],{},"Config.Training.appJobs"," accepts job or\njob-group keys that may use the app. Global defaults cover duty requirements, history and upcoming\ndate windows, reminders, cooldowns, self-enrollment, approval, and default capacity.",[15,264,265],{},"The Job Configurator exposes per-job Training settings for:",[267,268,269,272,275,278,281,284],"ul",{},[94,270,271],{},"Enabling the app",[94,273,274],{},"Requiring duty",[94,276,277],{},"Allowing self-enrollment",[94,279,280],{},"Requiring enrollment approval",[94,282,283],{},"Default session capacity",[94,285,286],{},"Upcoming schedule window",[15,288,289,290,293],{},"Tablet app restrictions configured for a grade still apply to the ",[123,291,292],{},"training"," app key.",[10,295,297],{"id":296},"security-model","Security model",[15,299,300,301,304],{},"Every read and mutation rebuilds the actor context on the server from ",[123,302,303],{},"Sky_Jobs.PlayerCache",". The\nclient does not choose its job, grade, identifier, duty state, or capabilities. Mutations additionally\nuse ping checks, per-player cooldowns, an allow-listed action table, server-side state transitions,\nparameterized SQL, and serialized database transactions.",[306,307,310],"callout",{"color":308,"icon":309},"success","i-lucide-shield-check",[15,311,312,313,316],{},"Training NUI callbacks are internal. External resources should use the documented read-only tablet\nstate export and lifecycle events. Do not call internal ",[123,314,315],{},"sky_jobs_base:training:request"," actions from\nanother client resource.",[10,318,320],{"id":319},"integration-reference","Integration reference",[267,322,323,330,336],{},[94,324,325],{},[326,327,329],"a",{"href":328},"/docs/base/jobs-base/client-exports/training","Client Exports",[94,331,332],{},[326,333,335],{"href":334},"/docs/base/jobs-base/server-exports/training","Server Exports",[94,337,338],{},[326,339,341],{"href":340},"/docs/base/jobs-base/client-events/training","Client Events",{"title":343,"searchDepth":344,"depth":345,"links":346},"",1,2,[347,348,349,350,351,352],{"id":12,"depth":345,"text":13},{"id":88,"depth":345,"text":89},{"id":117,"depth":345,"text":118},{"id":251,"depth":345,"text":252},{"id":296,"depth":345,"text":297},{"id":319,"depth":345,"text":320},"Plan courses, manage sessions, record results, and maintain employee qualifications in the Jobs Base tablet.","md",null,{},{"icon":358},"i-lucide-graduation-cap","/docs/base/jobs-base/features/training",{"title":5,"description":353},{"loc":359},"1.docs/base/2.jobs-base/2.features/2.training","rOsb-9OO6I8jbv4SybLyR_2PqGeCrHczuv1C3FfJrRE",[365,371],{"title":366,"path":367,"stem":368,"description":369,"icon":370,"children":-1},"Emergency Dispatch","/docs/base/jobs-base/features/emergency-dispatch","1.docs/base/2.jobs-base/2.features/1.emergency-dispatch","Centralize emergency calls, dispatch units, radio communication, and incident management.","i-lucide-siren",{"title":329,"path":372,"stem":373,"children":-1,"description":374,"icon":375},"/docs/base/jobs-base/client-exports","1.docs/base/2.jobs-base/3.client-exports","Client-side exports provided by sky_jobs_base for radial menu, dispatch, and storage interactions.","i-lucide-monitor",[],1786395272508]