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).