- App FastAPI (main.py, app/): rotas /health e /dados_retorno, middleware anti-scanner, logging configurado - Config via configs.json (Pydantic); segredos fora do codigo e do git (.gitignore) - Dockerfile (oracledb thin, HEALTHCHECK) + requirements.txt + .dockerignore - Deploy Podman/Quadlet + Caddy em deploy/ - Docs: CLAUDE.md + docs/ (arquitetura, deploy, known-issues) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
772 B
Python
45 lines
772 B
Python
from pathlib import Path
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class BancoConfig(BaseModel):
|
|
user: str
|
|
password: str
|
|
dns: str
|
|
instant_client: str
|
|
|
|
|
|
class HolmesConfig(BaseModel):
|
|
token_api: str
|
|
usuario: str
|
|
senha: str
|
|
|
|
|
|
class ApolloConfig(BaseModel):
|
|
subscription_key: str
|
|
ambiente: str
|
|
|
|
|
|
class ApiConfig(BaseModel):
|
|
port: int
|
|
ambiente: str
|
|
workers: int
|
|
|
|
|
|
class DocsConfig(BaseModel):
|
|
user: str
|
|
password: str
|
|
|
|
|
|
class Settings(BaseModel):
|
|
banco: BancoConfig
|
|
holmes: HolmesConfig
|
|
api: ApiConfig
|
|
apollo: ApolloConfig
|
|
docs: DocsConfig
|
|
log_level: str = "INFO"
|
|
|
|
|
|
_PATH = Path(__file__).resolve().parent.parent / "configs.json"
|
|
settings = Settings.model_validate_json(_PATH.read_text(encoding="utf-8"))
|