Variáveis de ambiente bloqueadas no nó Airtable do n8n 2.19.5 auto-hospedado - comportamento esperado ou erro de configuração?

Oi a todos,
Estou rodando n8n v2.19.5 auto-hospedado em uma VPS usando Docker Compose. Estou tentando construir um fluxo de trabalho de geração de leads pronto para produção e me deparei com algo confuso sobre variáveis de ambiente dentro de parâmetros de nó.

Problema

Quando tento referenciar uma variável de ambiente dentro do nó Airtable (Base → By ID), assim:

Code

{{$env.AIRTABLE_BASE_ID}}

…recebo este erro diretamente na interface:

Code

[ERROR: access to env vars denied]

Se eu remover os colchetes de expressão e apenas digitar texto simples, o erro desaparece.
Se eu codificar manualmente o ID da Base, nenhum erro.
Se eu usar $env.AIRTABLE_BASE_ID dentro de um nó Function, funciona perfeitamente.

Então parece que as variáveis de ambiente estão disponíveis no runtime, mas bloqueadas em expressões da UI.

Contexto

  • n8n auto-hospedado 2.19.5

  • Implantação Docker Compose

  • Variáveis de ambiente definidas em docker-compose.yml

  • Credencial de Token de Acesso Pessoal do Airtable funciona

  • O dropdown “From List” gera 403 (esperado devido aos escopos do Airtable)

  • O único bloqueio é o acesso a variáveis de ambiente dentro de parâmetros de nó

Perguntas

  1. Este é o comportamento esperado para a versão gratuita auto-hospedada do n8n 2.x?

  2. As variáveis de ambiente são intencionalmente bloqueadas em expressões da UI a menos que se use n8n Pro?

  3. Qual é a solução recomendada para usuários auto-hospedados que desejam fluxos de trabalho reutilizáveis (por exemplo, armazenar o ID da Base em credenciais)?

  4. Existe alguma documentação oficial explicando essa restrição?

Objetivo

Quero construir fluxos de trabalho reutilizáveis sem codificar manualmente os IDs das Bases, mas estou tentando entender se essa limitação é por design ou se configurei algo incorretamente.

Obrigado antecipadamente a qualquer um que possa esclarecer como as variáveis de ambiente devem funcionar em parâmetros de nó no 2.x auto-hospedado

Informações sobre sua configuração de n8n

  • Versão do n8n: v2.19.5
  • Banco de dados (padrão: SQLite):
  • Configuração EXECUTIONS_PROCESS do n8n (padrão: own, main):
  • Rodando n8n via (Docker, npm, n8n cloud, aplicativo desktop): Docker Compose
  • Sistema operacional: Ubuntu

Oi @NE_automation

Sim

Não

Esta

Obrigado pelos links! Li esse documento e também consultei essa issue. Parece que a mudança afeta principalmente o acesso a variáveis de ambiente dentro de nós Code, e pode ser alternada com N8N_BLOCK_ENV_ACCESS_IN_NODE. No meu caso, $env funciona bem em nós Code - o bloqueio não é o problema. O problema é que as variáveis de ambiente estão sendo negadas especificamente dentro de expressões de parâmetros de nó (por exemplo, Airtable Base ID), onde recebo [ERROR: access to env vars denied] mesmo que a variável exista no container. Pelo que posso ver, isso parece ser uma restrição separada no sistema de expressões da UI 2.x. Só tentando confirmar se esse é o comportamento esperado para a versão gratuita self‑hosted.

bom dia @NE_automation
é um comportamento de segurança do n8n 2.x
use N8N_BLOCK_ENV_ACCESS_IN_NODE=false e reinicie seu container

Obrigado pela sugestão! Já testei N8N_BLOCK_ENV_ACCESS_IN_NODE=false e $env funciona perfeitamente dentro de nós Code. O problema que estou enfrentando é diferente - as variáveis de ambiente estão sendo bloqueadas especificamente dentro de expressões de parâmetros de nó (como os campos “Table” e “Base” do Airtable), onde recebo access to env vars denied mesmo que a variável exista e os nós Code consigam lê-la. Não encontrei nada na documentação de breaking‑changes da 2.0 sobre variáveis de ambiente sendo restritas em expressões de UI, então estou tentando confirmar se esse é um comportamento esperado na versão 2.x auto‑hospedada.

Obrigado a todos pela ajuda! Consegui descobrir - o problema era que eu tinha adicionado +bases em Access mas esqueci de habilitar schema.bases:read em Scopes. Assim que adicionei esse escopo, tudo funcionou. Agradeço a todos que ajudaram.

Marque sua resposta como solução para que outros membros consigam solucionar suas dúvidas com mais facilidade. Cheers :tada: