Deployment

Validation and Ownership

Validate remote routing and compute ownership state

Overview

validate-ownership verifies that remote compute routing is correctly configured.

The command checks worker availability, active deployment state, and (when app URL is provided) app-side diagnostics.

Basic validation

npx workflow-studio compute validate-ownership \
  --url https://worker.example.com

Optional:

  • --config ./workflow.config.ts to load typed remoteWorldTarget from config.

Checks performed:

  • worker health endpoint is reachable,
  • active deployment exists.

Strict validation

npx workflow-studio compute validate-ownership \
  --url https://worker.example.com \
  --app-url https://app.example.com \
  --strict

Additional strict checks:

  • app diagnostics endpoint is reachable,
  • app runtime target world matches expected remote target,
  • diagnostics ownership status is not fail.

Exit codes

See CLI Commands — exit codes for all command exit codes.

For validate-ownership: 0 = pass, 2 = warnings only, 1 = hard failure.

Production diagnostics authentication

When diagnostics endpoint auth is enabled in production:

npx workflow-studio compute validate-ownership \
  --url https://worker.example.com \
  --app-url https://app.example.com \
  --strict \
  --diagnostics-token "$WORKFLOW_STUDIO_DIAGNOSTICS_TOKEN"

Common failures

No active deployment

Output includes an active deployment failure.

Action:

  • run workflow-studio compute activate --deployment-id <id> ...

Target world mismatch

App runtime target world does not match expected remote target.

Action:

  • set WORKFLOW_TARGET_WORLD=workflow-studio/world-remote on the application deployment.

Diagnostics endpoint unavailable

App diagnostics endpoint cannot be reached.

Action:

  • verify route registration,
  • verify auth token configuration,
  • rerun with correct --app-url.

CI usage

- name: Validate Remote Ownership
  run: |
    npx workflow-studio compute validate-ownership \
      --url "$WORKFLOW_COMPUTE_BASE_URL" \
      --app-url "$APP_URL" \
      --strict
  env:
    WORKFLOW_COMPUTE_BASE_URL: ${{ secrets.WORKFLOW_COMPUTE_BASE_URL }}
    APP_URL: ${{ vars.APP_URL }}