# Payload CMS — Topic Index

> Articles about Payload CMS: configuration, admin panel, collections, fields, auth, and deployment patterns.

| Article | Summary | Source | Updated |
|---------|---------|--------|---------|
| [[wiki/payloadcms/admin-panel-overview\|Admin Panel Overview]] | Auto-generated Next.js admin UI — structure, config options, auth, routes, i18n, timezones, toasts | raw/admin__overview.md | 2026-05-15 |
| [[wiki/payloadcms/admin-preferences\|Admin Preferences]] | Per-user persistent preferences via `usePreferences` hook — built-ins, DB schema, REST/GraphQL, usage pattern | raw/admin__preferences.md | 2026-05-15 |
| [[wiki/payloadcms/admin-preview\|Admin Preview & Draft Preview]] | Preview button config, draft preview flow with Next.js (3 steps), conditional preview, PREVIEW_SECRET guard | raw/admin__preview.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue\|Jobs Queue — Overview]] | Core concepts (Task/Workflow/Job/Queue), use cases, running/scheduling options (bin script / autoRun / API endpoint), common pitfalls (duplicate scheduling, autoRun on serverless), admin UI visibility | raw/jobs-queue__overview.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-jobs\|Jobs Queue — Jobs Detail]] | Queuing from hooks/endpoints/server actions, job options (waitUntil/queue/log), full status schema, access control (jobs.access + overrideAccess), cancellation (cancelByID/cancel/JobCancelledError) | raw/jobs-queue__jobs.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-queues\|Jobs Queue — Queues & Execution]] | 4 execution methods (bin script/autoRun/endpoint/Local API), processing order, queue strategies, Vercel Cron + CRON_SECRET, troubleshooting | raw/jobs-queue__queues.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-quick-start\|Jobs Queue — Quick Start Examples]] | Step-by-step: welcome email (manual queue + afterChange hook), daily scheduled report (schedule + autoRun), one-time waitUntil job, serverless warning | raw/jobs-queue__quick-start-example.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-schedules\|Jobs Queue — Schedules]] | Cron scheduling: schedule vs waitUntil, two-config requirement (schedule + runner), bin scripts vs autoRun vs API endpoint, lifecycle, concurrency hooks, serverless pattern, troubleshooting | raw/jobs-queue__schedules.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-tasks\|Jobs Queue — Tasks]] | Task config reference (slug/handler/inputSchema/outputSchema/retries/schedule), failure handling, idempotency, shouldRestore, nested tasks, handler file paths | raw/jobs-queue__tasks.md | 2026-05-15 |
| [[wiki/payloadcms/jobs-queue-workflows\|Jobs Queue — Workflows]] | Multi-task pipelines with per-task retry recovery: workflow config, stable task IDs, inline tasks, task output access, concurrency controls (exclusive/supersedes), best practices | raw/jobs-queue__workflows.md | 2026-05-15 |
| [[wiki/payloadcms/admin\|Admin Panel (full)]] | Complete admin config reference: preview, draft-preview, preferences API, all React hooks | raw/admin__*.md | 2026-05-15 |
| [[wiki/payloadcms/custom-components\|Custom Components]] | Root slots, dashboard widgets, edit/list view slots, document views, custom views, providers | raw/custom-components__*.md | 2026-05-15 |

