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:
- White Labelling - Personalizar a aparência do n8n
- Configuração do Embed - Configurar parâmetros avançados
- Quickstart - Começar pela prática
- Segurança - Implementar autenticação avançada
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.
Sempre teste workflows em ambiente de desenvolvimento antes de aplicar em produção. Mantenha logs de auditoria por pelo menos 90 dias para compliance.
Considere usar ferramentas de CI/CD para automatizar o deployment de workflows entre ambientes (dev, staging, prod).