Skip to main content

Scheduled Resets

Each orchestrated terminal can keep persisted files across idle cleanup and container recreation.

  • Docker stores files under the orchestrator's TERMINALS_DATA_DIR.
  • Kubernetes per-user mode gives each user/policy a PVC.
  • Kubernetes shared and shared-rwo use a shared PVC with a per-user subpath.

Configure policy lifecycle when users should periodically return to a clean set of terminal files. Lifecycle config is separate from policy config because it describes maintenance over time, not the terminal environment that gets provisioned.

curl -X PUT http://terminals-orchestrator:3000/api/v1/policies/training-lab/lifecycle \
  -H "Authorization: Bearer $TERMINALS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reset": {
      "schedule": "@weekly",
      "timezone": "UTC"
    }
  }'

Reset Schedules

Supported schedules:

ScheduleMeaning
2026-07-01T09:00:00ZOne-time reset at an exact datetime
@weeklyWeekly reset at 00:00 Sunday in the configured timezone
@monthlyMonthly reset at 00:00 on the first day of the month
0 3 * * 1Standard 5-field cron expression

Set reset.timezone to control cron-like schedules. Use UTC unless your reset policy is tied to a local operating schedule.

When Reset Happens

Resets are idle-safe.

When a reset becomes due, the orchestrator waits until the user's terminal is not running or has been reaped by idle timeout. It then deletes the contents of the persisted terminal file storage.

The reset does not delete:

  • the policy
  • the Open WebUI connection
  • the user's account
  • the terminal image

Manual Reset During Refresh

You can also reset persisted terminal files while refreshing:

{
  "policy_id": "training-lab",
  "only_idle": true,
  "reset": true
}

Keep only_idle enabled for normal operations so users are not interrupted while actively working.

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.