Pular para o conteúdo principal

Gerenciar Workflows Embarcados

Gerenciar Workflows Embarcados

Este documento detalha como gerenciar workflows em n8n embarcado, incluindo controle de acesso granular, versionamento integrado, backup automático, sincronização com sistemas externos, auditoria de mudanças, e estratégias de governança que garantem controle total sobre automações criadas dentro do ambiente embarcado mantendo compliance e segurança empresarial.

API de Workflows

Criar Novo Workflow

POST /api/v1/workflows
Content-Type: application/json

{
  "name": "Workflow de Teste",
  "active": false,
  "nodes": [...],
  "connections": {...}
}

Atualizar Workflow

PUT /api/v1/workflows/{id}

Excluir Workflow

DELETE /api/v1/workflows/{id}

Ativar/Desativar Workflow

PATCH /api/v1/workflows/{id}
{
  "active": true
}

Execuções

Listar Execuções

GET /api/v1/executions

Exemplo de Response

{
  "data": {
    "campo1": "valor1",
    "campo2": "valor2"
  }
}

Obter Detalhes da Execução

GET /api/v1/executions/{id}

Parar Execução em Andamento

POST /api/v1/executions/{id}/stop

Controle de Acesso e Permissões

Sistema RBAC

O n8n implementa Role-Based Access Control (RBAC) para controle granular de acesso:

Roles Disponíveis

// Roles padrão do n8n
const roles = {
  owner: {
    description: "Acesso total ao sistema",
    permissions: ["*"]
  },
  admin: {
    description: "Gerenciamento de usuários e configurações",
    permissions: [
      "user:read", "user:write",
      "workflow:read", "workflow:write",
      "credential:read", "credential:write"
    ]
  },
  editor: {
    description: "Criar e editar workflows",
    permissions: [
      "workflow:read", "workflow:write",
      "execution:read", "execution:write"
    ]
  },
  viewer: {
    description: "Apenas visualizar workflows",
    permissions: [
      "workflow:read",
      "execution:read"
    ]
  }
}

Permissões por Workflow

// Configurar permissões específicas por workflow
{
  "workflowId": "abc123",
  "permissions": {
    "user1@empresa.com": ["read", "write"],
    "user2@empresa.com": ["read"],
    "group:marketing": ["read", "execute"]
  }
}

Integração com Sistemas Externos

SAML/SSO

N8N_SAML_ENABLED=true
N8N_SAML_ISSUER=https://seu-identity-provider.com
N8N_SAML_ENTRY_POINT=https://seu-identity-provider.com/sso
N8N_SAML_CERT=/path/to/certificate.pem

LDAP/Active Directory

N8N_LDAP_ENABLED=true
N8N_LDAP_SERVER_URL=ldap://ldap.suaempresa.com:389
N8N_LDAP_BIND_DN=cn=admin,dc=suaempresa,dc=com
N8N_LDAP_BIND_PASSWORD=SUA_SENHA_LDAP_AQUI
N8N_LDAP_BASE_DN=dc=suaempresa,dc=com

Versionamento e Controle de Versões

Histórico de Versões

{
  "workflowId": "abc123",
  "versions": [
    {
      "version": 5,
      "timestamp": "2024-01-15T10:30:00Z",
      "author": "usuario@empresa.com",
      "changes": "Adicionado node de validação",
      "active": true
    },
    {
      "version": 4,
      "timestamp": "2024-01-14T15:45:00Z",
      "author": "usuario@empresa.com",
      "changes": "Corrigido bug no webhook",
      "active": false
    }
  ]
}

API de Versionamento

Listar Versões de um Workflow

GET /api/v1/workflows/{id}/versions

Obter Versão Específica

GET /api/v1/workflows/{id}/versions/{version}

Restaurar Versão Anterior

POST /api/v1/workflows/{id}/versions/{version}/restore

Comparar Versões

GET /api/v1/workflows/{id}/versions/compare?from=3&to=5

Documentação de Mudanças

Comentários de Versão

// Adicionar comentário ao salvar
{
  "name": "Workflow de Vendas",
  "versionComment": "Adicionada validação de CPF e integração com CRM",
  "nodes": [...],
  "connections": {...}
}

Changelog Automático

# Gerar changelog entre versões
curl -X GET "https://seu-n8n.com/api/v1/workflows/{id}/changelog?from=1&to=5" \
  -H "X-N8N-API-KEY: sua_api_key"

Auditoria e Logs

Logs de Atividade

Eventos Auditados

// Tipos de eventos registrados
const auditEvents = {
  "workflow.created": "Workflow criado",
  "workflow.updated": "Workflow atualizado",
  "workflow.deleted": "Workflow excluído",
  "workflow.executed": "Workflow executado",
  "user.login": "Usuário fez login",
  "user.logout": "Usuário fez logout",
  "credential.accessed": "Credencial acessada",
  "permission.changed": "Permissão alterada"
}

API de Auditoria

# Obter logs de atividade
GET /api/v1/audit-logs?start=2024-01-01&end=2024-01-31

Alertas de Segurança

{
  "securityAlerts": {
    "failedLogins": {
      "threshold": 5,
      "timeWindow": "15m",
      "action": "notify_admin"
    },
    "workflowDeletions": {
      "action": "notify_admin",
      "immediate": true
    },
    "unusualActivity": {
      "newLocation": true,
      "unusualHours": true,
      "action": "notify_user"
    }
  }
}

Integração com Sistemas de Monitoramento

