Ferramentas reutilizáveis, modulares e sanitizadas (nenhum segredo no código — tudo por parâmetro ou variável de ambiente). Importe só o módulo que precisar; combine-os nas integrações.
| Módulo | O que faz | Deps |
|---|---|---|
proc |
run() (captura), stream() (linha a linha ao vivo), stream_sse() (formato Server-Sent Events) |
stdlib |
ssh |
classe SSH (context manager): run, put, get, get_resilient (resume/retry); + run_on_hosts() |
paramiko |
mysql_db |
classe MySQL: query, exists, execute — sempre parametrizado (anti SQL injection) |
mysql-connector / PyMySQL |
docker_fleet |
containers, container_ips, ip_range, exec_in, control, fleet_exec |
binário docker |
netcheck |
ping, port_open, http_ok |
stdlib (+requests opcional) |
watchdog |
is_running, watch (religa serviço caído), prune_old_files (limpa por idade, c/ dirs ignorados) |
stdlib |
config |
load_ini, env(required=), mask (mascara segredo p/ log) |
stdlib |
crypto |
hash_senha/conferir_senha (bcrypt), gerar_senha (forte + md5 legado), read_keepass |
bcrypt / pykeepass |
archive |
zip_file, zip_dir, unzip, md5_file, recombine_parts (junta partes do split validando MD5) |
stdlib |
logutil |
escrever_log, FileLogger (log em arquivo com timestamp) |
stdlib |
github_backup |
backup_repo (clona repo de org/user + zip; token por parâmetro/ENV) |
git (+PyGithub opcional) |
pfsense |
PFSenseBackup, backup_config (exporta a config XML do pfSense via webGUI) |
beautifulsoup4 |
Os 4 últimos (
archive/logutil/github_backup/pfsense) +get_resilient/recombine_parts/prune_old_files/read_keepassvieram do bkp_api "DataVault" (sistema de backup da JM), generalizados e sanitizados.
sse_script_panel.py— painel web Flask que roda scripts e mostra a saída ao vivo (SSE), com allowlist e login por env. (versão sanitizada do "DOCKER_UPDATE")fleet_update.py— atualização orquestrada de uma frota viadocker_fleet+ssh.uptime_monitor.py— monitor de uptime de endpoints vianetcheck.
from toolkit.proc import stream # leve, sem deps
from toolkit import ssh, mysql_db, docker_fleet # estes têm deps externas
with ssh.SSH("10.0.0.5", user="root", key_filename="~/.ssh/id_ed25519") as s:
print(s.run("uptime"))Instalar deps conforme o uso: pip install -r ../requirements.txt.
- Zero segredo no código — parâmetro ou env (
SSH_PASSWORD,MYSQL_PASSWORD, …). - Módulos independentes — dá pra usar um sem arrastar os outros.
- Queries parametrizadas,
docker execem vez de SSH-no-container, chave SSH > senha.