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.