Files
pdf-toolkit/healthz.py
CM Consultor f16c53bd4c feat: add API Key authentication, Dockerfile, and docker-compose
- 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
2026-08-09 02:38:19 +00:00

25 lines
1.1 KiB
Python

"""Adiciona endpoint /healthz para healthcheck do Docker."""
import streamlit as st
# O Streamlit não tem roteamento nativo, mas podemos expor via
# arquivo estático. Para healthcheck do Docker, usamos o seguinte
# truque: endpoint /healthz no mesmo host.
# Como Streamlit não permite criar rotas customizadas, o healthcheck
# será feito via HTTP na própria API (mais confiável).
# Esta função é apenas um placeholder para documentação.
"""
Healthcheck do container web (Streamlit):
O Streamlit não expõe endpoints HTTP customizados nativamente.
Para o healthcheck do Docker, usamos:
test: ["CMD", "python", "-c", "import http.client; conn=http.client.HTTPConnection('localhost:8550'); conn.request('GET','/'); r=conn.getresponse(); exit(0 if r.status==200 else 1)"]
Isso verifica se o servidor Streamlit está respondendo na porta 8550.
"""
# Adiciona uma página de health no sidebar para debug
def show_health_page():
st.set_page_config(page_title="Health Check", page_icon="💚")
st.write("✅ pdf-toolkit web is running")
if __name__ == "__main__":
show_health_page()