> For the complete documentation index, see [llms.txt](https://docs.prestd.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prestd.com/releases/v2.2.0.md).

# v2.2.0

Released: July 18, 2026

[GitHub tag](https://github.com/prest/prest/releases/tag/v2.2.0) · [Download binaries](https://github.com/prest/prest/releases/tag/v2.2.0)

**v2.2.0** adds **pREST Studio** — an embedded admin and explorer UI at `/_studio/` ([#990](https://github.com/prest/prest/pull/990)) — plus database-backed custom query storage ([#980](https://github.com/prest/prest/pull/980)), TimescaleDB E2E certification on the native PostgreSQL adapter ([#988](https://github.com/prest/prest/pull/988)), and a fully documented sample configuration ([#978](https://github.com/prest/prest/pull/978)).

* **Binary:** [v2.2.0 release assets](https://github.com/prest/prest/releases/tag/v2.2.0)
* **Docker:** `prest/prest:v2.2.0`
* **Go install:** `go install github.com/prest/prest/v2/cmd/prestd@v2.2.0`

Upgrading from [v2.1.0](/releases/v2.1.0.md) is a drop-in update. Studio is **enabled by default**; set `PREST_STUDIO_ENABLED=false` to turn it off. Custom query storage remains `filesystem` unless you opt into `queries.storage = "database"`.

See [Changes since v2.1.0](/releases/main-since-v2.1.0.md) for the full commit list.

***

## Highlights

### pREST Studio ([#990](https://github.com/prest/prest/pull/990))

Self-hosted UI embedded in the `prestd` binary and served at `/_studio/`. Same-origin client of the existing REST and MCP APIs — no separate frontend process at runtime.

| Area          | What you get                                              |
| ------------- | --------------------------------------------------------- |
| Overview      | Health/readiness, build metadata, REST/MCP availability   |
| Data Explorer | Browse catalog, preview rows (read-only), copy URL/`curl` |
| REST Explorer | Build GET requests, inspect responses                     |
| MCP Explorer  | List/invoke `/_mcp` tools with generated forms            |

Disable with `PREST_STUDIO_ENABLED=false` or `[studio] enabled = false`. Auth and ACL match the rest of the HTTP stack. Guide: [pREST Studio](/get-started/prest-studio.md).

### Database-backed custom queries ([#980](https://github.com/prest/prest/pull/980))

Optional `queries.storage = "database"` with `prest_queries` table, `/_QUERIES/registry` admin API, query ACL, and `prestd migrate up|down queries`. Default remains filesystem. See [Custom Queries](/api-reference/custom-queries.md#database-backed-storage-v220).

### TimescaleDB E2E ([#988](https://github.com/prest/prest/pull/988))

First-class integration tests for TimescaleDB through the native PostgreSQL adapter (still **Compatible with caveats**). See [TimescaleDB](/databases/timescaledb.md).

### Sample configuration ([#978](https://github.com/prest/prest/pull/978))

[`samples/prest.sample.toml`](https://github.com/prest/prest/blob/v2.2.0/samples/prest.sample.toml) documents every accepted key, including `[studio]` and `[queries]`.

***

## Changes since v2.1.0

| Commit    | PR                                              | Summary                                             |
| --------- | ----------------------------------------------- | --------------------------------------------------- |
| `441dc3d` | [#990](https://github.com/prest/prest/pull/990) | pREST Studio embedded UI at `/_studio/`             |
| `8313b87` | [#980](https://github.com/prest/prest/pull/980) | Database-backed custom query storage, registry, ACL |
| `35eeedd` | [#988](https://github.com/prest/prest/pull/988) | TimescaleDB E2E on the native PostgreSQL adapter    |
| `5fb0290` | [#978](https://github.com/prest/prest/pull/978) | Fully documented sample configuration               |
| `e8cdcac` | [#979](https://github.com/prest/prest/pull/979) | Postgres / Timescale test images toward Postgres 18 |
| `e158f89` | [#998](https://github.com/prest/prest/pull/998) | Dockerfile / GoReleaser updates for Studio embed    |

Also: coverage reporting for fork PRs ([#984](https://github.com/prest/prest/pull/984)), README updates ([#986](https://github.com/prest/prest/pull/986)).

Full detail: [Changes since v2.1.0](/releases/main-since-v2.1.0.md).

***

## Upgrading from v2.1.0

No breaking changes for existing deployments.

1. Deploy `prest/prest:v2.2.0` (or the matching binary / `go install …@v2.2.0`).
2. Open `https://your-prest-host/_studio/` if you want the UI — or disable Studio if you prefer not to expose it.
3. Optionally enable database-backed queries — see [Custom Queries](/api-reference/custom-queries.md#database-backed-storage-v220).
4. MCP at `/_mcp` is unchanged from v2.1.0.

***

## Related

* [pREST Studio](/get-started/prest-studio.md)
* [Custom Queries](/api-reference/custom-queries.md)
* [TimescaleDB](/databases/timescaledb.md)
* [Configuring pREST](/get-started/configuring-prest.md)
* [Changes since v2.1.0](/releases/main-since-v2.1.0.md)
* [v2.1.0 release notes](/releases/v2.1.0.md)
* [Acronyms](/readme/acronyms.md) · [MCP](/readme/acronyms.md#mcp) · [REST](/readme/acronyms.md#rest)