| [[wiki/payloadcms/upload\|Upload & Media]] | Upload config, imageSizes, focal point, storage adapters (S3/R2/GCS/Azure/Vercel Blob), access control, gotchas | raw/upload__*.md | 2026-05-15 |
| [[wiki/payloadcms/storage-adapters\|Storage Adapters]] | All 6 cloud storage adapters (Vercel Blob/S3/Azure/GCS/Uploadthing/R2), R2+Node.js via S3 API, prefix composition, access control proxy, custom adapter interface | raw/upload__storage-adapters.md | 2026-05-15 |
| [[wiki/payloadcms/features\|Features — Email, Folders, Trash, Query Presets]] | Email adapters (Nodemailer/Resend), folder grouping (beta), soft-delete trash workflow, saved query presets | raw/email/folders/trash/query-presets | 2026-05-15 |
| [[wiki/payloadcms/folders\|Folders — Content Organization]] | Folder grouping for collections (beta): global config, per-collection opt-in, nesting, browse-by-folder view | raw/folders__overview.md | 2026-05-15 |
| [[wiki/payloadcms/email\|Email — Adapters, SMTP, Resend, Attachments]] | Full email reference: Nodemailer (SMTP/SendGrid/dev), Resend (serverless), sendEmail API, attachments (Buffer/path/Base64/URL), media collection attachments | raw/email__overview.md | 2026-05-15 |
| [[wiki/payloadcms/local-api\|Local API]] | Direct DB access via `payload.*` — CRUD, auth ops, globals, server functions, access control, outside Next.js | raw/local-api__*.md | 2026-05-15 |
| [[wiki/payloadcms/local-api-outside-nextjs\|Local API — Outside Next.js]] | Standalone scripts with `getPayload`, `payload run` CLI, ESM requirement, tsx/swc/bun transpilation options | raw/local-api__outside-nextjs.md | 2026-05-15 |
| [[wiki/payloadcms/rest-api\|REST API]] | Auto-generated HTTP endpoints, all query params, auth routes, SDK, custom endpoints, method override | raw/rest-api__overview.md | 2026-05-15 |
| [[wiki/payloadcms/queries\|Queries]] | Where operators (15 total), and/or nesting, dot notation, depth, pagination, sort, select/populate — full reference with perf checklist | raw/queries__overview.md, raw/queries__*.md | 2026-05-15 |
| [[wiki/payloadcms/ecommerce\|Ecommerce]] | Plugin setup, Stripe payments, cart API, frontend hooks, multi-currency, piecemeal collections | raw/ecommerce__*.md | 2026-05-15 |
| [[wiki/payloadcms/ecommerce-advanced\|Ecommerce — Advanced / Piecemeal Collections API]] | All 8 `create*Collection` factory functions with full prop/access tables + TS types (CurrenciesConfig, Currency, CountryType, InventoryConfig) | raw/ecommerce__advanced.md | 2026-05-15 |
| [[wiki/payloadcms/ecommerce-frontend\|Ecommerce — Frontend React Utilities]] | EcommerceProvider, useCart, usePayments (2-step checkout), useAddresses, useCurrency, useEcommerceConfig, useEcommerce; session management (onLogin, onLogout, mergeCart) | raw/ecommerce__frontend.md | 2026-05-15 |
| [[wiki/payloadcms/ecommerce-payment-adapters\|Ecommerce — Payment Adapters]] | Payment adapter pattern, Stripe setup + webhooks (local CLI), custom adapter interface (initiatePayment/confirmOrder/group field), client-side adapter, security gotchas | raw/ecommerce__payments.md | 2026-05-15 |
| [[wiki/payloadcms/production-deployment\|Production Deployment]] | Deploy anywhere Next.js runs: security checklist, DB options (Cosmos DB compat preset), ephemeral vs persistent file storage, cloud adapters, multi-stage Dockerfile, Docker Compose dev setup | raw/production__deployment.md | 2026-05-15 |
| [[wiki/payloadcms/performance-overview\|Performance Optimization]] | DB proximity, indexes, block references, cached instance, direct DB calls, hooks/validation perf, Turbopack, devBundleServerPackages | raw/performance__overview.md | 2026-05-15 |
| [[wiki/payloadcms/typescript\|TypeScript]] | Native TS support, `generate:types` CLI, `interfaceName` for reusable interfaces, TS language service plugin | raw/typescript__*.md | 2026-05-15 |
| [[wiki/payloadcms/migration-troubleshooting\|Migration & Troubleshooting]] | v2→v3 and v3→v4 migration guides, codemod, dependency dedup fix, hierarchy feature, Vercel Content Link, examples | raw/migration-guide__*.md, troubleshooting, hierarchy, integrations | 2026-05-15 |
| [[wiki/payloadcms/react-hooks\|React Hooks]] | All `@payloadcms/ui` hooks: useField, useForm, useAllFormFields, useDocumentInfo, useAuth, useConfig, usePayloadAPI, and more | raw/admin__react-hooks.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-api-keys\|Authentication — API Keys]] | Non-expiring per-user API keys for third-party integrations — enable, HTTP header format, encryption, API-key-only mode | raw/authentication__api-keys.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-cookies\|Authentication — Cookie Strategy]] | HTTP-only cookie auth, `credentials: 'include'`, CSRF whitelist, cross-domain SameSite/Secure config, localhost gotcha | raw/authentication__cookies.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-custom-strategies\|Authentication — Custom Strategies]] | Replace/augment built-in auth: strategy shape, authenticate args, disableLocalStrategy, header-based token example | raw/authentication__custom-strategies.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-email\|Authentication — Email Verification & Password Reset]] | Email verification (`auth.verify`), forgot-password flow, `generateEmailHTML`/`generateEmailSubject` overrides, token usage | raw/authentication__email.md | 2026-05-15 |
| [[wiki/payloadcms/plugins\|Plugins Overview + Official]] | Plugin concept (config-in/config-out, execution order, use cases, addLastModified example), community plugins, all 10 official plugins with install + config | raw/plugins__overview.md, raw/plugins__*.md | 2026-05-15 |
| [[wiki/payloadcms/plugins-api\|Plugin API]] | Build custom plugins: function signature, definePlugin, order, RegisteredPlugins augmentation, cross-plugin communication | raw/plugins__plugin-api.md, plugins__build-your-own.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-jwt\|Authentication — JWT Strategy]] | JWT via Authorization header, `removeTokenFromResponses`, external validation secret derivation (SHA-256 + slice 32) | raw/authentication__jwt.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-operations\|Authentication — Operations]] | All auth operations: access, me, login, logout, refresh, verify, unlock, forgot/reset password — REST, GraphQL, Local API | raw/authentication__operations.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-overview\|Authentication — Overview]] | Enable auth on Collections, all config options, built-in strategies (cookies/JWT/API keys), username login, auto-login, field access override | raw/authentication__overview.md | 2026-05-15 |
| [[wiki/payloadcms/authentication-token-data\|Authentication — Token Data (saveToJWT)]] | Embed field values into JWT/cookie via `saveToJWT`; access via `req.user` in hooks and access control without DB lookups | raw/authentication__token-data.md | 2026-05-15 |
| [[wiki/payloadcms/collection-config\|Collection Config]] | Full Collection config reference — schema options, admin options, orderable/fractional indexing, custom components, List View Select API, formatDocURL | raw/configuration__collections.md | 2026-05-15 |
| [[wiki/payloadcms/environment-vars\|Environment Variables]] | `.env` setup for Next.js and standalone, `NEXT_PUBLIC_` for client-side, `dotenv` outside Next.js | raw/configuration__environment-vars.md | 2026-05-15 |
| [[wiki/payloadcms/globals-config\|Globals Config]] | Singleton documents (header nav, banners, app strings) — config options, admin components, GraphQL, TypeScript | raw/configuration__globals.md | 2026-05-15 |
| [[wiki/payloadcms/i18n\|I18n — Interface Internationalization]] | Admin UI translations for 30+ languages, custom/override strings, project-level label translations, backend `req.t()` | raw/configuration__i18n.md | 2026-05-15 |
| [[wiki/payloadcms/localization\|Localization — Content Internationalization]] | Field-level content localization: locales config, RTL, fallback, status localization (experimental), querying by locale across REST/GraphQL/Local API | raw/configuration__localization.md | 2026-05-15 |
| [[wiki/payloadcms/configuration\|Payload Config — Overview]] | Full `buildConfig` options reference, config location detection, logger (Pino), TypeScript config, CORS, bin scripts + cron scheduling | raw/configuration__overview.md | 2026-05-15 |
| [[wiki/payloadcms/custom-views\|Custom Views]] | Replace or add Admin Panel pages at root/collection/global scope — config, props, templates, security | raw/custom-components__custom-views.md | 2026-05-15 |
| [[wiki/payloadcms/dashboard-widgets\|Dashboard Widgets]] | Modular dashboard widgets (experimental): define, configure, RSC components, defaultLayout, user customization, plugin widgets | raw/custom-components__dashboard.md | 2026-05-15 |
| [[wiki/payloadcms/document-views\|Document Views]] | All Document View keys (root/default/versions/api/livePreview/custom), tab config, custom tab components, Document Root gotcha | raw/custom-components__document-views.md | 2026-05-15 |
| [[wiki/payloadcms/custom-components-edit-view\|Custom Components — Edit View]] | Edit View slots: SaveButton, PublishButton, SaveDraftButton, UnpublishButton, PreviewButton, Status, Upload, beforeDocumentControls, editMenuItems | raw/custom-components__edit-view.md | 2026-05-15 |
| [[wiki/payloadcms/custom-components-list-view\|Custom Components — List View]] | List View slots (beforeList, afterList, beforeListTable, afterListTable, listMenuItems, Description), full Custom List View with ListViewServerProps/ClientProps, DefaultListView, useListQuery | raw/custom-components__list-view.md | 2026-05-15 |
| [[wiki/payloadcms/custom-components-authoring\|Custom Components — Authoring Guide]] | Component path syntax, Import Map internals (when regenerated, override), RSC vs Client, default props, i18n/locale hooks, styles, performance (useFormFields, import paths), troubleshooting useConfig errors | raw/custom-components__overview.md | 2026-05-15 |
| [[wiki/payloadcms/custom-components-root\|Custom Components — Root Components]] | All `admin.components` root slots: actions, header, before/afterDashboard, before/afterLogin, before/afterNavLinks, settingsMenu, Nav, graphics.Icon/Logo, logout.Button, providers | raw/custom-components__root-components.md | 2026-05-15 |
| [[wiki/payloadcms/database-indexes\|Database Indexes]] | Single-field `index: true`, compound `indexes: []`, unique fields gotchas (nested arrays, MongoDB sparse), localized field index limits | raw/database__indexes.md | 2026-05-15 |
| [[wiki/payloadcms/database-migrations\|Database Migrations]] | Full migration CLI reference, Postgres push-vs-migrate workflow, transaction usage, CI/build wiring, runtime `prodMigrations`, env-specific gotchas | raw/database__migrations.md | 2026-05-15 |
| [[wiki/payloadcms/database-mongodb\|Database — MongoDB]] | Mongoose adapter setup, all options, direct model access, DocumentDB/Cosmos DB/Firestore compatibility, collation | raw/database__mongodb.md | 2026-05-15 |
| [[wiki/payloadcms/database-overview\|Database — Overview]] | DB adapter pattern, MongoDB vs Postgres/SQLite selection guide, storage model differences, all official adapters | raw/database__overview.md | 2026-05-15 |
| [[wiki/payloadcms/database-postgres\|Database — Postgres]] | postgresAdapter setup, all options, push vs migrate, Drizzle direct access, beforeSchemaInit/afterSchemaInit hooks, rawTables mutation | raw/database__postgres.md | 2026-05-15 |
| [[wiki/payloadcms/database-sqlite\|Database — SQLite]] | sqliteAdapter + Drizzle/libSQL, WAL mode, Cloudflare D1, schema hooks, dev push vs migrations, direct Drizzle access | raw/database__sqlite.md | 2026-05-15 |
| [[wiki/payloadcms/database-transactions\|Database — Transactions]] | All-or-nothing DB commits: default behavior, req-passing pattern, async hook gotcha, direct beginTransaction/commit/rollback API, disabling | raw/database__transactions.md | 2026-05-15 |
| [[wiki/payloadcms/access-control\|PayloadCMS — Access Control]] | - Access Control determines what users can do with Documents and what they see in the Admin Panel | https://payloadcms.com/docs/access-control/overview | 2026-05-15 |
| [[wiki/payloadcms/fields-basic\|PayloadCMS — Fields: Basic]] | Scalar (basic) fields store a single value per document. They map directly to database columns and d | https://payloadcms.com/docs/fields/overview | 2026-05-15 |
| [[wiki/payloadcms/fields-complex\|PayloadCMS — Fields: Complex]] | Complex fields define structure, layout, or relations between documents. Some are data-bearing (Arra | https://payloadcms.com/docs/fields/array | 2026-05-15 |
| [[wiki/payloadcms/getting-started\|PayloadCMS — Getting Started]] | Payload is a code-first, open-source Next.js fullstack framework that acts as a CMS, enterprise tool | getting-started__what-is-payload.md | 2026-05-15 |
| [[wiki/payloadcms/hooks\|PayloadCMS — Hooks]] | All hook types (Root/Collection/Global/Field), awaited vs fire-and-forget, APIError, performance (avoid read hooks), context caching, jobs offload | raw/hooks__overview.md | 2026-05-15 |
| [[wiki/payloadcms/live-preview\|Live Preview — Overview]] | iframe-based real-time preview via postMessage: url config (static/dynamic/conditional), breakpoints, server-side vs client-side modes, depth mismatch gotcha | raw/live-preview__overview.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text\|PayloadCMS — Rich Text (Lexical)]] | Full Lexical editor reference: install, features system (defaultFeatures/rootFeatures), 24 official features, custom features (server+client), blocks in editor, HTML/JSX/Markdown/Plaintext converters, TypeScript types, admin options, Views, gotchas | raw/rich-text__overview.md + rich-text sub-docs | 2026-05-15 |
| [[wiki/payloadcms/examples-overview\|Examples Overview]] | 9 official starter examples (auth, draft-preview, multi-tenant, tailwind-shadcn, whitelabel…) — `npx create-payload-app --example <name>` | raw/examples__overview.md | 2026-05-15 |
| [[wiki/payloadcms/fields-array\|Array Field]] | Repeating row field — config options, minRows/maxRows, localized, unique gotcha, custom RowLabel, nested arrays | raw/fields__array.md | 2026-05-15 |
| [[wiki/payloadcms/fields-blocks\|Blocks Field]] | Heterogeneous array layout builder — block config, blockReferences, filterOptions, copy/paste, Lexical rendering, image guidelines | raw/fields__blocks.md | 2026-05-15 |
| [[wiki/payloadcms/fields-checkbox\|Checkbox Field]] | Boolean field — config options, defaultValue, index, saveToJWT, hidden, virtual, custom components | raw/fields__checkbox.md | 2026-05-15 |
| [[wiki/payloadcms/fields-code\|Code Field]] | Monaco editor UI (VS Code engine) storing a plain string — language syntax highlighting, editorOptions, custom components | raw/fields__code.md | 2026-05-15 |
| [[wiki/payloadcms/fields-collapsible\|Collapsible Field]] | Presentational-only layout field — groups nested fields under a collapsible header; no DB column; supports dynamic label via `({ data, path })` | raw/fields__collapsible.md | 2026-05-15 |
| [[wiki/payloadcms/fields-date\|Date Field]] | Date picker field — ISO 8601 storage, pickerAppearance modes, timezone support with separate `_tz` column, custom UTC offsets, GraphQL enum names | raw/fields__date.md | 2026-05-15 |
| [[wiki/payloadcms/fields-email\|Email Field]] | Email field with built-in format validation — unique index, saveToJWT, index, placeholder, autoComplete, custom components | raw/fields__email.md | 2026-05-15 |
| [[wiki/payloadcms/fields-group\|Group Field]] | Nest fields under a shared property (named) or visually group without nesting (presentational); `localized` covers all nested fields at once | raw/fields__group.md | 2026-05-15 |
| [[wiki/payloadcms/fields-join\|Join Field]] | Virtual bi-directional relationship field — zero-overhead reverse lookup, custom junction tables, polymorphic, query options across all APIs | raw/fields__join.md | 2026-05-15 |
| [[wiki/payloadcms/fields-json\|JSON Field]] | Stores native JSON in DB (not string) — jsonSchema validation + Monaco typeahead, local/remote schemas, vs Code Field | raw/fields__json.md | 2026-05-15 |
| [[wiki/payloadcms/fields-number\|Number Field]] | Numeric field — min/max validation, hasMany array mode, step admin control, unique/index, virtual, custom components | raw/fields__number.md | 2026-05-15 |
| [[wiki/payloadcms/fields-overview\|Fields Overview]] | Cross-cutting field config: virtual fields (boolean + path), validation (context, perf, reuse), defaultValue, admin options (condition, disabled, components), custom components (Field/Cell/Filter/Label/Error/Diff), reserved names | raw/fields__overview.md | 2026-05-15 |
| [[wiki/payloadcms/fields-point\|Point Field]] | Geospatial coordinate field — `[lng, lat]` storage, 2dsphere index, `near`/`within`/`intersects` query operators; MongoDB + PostgreSQL only (no SQLite) | raw/fields__point.md | 2026-05-15 |
| [[wiki/payloadcms/fields-radio\|Radio Field]] | Single-choice radio group — options constraint (no hyphens, GraphQL enum), horizontal/vertical layout, enumName for Postgres, custom components | raw/fields__radio.md | 2026-05-15 |
| [[wiki/payloadcms/fields-relationship\|Relationship Field]] | Link documents across collections — has-one/has-many, polymorphic (`{ relationTo, value }`), filterOptions, bi-directional via Join, depth auto-populate | raw/fields__relationship.md | 2026-05-15 |
| [[wiki/payloadcms/fields-rich-text\|Rich Text Field]] | WYSIWYG field stored as JSON, Lexical-powered, `editor` option for full customization, virtual/hidden/localized support | raw/fields__rich-text.md | 2026-05-15 |
| [[wiki/payloadcms/fields-row\|Row Field]] | Presentational-only layout field — arranges nested fields horizontally; no DB column; width via `admin.width` on children | raw/fields__row.md | 2026-05-15 |
| [[wiki/payloadcms/fields-select\|Select Field]] | Dropdown / multi-select enum field — options, hasMany, filterOptions (role-based/dependent), Postgres enumName/dbName, isSortable | raw/fields__select.md | 2026-05-15 |
| [[wiki/payloadcms/fields-tabs\|Tabs Field]] | Tabbed layout field — unnamed tabs (presentational), named tabs (nested DB object), conditional tabs with auto-switch, interfaceName for TS types | raw/fields__tabs.md | 2026-05-15 |
| [[wiki/payloadcms/fields-text\|Text Field]] | Plain string field — `hasMany` array mode, built-in Slug Field (`slugField()`), unique index, saveToJWT, virtual, localized, RTL admin | raw/fields__text.md | 2026-05-15 |
| [[wiki/payloadcms/fields-textarea\|Textarea Field]] | Multiline string field — identical to Text but with larger input; `rows` (default 2), RTL, no `hasMany`, same validation/virtual/JWT options | raw/fields__textarea.md | 2026-05-15 |
| [[wiki/payloadcms/fields-ui\|UI Field]] | Presentational-only field — inject arbitrary React components into Admin Panel Edit/List views; no data stored; use for action buttons, context text, custom controls | raw/fields__ui.md | 2026-05-15 |
| [[wiki/payloadcms/fields-upload\|Upload Field]] | Reference upload-enabled Collection docs as thumbnail — hasMany, polymorphic multi-collection, filterOptions, bi-directional via Join | raw/fields__upload.md | 2026-05-15 |
| [[wiki/payloadcms/graphql-overview\|GraphQL API — Overview]] | Auto-generated GraphQL endpoint: queries/mutations for Collections, Globals, Preferences; playground, complexity limits, custom validation rules | raw/graphql__overview.md | 2026-05-15 |
| [[wiki/payloadcms/hooks-collections\|Collection Hooks]] | All 18 collection hook types (write/read/delete/auth lifecycle), `data` vs `originalDoc` gotcha, auth hooks, TypeScript generics | raw/hooks__collections.md | 2026-05-15 |
| [[wiki/payloadcms/concepts-overview\|Core Concepts]] | Config, Collections, Globals, Fields, Hooks, Auth, Access Control, Admin Panel; Local/REST/GraphQL APIs; package structure | raw/getting-started__concepts.md | 2026-05-15 |
| [[wiki/payloadcms/hooks-context\|Hooks — Context (req.context)]] | Share data across hooks without duplicate fetches; prevent infinite loop in afterChange with flag pattern; TypeScript module augmentation for RequestContext | raw/hooks__context.md | 2026-05-15 |
| [[wiki/payloadcms/hooks-fields\|Field Hooks]] | Per-field lifecycle hooks: beforeValidate, beforeChange, afterChange, afterRead, beforeDuplicate — args reference, patterns, TypeScript generics | raw/hooks__fields.md | 2026-05-15 |
| [[wiki/payloadcms/hooks-globals\|Global Hooks]] | All 6 Global hook types: beforeOperation/Validate/Change/Read, afterChange/Read — args tables, data vs originalDoc gotcha, TS generics | raw/hooks__globals.md | 2026-05-15 |
| [[wiki/payloadcms/installation\|Installation]] | Requirements (Node 24+, Next.js 16.2.6+), create-payload-app quickstart, manual install steps, withPayload ESM config, tsconfig path alias | raw/getting-started__installation.md | 2026-05-15 |
| [[wiki/payloadcms/vercel-content-link\|Vercel Content Link]] | Enterprise visual editing: stega Content Source Maps, `@payloadcms/plugin-csm` setup, encodeSourceMaps flag, blocks/_encodedSourceMap, date field split | raw/integrations__vercel-content-link.md | 2026-05-15 |
| [[wiki/payloadcms/graphql-extending\|GraphQL — Custom Queries and Mutations]] | Add custom GraphQL ops via `graphQL.queries`/`graphQL.mutations` in buildConfig; resolver signature, `depth: 0` gotcha, `buildPaginatedListType`, collection graphQL types | raw/graphql__extending.md | 2026-05-15 |
| [[wiki/payloadcms/graphql-schema\|GraphQL — Schema Generation]] | `payload-graphql generate:schema` CLI, PAYLOAD_CONFIG_PATH for non-root configs, `interfaceName` for reusable top-level GraphQL types | raw/graphql__graphql-schema.md | 2026-05-15 |
| [[wiki/payloadcms/hierarchy\|Hierarchy — Tree Structure]] | Auto-generated parent-child trees: virtual slug/title paths, opt-in path computation, polymorphic hierarchies, no cascade updates | raw/hierarchy__overview.md | 2026-05-15 |
| [[wiki/payloadcms/live-preview-client\|Live Preview — Client-Side]] | `useLivePreview` hook for React/Vue, base package API (subscribe/unsubscribe/ready/isLivePreviewEvent), full hook implementation, depth mismatch gotcha, CORS/CSRF/CSP troubleshooting | raw/live-preview__client.md | 2026-05-15 |
| [[wiki/payloadcms/live-preview-frontend\|Live Preview — Frontend Integration Guide]] | Decision guide: server-side vs client-side, package summary, when to use each approach | raw/live-preview__frontend.md | 2026-05-15 |
| [[wiki/payloadcms/live-preview-server\|Live Preview — Server-Side]] | `RefreshRouteOnSave` for Next.js App Router (RSC): postMessage→router.refresh() flow, base package API, Autosave tip, CSP gotcha | raw/live-preview__server.md | 2026-05-15 |
| [[wiki/payloadcms/migration-guide-overview\|Migration Guides — Overview]] | Semantic versioning policy, upgrade path table (2→3, 3→4), links to full migration guides | raw/migration-guide__overview.md | 2026-05-15 |
| [[wiki/payloadcms/local-api-access-control\|Local API — Access Control]] | Local API skips access control by default; enforce with `overrideAccess: false` + `user` — when/why, mode table, security gotchas | raw/local-api__access-control.md | 2026-05-15 |
| [[wiki/payloadcms/local-api-server-functions\|Local API — Server Functions]] | `'use server'` bridge between client components and Local API: create/update/upload/auth patterns, built-in login/logout/refresh helpers from `@payloadcms/next/auth`, error handling, access control | raw/local-api__server-functions.md | 2026-05-15 |
| [[wiki/payloadcms/migration-guide-v2-to-v3\|Migration Guide — 2.0 → 3.0]] | Full breaking-change reference: admin replatform to Next.js App Router, bundler removal, secret move, custom component paths, endpoint handlers (Web Request + manual data parsing), cloud storage standalone packages, plugin named exports, reserved field names | raw/migration-guide__v3.md | 2026-05-15 |
| [[wiki/payloadcms/migration-guide-v3-to-v4\|Migration Guide — 3.0 → 4.0]] | All v4 breaking changes: List View Select API default, Globals components.edit rename, forceSelect→select function, hideAPIURL removal, aliased re-export cleanup, useDocumentTitle split, Import/Export hooks | raw/migration-guide__v4.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-form-builder\|Form Builder Plugin]] | Dynamic admin-built forms, all field types, upload/payment/email, access gotchas, frontend multipart submission, presigned URL pattern | raw/plugins__form-builder.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-import-export\|Import/Export Plugin]] | CSV/JSON import-export via admin UI or API: jobs queue setup, import modes (create/update/upsert), batch hooks, column mapping, access control warning | raw/plugins__import-export.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-mcp\|MCP Plugin]] | Expose Payload as an MCP server — API key access control (two-step), custom tools/prompts/resources, token efficiency (select + overrideResponse), Claude Code / Cursor / VS Code client config | raw/plugins__mcp.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-multi-tenant\|Multi-Tenant Plugin]] | Scaffold multi-tenancy: tenant field on collections, Admin selector, filtered list views + relationship pickers, isGlobal (1 doc/tenant), cascade delete, super-admin bypass, useTenantSelection hook | raw/plugins__multi-tenant.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-nested-docs\|Nested Docs Plugin]] | Parent/child hierarchy for collections: auto `parent` + `breadcrumbs` fields, recursive cascade updates, `generateURL`/`generateLabel` options, custom field overrides, localization support | raw/plugins__nested-docs.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-redirects\|Redirects Plugin]] | Managed `redirects` collection (from/to + doc reference), redirect types (301/302), overrides pattern, frontend integration (Next.js middleware/redirects()) | raw/plugins__redirects.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-search\|Search Plugin]] | First-party search index: static `search` collection, hook-free queries, priority sorting, `beforeSync`/`skipSync`, on-demand reindex | raw/plugins__search.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-sentry\|Sentry Plugin]] | Sentry error tracking + performance monitoring: Next.js setup prerequisite, Postgres pg driver injection for DB traces, captureErrors, context callback | raw/plugins__sentry.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-seo\|SEO Plugin]] | `meta` field group (title/description/image) on collections/globals, auto-generate functions, real-time search preview, custom fields (og:title, json-ld), tabbedUI gotcha, direct field imports | raw/plugins__seo.md | 2026-05-15 |
| [[wiki/payloadcms/plugin-stripe\|Stripe Plugin]] | Two-way Stripe↔Payload sync, webhook handlers, REST proxy (dev-only), `sync` auto-hooks, serverless `waitUntil` fix, `skipSync` loop prevention | raw/plugins__stripe.md | 2026-05-15 |
| [[wiki/payloadcms/building-without-db-connection\|Building Without a DB Connection]] | Docker build fails when Next.js SSG calls Local API — two-phase `compile`/`generate` build modes, `force-dynamic` escape hatch, `NEXT_PUBLIC_` gotcha | raw/production__building-without-a-db-connection.md | 2026-05-15 |
| [[wiki/payloadcms/production-preventing-abuse\|Production — Preventing API Abuse]] | Login rate limiting (maxLoginAttempts/lockTime), maxDepth, CSRF, CORS, GraphQL complexity limits, malicious file upload mitigation | raw/production__preventing-abuse.md | 2026-05-15 |
| [[wiki/payloadcms/queries-depth\|Queries — Depth (Relationship Population)]] | depth=0 (IDs only) vs depth=N (full objects), defaultDepth config, field-level maxDepth cap, performance notes, GraphQL exception | raw/queries__depth.md | 2026-05-15 |
| [[wiki/payloadcms/queries-pagination\|Queries — Pagination]] | Default pagination (limit/page/pagination options), response shape (docs + metadata), limit:1 perf tip, disabling pagination for bulk ops | raw/queries__pagination.md | 2026-05-15 |
| [[wiki/payloadcms/queries-select\|Queries — Select & Populate]] | Include/exclude field selection at DB level, entity-level `select` function for hooks/access, `defaultPopulate` for relationship optimization, `populate` override | raw/queries__select.md | 2026-05-15 |
| [[wiki/payloadcms/queries-sort\|Queries — Sort]] | Sort by any stored top-level field: `-field` descending, array (Local API) or comma-separated string (REST/GraphQL), index tip | raw/queries__sort.md | 2026-05-15 |
| [[wiki/payloadcms/query-presets\|Query Presets]] | Save & share List View filters/columns/sort as DB records; collection-level + document-level access control; custom RBAC constraints; filterConstraints | raw/query-presets__overview.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-blocks\|Rich Text — Blocks (Lexical BlocksFeature)]] | Embed Payload Blocks in Lexical rich text: block vs inline blocks, data structure, custom admin components (BlockCollapsible/BlockEditButton), pre-built CodeBlock with TS IntelliSense, frontend rendering | raw/rich-text__blocks.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-converters\|Rich Text — Converters (Lexical)]] | Convert Lexical JSON to HTML/JSX/Markdown/Plaintext; editorConfigFactory methods (default/fromField/fromFeatures/fromEditor); hook pattern for sibling field config | raw/rich-text__converters.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-converting-html\|Rich Text — Converting HTML]] | `convertLexicalToHTML` (sync/async), `convertHTMLToLexical`, image data-attributes pattern, `buildEditorState` helper, block converters | raw/rich-text__converting-html.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-converting-jsx\|Rich Text — Converting to JSX]] | `RichText` component, custom converters function, internal link `internalDocToHref`, custom block converters per slug, overriding built-ins (e.g. upload → next/image) | raw/rich-text__converting-jsx.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-converting-markdown\|Rich Text — Converting Markdown]] | `convertLexicalToMarkdown` / `convertMarkdownToLexical`, editorConfigFactory, sibling textarea hook pattern, Upload `![media:<id>]()` placeholder, MDX block `jsx.export`/`jsx.import` | raw/rich-text__converting-markdown.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-converting-plaintext\|Rich Text — Converting to Plaintext]] | `convertLexicalToPlaintext`, no built-in defaults, fallback heuristics (text→children→ignore), paragraph/text/tab newlines, custom `PlaintextConverters` | raw/rich-text__converting-plaintext.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-custom-features\|Rich Text — Custom Lexical Features]] | Two-file feature pattern (server+client), `createServerFeature`/`createClientFeature`, custom nodes (DecoratorNode), plugins, toolbar groups/items, slash menu, markdown transformers, props serialization | raw/rich-text__custom-features.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-official-features\|Rich Text — Official Lexical Features]] | All 24 official features: 19 default-on (bold/italic/heading/lists/links/upload…) + 5 opt-in (FixedToolbar/Blocks/TreeView/Table/TextState); full config reference + TextStateFeature frontend rendering | raw/rich-text__official-features.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-rendering-on-demand\|Rich Text — Rendering On Demand (RenderLexical)]] | `RenderLexical` experimental component: render Lexical editor outside a Form via server action, schemaPath resolution, inside-Form vs controlled-state modes, hidden anchor field tip | raw/rich-text__rendering-on-demand.md | 2026-05-15 |
| [[wiki/payloadcms/rich-text-views\|Rich Text — Lexical Views]] | Experimental: named rendering modes (default/preview/branded) for Lexical nodes — shared admin panel + JSX converter rendering, view selector UI, Component/createDOM/html overrides, Block/Label keys, bundle-size gotcha | raw/rich-text__views.md | 2026-05-15 |
| [[wiki/payloadcms/trash-soft-delete\|Trash — Soft Delete]] | `trash: true` on a collection enables soft delete via `deletedAt` timestamp; dedicated Trash admin view; `trash` query param for all APIs; access control differentiates trash vs permanent delete via `data.deletedAt` | raw/trash__overview.md | 2026-05-15 |
| [[wiki/payloadcms/troubleshooting\|Troubleshooting Common Issues]] | Dependency mismatches (duplicate packages, monorepos), "Unauthorized" cookie debug, --experimental-https HMR WebSocket fix, DB password encoding | raw/troubleshooting__troubleshooting.md | 2026-05-15 |
| [[wiki/payloadcms/typescript-plugin\|TypeScript Plugin (Experimental)]] | `@payloadcms/typescript-plugin` — IDE path validation, export validation, autocomplete, go-to-definition for PayloadComponent import strings; VS Code workspace TS setup | raw/typescript__ts-plugin.md | 2026-05-15 |
| [[wiki/payloadcms/versions-autosave\|Versions — Autosave]] | Autosave config (interval/showSaveDraftButton), single-version upsert storage strategy, `autosave` arg on Local API update, requires versions+drafts | raw/versions__autosave.md | 2026-05-15 |
| [[wiki/payloadcms/versions-drafts\|Versions — Drafts]] | draft param vs _status field, write location table (versions table vs main collection), access control for read/publish, scheduled publish via Jobs Queue | raw/versions__drafts.md | 2026-05-15 |
| [[wiki/payloadcms/versions-overview\|Versions — Overview]] | Full version history/audit log system: 3 modes (versions-only/+drafts/+autosave), _slug_versions DB table, REST/GraphQL/Local API operations, readVersions access control | raw/versions__overview.md | 2026-05-15 |
