Aparência
Novidades do Integrador DNS
Últimas 11 versões. Versão atual: v2.18.7 (2026-05-11).
v2.18.7 — 2026-05-11
INTEGRADOR_DOMAIN=vazio quebrava Caddy — quandoinstall.shrodava semINTEGRADOR_DOMAIN, gravavaINTEGRADOR_DOMAIN=(string vazia) no.env. O Caddyfile usa{$INTEGRADOR_DOMAIN:localhost}como fallback, m…- Senha do Postgres dessincronizada em reinstalls —
install.shmovia a instalação antiga inteira pra.bak-<ts>(incluindo o.envcom os secrets) e gerava.envnovo com senha aleatória diferente. Mas o volum…
v2.18.6 — 2026-05-11
- Caddyfile com vhosts de outros projetos — o Caddyfile do Integrador-DNS continha vhosts pra
license.integrador.com.br(Integrador License) eintegrador.com.br/www.integrador.com.br(site comercial). Resíduo do … - Hostname
dns2.starfibra.com.brhardcoded — substituído por{$INTEGRADOR_DOMAIN:localhost}. Em instalações ondeINTEGRADOR_DOMAINé setado no.env, Caddy emite Let's Encrypt automaticamente. Sem domínio, cai p… - Bind mounts órfãos — removidos
/home/python/Integrador-Site:/var/www/integrador-site:ro(site comercial do dev) e./releases:/var/www/integrador-releases:ro(releases do License). Em CT cliente esses caminhos não… install.shagora gravaINTEGRADOR_DOMAINno.env— antes só era usado em tempo de install praALLOWED_ORIGINS; agora também sobrevive em reinicializações pro Caddy ler.
v2.18.5 — 2026-05-11
- Colisão de ULA IPv6 entre docker0 e dns_net —
install.shconfigurava o daemon Docker comfixed-cidr-v6=fd00:dead:beef::/64e odns_nettambém pedia exatamente essa ULA, gerando `invalid pool request: Pool overl…
v2.18.4 — 2026-05-11
newServerdo dnsdist exige IP literal — a v2.18.3 tentou usar nomes de serviço Docker (pdns-recursor:53), masdnsdist.newServer()não resolve hostnames e fatalava comUnable to convert presentation address. S…LogResponseActioncrashava dnsdist em loop em CT recém-criado — o arquivo/etc/dnsdist/integrador-export/dnsdist/dns_responses.lognão existe num volumeintegrador_backupsvazio, gerandoFatal Lua error. Adic…
v2.18.3 — 2026-05-11
- IPs hardcoded no docker-compose —
pdns-recursor,pdns-recursor-2ednsdisttinhamipv4_addressfixos (172.32.0.10/11/12). Combinado com a subnet livre da v2.18.2, isso falhava com `invalid endpoint settings…
v2.18.2 — 2026-05-11
- Conflito de subnet em CT com Docker pré-existente —
docker-compose.ymlforçavasubnet: 172.32.0.0/24na rededns_net. Em CT que já tinha outras redes Docker, esse pool sobrepunha e abortavadocker compose up…
v2.18.1 — 2026-05-11
- Instalação em CT limpo —
docker-compose.ymlreferenciava rede externaservusapp_exclusive_app_internal(integração local com Servus App), o que abortavadocker compose upno passo 5/6 doinstall.shem qualque…
v2.18.0 — 2026-05-11
- Gate de licença no login do painel (routes.py) — bloqueia
/auth/logine/auth/refreshquando a licença remota estásuspended,canceled/revokedouexpired_hard. Tolerante a offline. NUNCA afeta DNS res… - Fresh check no login — toda tentativa de login dispara
check_once(timeout=3s)síncrono contra o central. Bloqueio/cancelamento no Integrador License propaga em segundos, não em 6h. - Janela de carência de 3 dias (
LICENSE_GRACE_DAYS = 3) — se o central ficar inalcançável > 3 dias, bloqueia o painel (suspeita de pirataria/manipulação de rede). Dentro da janela, libera (central pode estar caído). - Coluna
last_successful_check_atemlicense_info+ migration idempotente. Atualizada SÓ quando o central responde 200. - Endpoint enriquecido
GET /api/v1/license/remote— agora retorna campogracecommax_days,days_offline,days_until_block,in_grace_window,will_block_soon. - Aviso no painel
/licenca— banner amarelo durante a carência, vermelho no último dia, com instrução pra verificar conectividade com o central. - Audit log
login_blocked_by_license— registra IP + motivo quando o gate barra um login. - Página
/licencamobile-friendly — CSS class +@media (max-width: 640px): grids viram 1 coluna, badge/botões empilham, fonts reduzem, form vira coluna única, action buttons full-width. - Sanitização de
remote_api_url—urlparseforça sóscheme://netloc. Era possível salvar a URL do webhook (https://license.integrador.com.br/webhook/license/activate) como base da API por engano, e o validate b… - Worker periódico de validação reduzido pra 30 min (era 6h) — propaga atualizações de status pra sessões ativas mais rápido sem depender de novo login.
INTEGRADOR_VERSION = "2.18.0"emversion_info.pyefrontend/package.json.- Migration
ADD COLUMN IF NOT EXISTS last_successful_check_at TIMESTAMProda no startup. Servidores upgradando de 2.17 ou anterior pegam a coluna na primeira boot.
v2.16.1 — 2026-05-10
- Excluir usuário (
DELETE /users/{id}) na página Usuários — botão "Excluir" ao lado de Editar/Senha. Confirmação dupla: usuários comuns têm prompt simples; administradores exigem digitarEXCLUIRpra confirmar. Back… - Olhinho de senha 👁️/🙈 no LoginPage — toggle type=password ↔ text via botão no campo. Mesma feature já existia em Minha Conta/Usuários, agora também no login.
- Página Usuários responsiva — em mobile (≤640px) renderiza como cards stacked (nome + role + status + ações em grid 3-colunas) ao invés da tabela horizontal apertada.
- PG enxuto: −4 GB via
DROPde 7 índices ociosos (idx_dnsqlp_source_port/source_ip/domain/request_id/record_type/result+idx_dns_query_logs_block_reason, todos comidx_scan=0) e `DROP TABLE dns_query_logs_lega… - PG tunado:
shared_buffers=512MB,work_mem=16MB,effective_cache_size=2GB,maintenance_work_mem=128MB,random_page_cost=1.1,max_wal_size=2GB.shm_size: 256mb(era 64 MB padrão — estourava em VACUUM/para… - Backend mais leve: pool SQLAlchemy 20+20 → 10+10 (poupa ~30 conns reservadas);
mem_limit: 4G → 1G(uso real 138 MiB);PYTHONUNBUFFERED=1+PYTHONDONTWRITEBYTECODE=1. - Disco: −4 GB apagando 14 snapshots antigos em
backups-pre-v2.0/(mantidos 3 mais recentes — v2.12/v2.13/v2.16),backups-pre-rotacao/(16 MB) eintegrador-dns-aio.tar.gz(216 MB). - Reorganização: shell scripts movidos pra
scripts/;infra/{vector.toml,logs-centralized.example.yml}→infra/observability/. - Dead code removido:
app/services/dns_access_runtime.py(208 linhas, zero imports),DDoSAIConfigUpdateschema não usado, 4 páginas frontend órfãs (DashboardBloqueiosPage,DiagnosticoPage,LatenciaDnsPage, `N… README.mdreescrito (estrutura real do projeto, comandos atuais, scripts/observability, compliance)..env.exampleampliado com 13 variáveis faltantes (LOGIN_MAX_ATTEMPTS, REDIS_URL, DNSDIST_API_KEY, SMTP_, INTEGRADOR_LOG_JSON, OTEL_, BACKUP_S3_*)..gitignoreatualizado (backups-pre-v2.0/,*.tar.gz).
v2.7.1 — 2026-05-10
v2.9.1 — 2026-05-10
- VersionBadge no mobile não abria visível — popover usava
position: absoluteherdando z-index do topbar e ficava atrás de outros elementos. Agoraposition: fixedcom backdrop + z-index 9999 e fecha com ESC ou cliq…
