# Self-hosted Visibility feature setup

> For the complete documentation index, see [llms.txt](https://docs.temporal.io/llms.txt).
> Any documentation page is available as raw Markdown by appending `.md` to its URL.

A [Visibility](/temporal-service/visibility) store is set up as a part of your
[Persistence store](/temporal-service/persistence) to enable listing and filtering details about Workflow Executions
that exist on your Temporal Service.

A Visibility store is required in a Temporal Service setup because it is used by [Temporal Web UI](/web-ui) and
[Temporal CLI](/cli) to pull [Workflow Execution](/workflow-execution) data and enables features like batch operations
on a group of Workflow Executions.

With the Visibility store, you can use [List Filters](/list-filter) with [Search Attributes](/search-attribute) to list
and filter Workflow Executions that you want to review or act upon.

Supported Visibility stores include:

- Elasticsearch v7 with Temporal Server v1.7 and later
- Elasticsearch v8 with Temporal Server v1.18 and later
- OpenSearch 2+ with Temporal Server v1.30.1 and later
- MySQL v8.0.17 and later with Temporal Server v1.20 and later
- PostgreSQL v12 and later with Temporal Server v1.20 and later
- SQLite v3.31.0 and later with Temporal Server v1.20 and later

## Current and legacy Visibility support 

[Advanced Visibility](/visibility#advanced-visibility) is the current generation of Temporal Visibility. It supports the
modern query model, including [custom Search Attributes](/search-attribute#custom-search-attribute).

This page also includes guidance for the legacy (deprecated in Temporal Server v1.21 and removed in v1.24)
[standard Visibility](/self-hosted-guide/visibility/legacy-standard) model for older deployments and migration work. In this context,
"advanced" and "standard (legacy)" refer to the current and legacy generations of Temporal Visibility, respectively.

The following compatibility matrix summarizes which generation of Visibility each store supports and the Temporal Server
versions required:

| Store                                                                                                               | Advanced Visibility (current)                                                                                                                                    | Standard Visibility (legacy)                                          |
| :------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- |
| [Elasticsearch](/self-hosted-guide/visibility/elasticsearch) <br/><br/>Recommended for any setup that spawns more than a few Workflow Executions | v7 on Temporal Server v1.7+, v8 on Temporal Server v1.18+                                                                                                        | Not supported                                                         |
| [OpenSearch](/self-hosted-guide/visibility/elasticsearch)                                                                                        | 2+ on Temporal Server v1.30.1+                                                                                                                                   | Not supported                                                         |
| [MySQL](/self-hosted-guide/visibility/mysql)                                                                                                     | v8.0.17+ on Temporal Server v1.20+                                                                                                                               | v5.7+ on older deployments before Temporal Server v1.24               |
| [PostgreSQL](/self-hosted-guide/visibility/postgresql)                                                                                           | v12+ on Temporal Server v1.20+                                                                                                                                   | v9.6+ on older deployments before Temporal Server v1.24               |
| [SQLite](/self-hosted-guide/visibility/sqlite)                                                                                                   | v3.31.0+ on Temporal Server v1.20+                                                                                                                               | Not supported                                                         |
| [Cassandra](/self-hosted-guide/visibility/legacy-standard#cassandra)                                                                                             | Not supported.<br/><br/>To migrate from Cassandra to a supported advanced Visibility store, see [Migrating Visibility database](/self-hosted-guide/visibility/migrate). | Deprecated in Temporal Server v1.21, removed in Temporal Server v1.24 |

You can use any combination of the supported databases for your Persistence and Visibility stores. For updates, check
[Server release notes](https://github.com/temporalio/temporal/releases).

Temporal Server v1.21 introduced support for a secondary Visibility store in your Temporal Service to enable
[Dual Visibility](/dual-visibility). This is useful for migrating your Visibility store database.
