- Substitui xobj._data por page.images[].replace() em compress.py e pdfa.py
- Adiciona compress_with_stats() com feedback honesto na UI
- Trata PDFTOOLKIT_API_KEY vazia como modo dev (auth desabilitado)
- Atualiza engine.py e app.py para exibir redução real ou 'já otimizado'
- core/auth.py: API Key auth via header X-API-Key (env PDFTOOLKIT_API_KEY)
- Modo dev: sem chave configurada → acesso livre
- Modo produção: exige chave, retorna 401/403
- api.py: endpoints protegidos com Depends(_auth_required)
- /health e / permanecem públicos
- Dockerfile: multi-stage (base → api → web)
- docker-compose.yml: api + web com healthcheck, volumes e rede
- .env.example: template de variáveis de ambiente
- README.md: seções de autenticação e Docker