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
Display name for your application.
Default Caliper sensor endpoint URL for activity tracking. Can be overridden per-course. See
Sensor resolution.
Default LTI launch URL. Can be overridden per-course.
Default values applied to all courses.
Array of course definitions (minimum 1). See Course properties.
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.
Subject area. One of:
"Math", "Reading", "Language", "Vocabulary", "Writing",
"Science", "Social Studies", "FastMath", "None", "Other".Grade level.
-1 for Pre-K, 0 for Kindergarten, 1—12 for grades, 13 for AP. Required
if courseCode is not provided.Unique course identifier (e.g.,
"MATH-3"). Required if grade is not provided.Course level description (e.g.,
"Elementary", "AP", "Honors").Caliper sensor endpoint URL for this course. Overrides the root
sensor.LTI launch URL for this course. Overrides the root
launchUrl.Environment-specific course IDs, populated automatically by
timeback sync.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.
Course classification:
"base", "hole-filling", or "optional".Whether this course is supplemental to a base course.
Whether this is a custom course generated for an individual student.
Publication state:
"draft", "testing", "published", or "deactivated".Contact email for course issues.
Primary application identifier.
Daily learning goals for students in this course.
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)
| Field | Merge strategy |
|---|---|
level | Replaced entirely |
sensor | Replaced entirely |
launchUrl | Replaced entirely |
metadata | Merged — nested goals and metrics are deep-merged |
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