> 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.0.0-rc6.md).

# v2.0.0-rc6

Released: July 1, 2026

[GitHub release](https://github.com/prest/prest/releases/tag/v2.0.0-rc6) · [Download binaries](https://github.com/prest/prest/releases/tag/v2.0.0-rc6)

This was the final v2 release candidate before [v2.0.0](/releases/v2.0.0.md). See the [v2 RC changelog](/releases.md) for the full rc1–rc6 history.

## What's new in rc6

### OR clause filtering ([#958](https://github.com/prest/prest/pull/958))

You can now combine filter conditions with OR logic using the `_or` query parameter, without writing a custom SQL query.

```http
GET /db/public/articles?_or=title=$ilike.%search%||name=$ilike.%search%
```

Alternatives are separated by `||` (double pipe). See [Parameters](/api-reference/parameters.md#or-clause-filtering) for full syntax and examples.

### JWT fail-closed startup ([#960](https://github.com/prest/prest/pull/960))

pREST now validates JWT configuration at startup. When `jwt.default = true` (the default) and `debug = false`, the server **refuses to start** unless you provide `jwt.key`, `jwt.jwks`, or `jwt.wellknownurl`. This closes [GHSA-fj7v-859r-2fm4](https://github.com/prest/prest/security/advisories/GHSA-fj7v-859r-2fm4), where an empty HMAC key allowed forged bearer tokens.

When `auth.enabled = true`, `jwt.key` is also required.

> **Superseded in v2.0.0:** ([#974](https://github.com/prest/prest/pull/974)) auto-disables JWT instead of refusing startup. See [v2.0.0 release notes](/releases/v2.0.0.md) and [Changes since rc6](/releases/main-since-rc6.md).

See [Configuring pREST — JWT](/get-started/configuring-prest.md#jwt) for current behavior in v2.0.0.

### Structured logging ([#950](https://github.com/prest/prest/pull/950))

v2 uses Go's `slog` package for structured logging. Set `PREST_LOG_LEVEL` to `debug`, `info`, `warn`, or `error` to control verbosity. SQL queries are logged at debug level.

### `_select` whitespace trimming ([#941](https://github.com/prest/prest/pull/941))

Field names in `_select` are now trimmed of surrounding whitespace. `_select=id, name` produces the same result as `_select=id,name`.

### Docker and release tooling ([#953](https://github.com/prest/prest/pull/953), [#971](https://github.com/prest/prest/pull/971))

Docker images are now built via GoReleaser. Use `prest/prest:v2.0.0-rc6` in your deployments.

### Other changes

| Change                                                                        | Notes                                                   |
| ----------------------------------------------------------------------------- | ------------------------------------------------------- |
| Identifier formatting fix ([#955](https://github.com/prest/prest/pull/955))   | Internal SQL generation improvement                     |
| DI refactor ([#968](https://github.com/prest/prest/pull/968))                 | Internal architecture change, no user-facing API impact |
| Windows ARM builds excluded ([#970](https://github.com/prest/prest/pull/970)) | No `windows/arm` binary in this release                 |

## Upgrade from v1

Follow the [Upgrading to v2](/get-started/upgrading-to-v2.md) guide.
