Documentation · Security

Where Is My Data Stored?

Understand restart, container recreation, backup and restore for the JSON simulator store.

Verified
Purpose
Understand restart, container recreation, backup and restore for the JSON simulator store.
Prerequisites
  • Administrator access to both applications
  • Server-side secret storage
Architecture
Integration Studio represents the external client or LMS. API Exams App represents the assessment provider. Exam Player is the candidate-facing browser application.

Configuration

Runtime.data/runtime-store.json
Configuration.data/integration-clients.json
Key material.data/lti-tool-private.pem
SafetySerialized queue, temporary file, atomic replacement, and .corrupt-* recovery

Implementation steps

  1. 01Keep API Exams’ persistent data directory mounted. Production Compose maps it to /var/lib/api-exams/.data in named volume integration_exams_data.
  2. 02runtime-store.json contains candidates, tests, authorizations, attempts, answers, results, lifecycle, webhook history and expiring launch/session state.
  3. 03integration-clients.json contains provider registrations. LTI private key files remain separate.
  4. 04Valid JSON loads before seeds. Seeds initialize only an empty store and never overwrite operator/runtime data.
  5. 05For backup, stop or quiesce API Exams, copy the mounted .data directory, and restore it before starting. Never commit .data.
  6. 06Retaining the volume preserves data across restart, recreation and compose down/up. Deleting it deletes the data.

Testing procedure

  • Completed data survives restart
  • A new flow works after restart
  • Named-volume recreation retains files

Troubleshooting

Data disappeared

Check the .data mount, named volume, permissions, write errors and whether the volume was deleted.