Skip to content

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 — quando install.sh rodava sem INTEGRADOR_DOMAIN, gravava INTEGRADOR_DOMAIN= (string vazia) no .env. O Caddyfile usa {$INTEGRADOR_DOMAIN:localhost} como fallback, m…
  • Senha do Postgres dessincronizada em reinstalls — install.sh movia a instalação antiga inteira pra .bak-<ts> (incluindo o .env com os secrets) e gerava .env novo 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) e integrador.com.br/www.integrador.com.br (site comercial). Resíduo do …
  • Hostname dns2.starfibra.com.br hardcoded — substituído por {$INTEGRADOR_DOMAIN:localhost}. Em instalações onde INTEGRADOR_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.sh agora grava INTEGRADOR_DOMAIN no .env — antes só era usado em tempo de install pra ALLOWED_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.sh configurava o daemon Docker com fixed-cidr-v6=fd00:dead:beef::/64 e o dns_net também pedia exatamente essa ULA, gerando `invalid pool request: Pool overl…

v2.18.4 — 2026-05-11 ​

  • newServer do dnsdist exige IP literal — a v2.18.3 tentou usar nomes de serviço Docker (pdns-recursor:53), mas dnsdist.newServer() não resolve hostnames e fatalava com Unable to convert presentation address. S…
  • LogResponseAction crashava dnsdist em loop em CT recém-criado — o arquivo /etc/dnsdist/integrador-export/dnsdist/dns_responses.log não existe num volume integrador_backups vazio, gerando Fatal Lua error. Adic…

v2.18.3 — 2026-05-11 ​

  • IPs hardcoded no docker-compose — pdns-recursor, pdns-recursor-2 e dnsdist tinham ipv4_address fixos (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.yml forçava subnet: 172.32.0.0/24 na rede dns_net. Em CT que já tinha outras redes Docker, esse pool sobrepunha e abortava docker compose up …

v2.18.1 — 2026-05-11 ​

  • Instalação em CT limpo — docker-compose.yml referenciava rede externa servusapp_exclusive_app_internal (integração local com Servus App), o que abortava docker compose up no passo 5/6 do install.sh em qualque…

v2.18.0 — 2026-05-11 ​

  • Gate de licença no login do painel (routes.py) — bloqueia /auth/login e /auth/refresh quando a licença remota está suspended, canceled/revoked ou expired_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_at em license_info + migration idempotente. Atualizada SÓ quando o central responde 200.
  • Endpoint enriquecido GET /api/v1/license/remote — agora retorna campo grace com max_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 /licenca mobile-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 — urlparse forç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" em version_info.py e frontend/package.json.
  • Migration ADD COLUMN IF NOT EXISTS last_successful_check_at TIMESTAMP roda 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 digitar EXCLUIR pra 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 DROP de 7 índices ociosos (idx_dnsqlp_source_port/source_ip/domain/request_id/record_type/result + idx_dns_query_logs_block_reason, todos com idx_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) e integrador-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), DDoSAIConfigUpdate schema não usado, 4 páginas frontend órfãs (DashboardBloqueiosPage, DiagnosticoPage, LatenciaDnsPage, `N…
  • README.md reescrito (estrutura real do projeto, comandos atuais, scripts/observability, compliance).
  • .env.example ampliado com 13 variáveis faltantes (LOGIN_MAX_ATTEMPTS, REDIS_URL, DNSDIST_API_KEY, SMTP_, INTEGRADOR_LOG_JSON, OTEL_, BACKUP_S3_*).
  • .gitignore atualizado (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: absolute herdando z-index do topbar e ficava atrás de outros elementos. Agora position: fixed com backdrop + z-index 9999 e fecha com ESC ou cliq…

Integrador · software para provedores de internet · integradorisp.com.br