Overview
Thetimeback.config.json file configures your Timeback integration, defining courses, sensors, and environment-specific overrides.
Location
This file is generated bytimeback init during project setup and typically lives in your project root:
my-app
timeback.config.json
package.json
src
Schema
Use the JSON schema for autocompletion and validation:timeback.config.json
Complete example
timeback.config.json
Root properties
string
required
Display name for your application.
string (URL)
Default Caliper sensor endpoint URL for activity tracking. Can be overridden per-course. See
Sensor resolution.
string (URL)
Default LTI launch URL. Can be overridden per-course.
CourseDefaults
Default values applied to all courses.
CourseConfig[]
required
Array of course definitions (minimum 1). See Course properties.
object
Studio-specific configuration.
Course properties
Each course must have eithergrade or courseCode (or both). All (subject, grade) pairs must be unique, and all courseCode values must be unique.
TimebackSubject
required
Subject area. One of:
"Math", "Reading", "Language", "Vocabulary", "Writing",
"Science", "Social Studies", "FastMath", "None", "Other".number
Grade level.
-1 for Pre-K, 0 for Kindergarten, 1—12 for grades, 13 for AP. Required
if courseCode is not provided.string
Unique course identifier (e.g.,
"MATH-3"). Required if grade is not provided.string
Course level description (e.g.,
"Elementary", "AP", "Honors").string (URL)
Caliper sensor endpoint URL for this course. Overrides the root
sensor.string (URL)
LTI launch URL for this course. Overrides the root
launchUrl.object
Environment-specific course IDs, populated automatically by
timeback sync.CourseMetadata
Course metadata including publication status, goals, and metrics. See Course
metadata.
Course metadata
All metadata fields are optional. Metadata set indefaults.metadata is merged into every course.
string
Course classification:
"base", "hole-filling", or "optional".boolean
Whether this course is supplemental to a base course.
boolean
Whether this is a custom course generated for an individual student.
string
Publication state:
"draft", "testing", "published", or "deactivated".string
Contact email for course issues.
string
Primary application identifier.
CourseGoals
Daily learning goals for students in this course.
CourseMetrics
Aggregate course metrics.
Course metadata example
timeback.config.json (course excerpt)
Overrides
Each environment override can containlevel, sensor, launchUrl, and metadata. Metadata in overrides is merged with the base metadata — it does not replace it.
timeback.config.json (course excerpt)
Merge behavior
Overrides are merged in this order (highest priority last):defaults(lowest priority)- Course base values
overrides[env](highest priority)
Sensor resolution
Each course must have a resolvable sensor. The SDK checks these sources in order:course.overrides[env].sensorcourse.sensor- Root
sensor - Derived from
launchUrlorigin (falls back tocourse.launchUrl, then rootlaunchUrl)
Next steps
Environment
Environment variables and credentials
Course progress
How
totalLessons and masteredUnits drive pctCompleteAppCLI resources
Push and pull configurations
Events
Caliper event schemas