Temporal Visibility
This page provides an overview of Temporal Visibility.
The term Visibility, within the Temporal Platform, refers to the subsystems and APIs that enable an operator to view, filter, and search for Workflow Executions that currently exist within a Temporal Service.
The Visibility store in your Temporal Service stores persisted Workflow Execution Event History data and is set up as a part of your Persistence store to enable listing and filtering details about Workflow Executions that exist on your Temporal Service.
With Temporal Server v1.21, you can set up Dual Visibility to migrate your Visibility store from one database to another.
Visibility features
Visibility enables the listing, filtering, and sorting of Workflow Executions through a custom SQL-like List Filter.
Visibility supports custom Search Attributes for user-defined filtering beyond the default system attributes.
- On SQL databases (MySQL v8.0.17+, PostgreSQL v12+), Visibility is available with Temporal Server v1.20 and later.
- On Elasticsearch (v7+ with Server v1.7+, v8 with Server v1.18+) and OpenSearch (2+ with Server v1.30.1+).
- On Temporal Cloud, Visibility is enabled by default for all users.
For self-hosted setup and version compatibility details, see Visibility store setup.
Count Workflow by ExecutionStatus
The Count API feature lets you count the number of Workflows that match a given query. For example, the command temporal workflow count -q "WorkflowType='foo'" returns the number of Workflows that match WorkflowType='foo'.
You can send queries to the Count API to group by a given search attribute. For example, -q "WorkflowType='foo' GROUP BY ExecutionStatus returns the number of Workflows that match WorkflowType='foo' grouped by ExecutionStatus.
The GROUP BY clause is only supported in the Count API and currently only grouping by ExecutionStatus is supported.
The Count API returns approximate counts.
Legacy: standard Visibility
Prior to Temporal Server v1.20, Temporal had two Visibility modes: "standard" and "advanced." Standard Visibility supported only predefined filters (Workflow Type, Workflow Id, Run Id, Execution Status) without custom Search Attributes. Advanced Visibility required Elasticsearch.
Starting with Temporal Server v1.20, advanced Visibility became available on SQL databases. Standard Visibility was deprecated in v1.21 and removed in v1.24. All current deployments use what was formerly called "advanced Visibility," now simply called Visibility.
If you are running a Temporal Server version older than v1.24, see the legacy standard Visibility section in the self-hosted guide.