Capítulo 241 de 456

serverActions

Core Idea

Configura o comportamento de segurança e limites de Server Actions: origens permitidas para invocação e tamanho máximo do corpo da requisição.

Key Concepts

  • experimental.serverActions.allowedOrigins: lista de domínios extras seguros de onde Server Actions podem ser invocadas. Next.js compara a origem da requisição com o host; sem essa config, só a mesma origem é permitida (proteção CSRF).
  • experimental.serverActions.bodySizeLimit: limite padrão 1MB pro corpo de uma requisição de Server Action (evita consumo excessivo de recursos e DDoS). Aceita bytes (número) ou string ('500kb', '3mb'). O limite se aplica ao corpo HTTP bruto, incluindo overhead de boundaries do multipart/form-data.
  • Server Actions são estáveis e habilitadas por padrão desde Next.js 14. Em versões anteriores, precisava experimental.serverActions: true.

Code Examples

/** @type {import('next').NextConfig} */
module.exports = {
  experimental: {
    serverActions: {
      allowedOrigins: ['my-proxy.com', '*.my-proxy.com'],
      bodySizeLimit: '2mb',
    },
  },
}
  • O que demonstra: liberar origens extras e aumentar o limite de body size juntos.

Key Takeaways

  1. allowedOrigins é a barreira de proteção CSRF para Server Actions; deixar vazio significa restringir à mesma origem.
  2. Para uploads próximos ao limite configurado, reserve ~10-20KB extra de overhead de multipart.

Connects To

  • proxyClientMaxBodySize (ch234): limite análogo, mas para o corpo bufferizado no proxy, não especificamente Server Actions.