Browse docs
Training
Supported client-side integration boundary for the Jobs Base Training App.
Read the current tablet state
Training intentionally exposes no client export that creates courses, changes enrollments, records results, or issues qualifications. Those actions require the authenticated server callback path.
Client resources can use the shared GetTabletState export to determine whether the Training App is
currently open.
GetTabletState()
Returns: table with open, appKey, route, surface, resource, and session.
client.lua
local tablet = exports["sky_jobs_base"]:GetTabletState()
if tablet.open and tablet.appKey == "training" then
print("The Training App is open on", tablet.surface or "native")
end
surface is lb, roadpad, or embedded for an external tablet document and nil for the native
Jobs Base tablet.
React to Training changes
Use the Training client events when an integration must refresh after catalogue, session, enrollment, or qualification state changes.
Do not recreate Training mutations through client exports. Client input is not an authority for job,
grade, permissions, employee identity, attendance, results, or qualifications.