For the complete documentation index, see llms.txt. This page is also available as Markdown.

v2.0.0-rc6

Released: July 1, 2026

GitHub release ยท Download binaries

This was the final v2 release candidate before v2.0.0. See the v2 RC changelog for the full rc1โ€“rc6 history.

What's new in rc6

OR clause filtering (#958)

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

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

Alternatives are separated by || (double pipe). See Parameters for full syntax and examples.

JWT fail-closed startup (#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, where an empty HMAC key allowed forged bearer tokens.

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

Superseded in v2.0.0: (#974) auto-disables JWT instead of refusing startup. See v2.0.0 release notes and Changes since rc6.

See Configuring pREST โ€” JWT for current behavior in v2.0.0.

Structured logging (#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)

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, #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)

Internal SQL generation improvement

DI refactor (#968)

Internal architecture change, no user-facing API impact

Windows ARM builds excluded (#970)

No windows/arm binary in this release

Upgrade from v1

Follow the Upgrading to v2 guide.

Last updated