Skip to content

Curriculum backup

Platform administrators and curriculum designers can download a curriculum dump — a zip of JSON files containing study plans, tracks, quizzes, outcomes, rubric dimensions, track tags, and study suggestions.

Learner data (studies, notes, quiz attempts) is not included. This is a catalog backup, not a database dump.

  1. Open Administration → Curriculum → Backup & import (/admin/curriculum/backup).
  2. Choose Download zip.

Designers can download backups from production for reference or to share with another admin.

Import replaces or adds catalog rows by slug, so template UUIDs stay stable when you load production content into a seeded local database.

  1. Upload the zip from production (or another environment).
  2. Optionally enable Remove catalog rows not in the archive to prune extras (the track skip-noop plan is always kept).
  3. Click Preview import and review create/update/delete counts.
  4. Click Apply import.

Import bypasses the editorial review queue — use it only when you trust the archive source.

From the API container (repo root):

Terminal window
docker compose -f compose.dev.yml run --rm --no-deps api php artisan curriculum:export /tmp/curriculum.zip
docker compose -f compose.dev.yml run --rm --no-deps api php artisan curriculum:import /tmp/curriculum.zip --dry-run
docker compose -f compose.dev.yml run --rm --no-deps api php artisan curriculum:import /tmp/curriculum.zip

Outside local / testing, curriculum:import requires --force.

Archive layout (garrison.curriculum.v1):

  • manifest.json — format version and counts
  • learning-outcomes/{slug}.json
  • loop-mappings/{slug}.json
  • quizzes/{slug}.json
  • study-plans/{slug}.json
  • tracks/{slug}.json
  • track-tags/{slug}.json
  • rubric/{slug}.json
  • study-suggestions.json

Cross-references use slugs (for example quiz steps store quizSlug, guided suggestions store a plan slug in focus).

Planning detail: Study Plans — Curriculum dump.