# Webhook para alertas
POST /webhook/security-alerts
{
  "event": "workflow.deleted",
  "user": "usuario@empresa.com",
  "workflow": "Workflow Crítico",
  "timestamp": "2024-01-15T10:30:00Z",
  "ip": "SEU_IP_INTERNO00"
}

Backup e Recovery Automático

Script de Backup

#!/bin/bash

BACKUP_DIR="/backups/n8n"
API_KEY="sua_api_key"
N8N_URL="https://seu-n8n.com"
DATE=$(date +%Y%m%d_%H%M%S)

# Backup de workflows
curl -H "X-N8N-API-KEY: $API_KEY" \
  "$N8N_URL/api/v1/workflows" \
  | jq '.' > "$BACKUP_DIR/workflows_$DATE.json"

# Backup de credenciais
curl -H "X-N8N-API-KEY: $API_KEY" \
  "$N8N_URL/api/v1/credentials" \
  | jq '.' > "$BACKUP_DIR/credentials_$DATE.json"

# Criar arquivo compactado
tar -czf "$BACKUP_DIR/n8n_backup_$DATE.tar.gz" \
  "$BACKUP_DIR/workflows_$DATE.json" \
  "$BACKUP_DIR/credentials_$DATE.json"

# Limpar backups antigos (mais de 30 dias)
find $BACKUP_DIR -name "n8n_backup_*.tar.gz" -mtime +30 -delete

echo "Backup criado: $BACKUP_DIR/n8n_backup_$DATE.tar.gz"

Cron Job para Backup

# Adicionar ao crontab
0 2 * * * /path/to/backup-script.sh

Script de Restore

#!/bin/bash

API_KEY="sua_api_key"
N8N_URL="https://seu-n8n.com"

# Restaurar workflows
jq -c '.[]' workflows_*.json | while read workflow; do
  curl -X POST \
    -H "X-N8N-API-KEY: $API_KEY" \
    -H "Content-Type: application/json" \
    -d "$workflow" \
    "$N8N_URL/api/v1/workflows"
done

echo "Workflows restaurados com sucesso"

Sincronização com Sistemas Externos

Webhook para Sincronização

{
  "url": "https://sistema-externo.com/webhook/n8n",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer token_externo",
    "Content-Type": "application/json"
  },
  "body": {
    "event": "workflow.updated",
    "workflow": {
      "id": "abc123",
      "name": "Workflow de Vendas",
      "version": 5,
      "active": true
    },
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

Integração com Git

Sincronização com Repositório

#!/bin/bash

WORKFLOW_DIR="/tmp/n8n-workflows"
GIT_REPO="https://github.com/empresa/n8n-workflows.git"
API_KEY="sua_api_key"
N8N_URL="https://seu-n8n.com"

# Baixar workflows
curl -H "X-N8N-API-KEY: $API_KEY" \
  "$N8N_URL/api/v1/workflows" \
  | jq '.' > "$WORKFLOW_DIR/workflows.json"

# Commit e push
git commit -m "Sync workflows $(date)"
git push origin main

echo "Workflows sincronizados com Git"

Nomenclatura e Organização

Convenções de Nomenclatura

{
  "departamento.funcionalidade.acao": "marketing.leads.enviar-email",
  "sistema.integracao.processo": "crm.salesforce.sincronizar-contatos",
  "ambiente.tipo.workflow": "prod.vendas.processar-pedidos"
}

Documentação de Workflows

// Metadados para documentação
{
  "name": "Processar Pedidos de Venda",
  "description": "Workflow para processar pedidos vindos do e-commerce",
  "owner": "equipe-vendas@empresa.com",
  "tags": ["vendas", "e-commerce", "pedidos"],
  "version": "1.2.0",
  "lastUpdated": "2024-01-15T10:30:00Z",
  "dependencies": ["CRM", "Sistema de Pagamento"],
  "expectedExecutionTime": "5-10 minutos",
  "frequency": "Real-time via webhook"
}

Segurança

Proteção de Dados Sensíveis

// Configurações de segurança
{
  "security": {
    "maskSensitiveData": true,
    "logRetentionDays": 90,
    "requireMFA": true,
    "sessionTimeout": 3600,
    "maxLoginAttempts": 5,
    "passwordPolicy": {
      "minLength": 12,
      "requireUppercase": true,
      "requireLowercase": true,
      "requireNumbers": true,
      "requireSpecialChars": true
    }
  }
}

Monitoramento de Performance

// Métricas de monitoramento
{
  "monitoring": {
    "executionTime": {
      "warning": 300000, // 5 minutos
      "critical": 600000  // 10 minutos
    },
    "errorRate": {
      "warning": 0.05, // 5%
      "critical": 0.10  // 10%
    },
    "queueSize": {
      "warning": 100,
      "critical": 500
    }
  }
}

Próximos passos

Agora que você entende o gerenciamento de workflows embarcados:

  1. White Labelling - Personalizar a aparência do n8n
  2. Configuração do Embed - Configurar parâmetros avançados
  3. Quickstart - Começar pela prática
  4. Segurança - Implementar autenticação avançada

Dica Pro

Configure alertas automáticos para workflows críticos e mantenha backups regulares. Use a API para integrar o n8n com seus sistemas de monitoramento existentes.

Importante

Sempre teste workflows em ambiente de desenvolvimento antes de aplicar em produção. Mantenha logs de auditoria por pelo menos 90 dias para compliance.

Recurso Adicional

Considere usar ferramentas de CI/CD para automatizar o deployment de workflows entre ambientes (dev, staging, prod).