---
title: Runtime Command Control
description: Use the Observation platform Jobs page to run now, enable or disable schedules, and update cron safely.
order: 64
available_in: [dotnet, nodejs]
---

# Runtime Command Control

DurableStack `v1.2.x` supports runtime command control for recurring schedules through the Observation platform.

Operators issue commands from the Jobs page UI, and worker runtimes apply them safely through the runtime-control sync loop.

## Where operators send commands

In the Observation platform Jobs page (`app.durablestack.com`), each schedule row exposes UI actions:

- Run now
- Enable / Disable
- Update cron

These actions are the recommended operational path for schedule control.

## How it works

1. Worker runtime syncs with hosted control on an interval.
2. Worker uploads schedule snapshot and local command receipts.
3. Hosted API returns pending commands for that tenant.
4. Worker leases each command locally, executes the schedule admin operation, and writes a success/failure receipt.
5. Next sync uploads receipts so command history in the Observation platform reflects execution outcome.

This model is resilient to transient outages and avoids duplicate command execution across multiple worker replicas.

## Supported Jobs page actions

- Run schedule now
- Disable schedule
- Enable schedule
- Update cron expression and time zone

## Required configuration

Runtime command control uses the same tenant credentials as hosted observability:

- `Eventing.TenantId`
- `Eventing.ClientSecret`
- `Eventing.IngestionApiBaseUrl`

Runtime control sync is enabled by default and can be tuned with:

- `Eventing.RuntimeControlEnabled` (default `true`)
- `Eventing.RuntimeControlSyncIntervalSeconds` (default `5`)
- `Eventing.RuntimeControlMaxReceiptUpload` (default `200`)
- `Eventing.RuntimeControlCommandLeaseDurationSeconds` (default `30`)

## Safety and behavior guarantees

- Commands are applied by workers that currently sync for the tenant.
- Local command lease guards against duplicate execution by multiple replicas.
- Command outcomes are recorded and visible in command history.
- Unknown or missing schedules return explicit failure outcomes instead of silent success.

## Practical notes

- In local development, Jobs page commands require the worker to reach the hosted API endpoint configured in `Eventing.IngestionApiBaseUrl`.
- Inbound webhooks are not required; command sync is outbound from worker to API.
- Keep worker names unique per process/container for clean operational diagnostics.

## Related pages

- [Recurring Jobs](recurring-jobs)
- [Optional Hosted Observability](../integrations/optional-hosted-observability)
- [Advanced Options](../configuration/advanced-options)
- [Troubleshooting](../operations/troubleshooting)
