CLI Refresh

Temporal CLI has had its internals rewritten to be more consistent and more maintainable. This includes many improvements, but also some known backwards incompatibilities from the previous 0.11.0 release.

💥 WARNING: There are known compatibility breaks with this release, see the sections below 💥

Known Improvements

  • The position of flags is no longer significant; flags can be placed anywhere in the command invocation

  • --output json now makes sure to only output JSON to stdout (instances of invalid JSON output have been fixed)

  • --output jsonl now exists which disables indention/newline and, in some commands, streams lines of JSON instead of producing a single array

  • --input-meta is now supported so different encodings can be specified (e.g. Protobuf JSON)

  • Log level customization added

  • env file path can be customized

  • Payload shorthand support added, meaning most JSON base64 payloads are decoded to just show their contents

  • Exit codes are now non-zero in proper failing situations

  • --api-key an now be used to set an Authorization header with Bearer prefixed token

  • --tls-cert and --tls-key data now accepted in addition to just files

  • server start-dev now uses common log framework so log level can be more easily customized

  • Logs now go to stderr instead of stdout

  • server start-dev has reduced output noise (with more reduction to come)

  • workflow describe now has a text form instead of always JSON

  • workflow execute now streams event table instead of waiting on completion

  • workflow execute properly shows non-zero exit code on failure

  • workflow execute follows continue-as-new by default

💥 Known Incompatibilities

All Commands

  • The shell-script-based install is no longer supported

  • Outputs in both JSON and plain text have been changed across most commands—notably, JSON keys are now camelCase

  • Duration flags need trailing unit suffix (i.e. e.g. --workflow-timeout 5 becomes --workflow-timeout 5s)

  • --output table and --output card removed and merged into --output text

  • Pager removed

  • TEMPORAL_CLI_SHOW_STACKS environment variable no longer supported

  • --tls-ca-path can no longer be a URL

  • --fields command removed, commands now decide which fields should be present or not

Specific Commands

  • env commands now expect --env, -k and -v flags rather than positional arguments (positional arguments will continue to work, but are now deprecated and a warning is emitted)

  • operator namespace commands now expect a -n flag to specify the namespace rather than a positional argument (the positional argument will continue to work, but is now deprecated and a warning is emitted)

  • operator namespace update no longer supports --verbose

  • schedule create changed --workflow-type to be --type

  • server start-dev with --db-filename no longer auto-creates directory path of 0777 dirs if not present

  • workflow and its subcommands no longer support --memo-file

  • workflow execute does not dump history by default when JSON is enabled

  • workflow execute when using --event-details (née --fields long ) shows full JSON attributes instead of wrapped partial table

  • workflow execute no longer succeeds if workflow exists, but --allow-existing is present

  • workflow reset-batch removed in favor of workflow reset --query with reset options (some previous reset types may not be supported)

  • workflow show does not allow -f as an alias for --follow

  • workflow start no longer succeeds if workflow exists, but --allow-existing is present

  • workflow trace removed while being repaired (inadvertently broken in last release)