# Prest Security Guidance

> Security guidance for pREST configs, auth, ACL, secrets, and SQL exposure. Apply when generating or reviewing prest.toml and queries.

- Skill: `prest/prest-security-guidance` (Agent Skill)
- Install (CLI): `npx skillmds@latest add prest/prest-security-guidance`
- Raw SKILL.md: https://api.skillmd.com/api/skills/prest/prest-security-guidance/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: prest (https://skillmd.com/u/prest)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/prest/prest-security-guidance

---


# pREST security guidance

Security guidance for pREST:

- Never expose all tables blindly in production examples.
- Prefer `access.restrict = true` with explicit `[[access.tables]]` permissions for non-demo deployments.
- Prefer read-only access for demo/MCP/AI examples unless the user explicitly needs writes.
- Do not include real credentials in generated configs. Use placeholders and `.env` / environment variables for database URLs, passwords, JWT secrets, and API keys.
- Warn when generated SQL allows broad data access (`SELECT *` over large tables, missing filters, unrestricted deletes).
- Avoid destructive SQL examples (`DROP`, `TRUNCATE`, bulk `DELETE`) unless explicitly requested.
- Prefer least-privilege PostgreSQL users (separate read-only roles for AI exploration).
- Remind users that `debug = true` / `PREST_DEBUG` disables JWT enforcement at runtime.
- In v2, JWT enforcement requires `jwt.default = true` plus verification material (`jwt.key`, JWKS, or well-known URL); warn if auth is claimed but misconfigured.
- Prefer `expose.enabled = true` (disables listing endpoints) or selective `expose.tables/schemas/databases = false` when catalog endpoints should not be public.
- Never suggest exposing AI/MCP or pREST admin surfaces publicly without authentication.

