SFTP_DELETE - Apagar Arquivo no Servidor SFTP
O que é este Node?
O SFTP_DELETE é o node responsável por remover arquivos de servidor SFTP via SSH. Equivalente ao FTP_DELETE, mas com operação auditada via logs SSH.
Por que este Node existe?
Gerenciar ciclo de vida de arquivos sensíveis requer segurança e auditoria. O SFTP_DELETE existe para:
- Limpeza Segura: Remover arquivos processados via comando SSH auditado
- Rastreabilidade: Logs SSH registram quem apagou o quê e quando
- Compliance: Implementar políticas de retenção (ex: apagar após 90 dias)
- Gerenciar Espaço: Limpar arquivos antigos de servidores remotos
Como funciona internamente?
Quando o SFTP_DELETE é executado, o sistema:
- Conecta via SSH: Túnel criptografado
- Valida Caminho: Confirma path do arquivo
- Executa Remoção: Comando SFTP delete via SSH
- Registra em Log SSH: Servidor SSH loga operação
- Confirma: Retorna sucesso ou erro
- Se falhar: Erro (sem permissão, arquivo não existe)
- Se sucesso: Arquivo removido e operação auditada
Código interno (sftp-executor.service.ts - não implementado ainda):
private async deleteFile(sftp: SFTP, remotePath: string): Promise<any> {
await sftp.delete(remotePath);
return {
success: true,
deletedPath: remotePath,
deletedAt: new Date().toISOString(),
protocol: 'sftp',
audited: true
};
}
Quando você DEVE usar este Node?
Use SFTP_DELETE sempre que precisar de remover arquivos com auditoria:
Casos de uso
- Pós-Processamento Bancário: "Apagar arquivo de retorno após importar pagamentos"
- Limpeza LGPD: "Remover dados pessoais após período de retenção legal"
- Gerenciar Fila: "Apagar XML após processar nota fiscal"
Quando NÃO usar SFTP_DELETE
- Arquivos Importantes: Sempre faça backup antes de apagar
- Sem Certeza: Se não confirmou processamento, não apague
- Auditoria: Se precisa manter histórico, use SFTP_RENAME para arquivar
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| host | string | Sim | Servidor SFTP |
| port | number | Não | Porta SSH (padrão: 22) |
| username | string | Sim | Usuário SSH |
| password | string | Condicional | Senha |
| privateKey | string | Condicional | Chave SSH |
| operation | string | Sim | Deve ser "delete" |
| remoteFilePathDelete | string | Sim | Arquivo a remover |
| outputVariable | string | Não | Variável resultado |
Exemplo 1: Download e Delete Seguro
Objetivo: Baixar arquivo bancário e então removê-lo do servidor
JSON para Importar
{
"name": "SFTP Download e Delete",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "sftp_download",
"type": "sftp",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Baixar Retorno",
"parameters": {
"host": "sftp.banco.com.br",
"username": "empresa",
"password": "pass",
"operation": "download",
"remoteFilePathDownload": "/retornos/ret_2025-01-15.txt",
"localFilePathDownload": "/tmp/retorno.txt"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Processando",
"parameters": {
"message": "⚙️ Processando retorno bancário..."
}
}
},
{
"id": "sftp_delete",
"type": "sftp",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Apagar do Servidor",
"parameters": {
"host": "sftp.banco.com.br",
"username": "empresa",
"password": "pass",
"operation": "delete",
"remoteFilePathDelete": "/retornos/ret_2025-01-15.txt"
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Finalizar",
"parameters": {
"message": "✅ Retorno processado e arquivo removido do servidor!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "sftp_download" },
{ "source": "sftp_download", "target": "message_1" },
{ "source": "message_1", "target": "sftp_delete" },
{ "source": "sftp_delete", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: ⚙️ Processando retorno bancário...
Sistema: ✅ Retorno processado e arquivo removido do servidor!
Resposta do Node
{
"success": true,
"data": {
"sftp_result": {
"success": true,
"deletedPath": "/retornos/ret_2025-01-15.txt",
"deletedAt": "2025-01-15T10:45:00.000Z",
"protocol": "sftp",
"audited": true
}
}
}
Boas Práticas
✅ SIM:
- Sempre baixe antes de apagar (download + delete)
- Verifique sucesso do download antes de deletar
- Mantenha log local dos arquivos apagados
❌ NÃO:
- Não apague sem backup
- Não delete sem confirmar processamento
- Não ignore erros de delete
Dicas
💡 Dica 1: SFTP_DELETE é IRREVERSÍVEL. Arquivo apagado não pode ser recuperado.
💡 Dica 2: Sequência segura: SFTP_DOWNLOAD → validar → SFTP_DELETE.
💡 Dica 3: Logs SSH do servidor registram quem apagou e quando (auditoria).
Próximos Nodes
→ SFTP_DOWNLOAD - Baixar antes de apagar → SFTP_LIST - Listar para apagar em lote → CONDITION - Verificar sucesso antes de delete