Spaces:
Running
Running
metadata
title: Mesa React
emoji: 🌖
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
MESA Frame (FastAPI + React)
Rearquitetura do app MESA com:
backend/em FastAPIfrontend/em React (Vite)- Reuso do core estatistico e de negocio original (elaboracao + visualizacao)
Estrutura
backend/app/main.py: inicializacao da APIbackend/app/api/: rotas de sessao, elaboracao e visualizacaobackend/app/services/: orquestracao dos fluxosbackend/app/core/elaboracao: core de elaboracao reaproveitadobackend/app/core/visualizacao: core de visualizacao reaproveitadofrontend/src: interface React
Backend
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
./run_backend.sh
API: http://localhost:8000
Swagger: http://localhost:8000/docs
Frontend
cd frontend
npm install
npm run dev
Frontend: http://localhost:5173
Para apontar para outro backend:
VITE_API_BASE=http://localhost:8000 npm run dev
Repositório de modelos .dai
Os modelos usados em Pesquisa, Elaboração (carregar modelo existente) e Visualização (carregar modelo existente) podem vir de duas fontes:
local(pasta do projeto)hf_dataset(dataset no Hugging Face)
Variáveis de ambiente do backend:
MODELOS_REPOSITORIO_PROVIDER(localouhf_dataset)MODELOS_REPOSITORIO_LOCAL_DIR(opcional, quandolocal)MODELOS_REPOSITORIO_HF_REPO_ID(ex.:gui-sparim/repositorio_mesa)MODELOS_REPOSITORIO_HF_REVISION(ex.:main)MODELOS_REPOSITORIO_HF_SUBDIR(ex.:modelos_dai)HF_TOKEN(opcional para dataset privado)
Regra automática de provider:
- Em runtime HF Spaces (
SPACE_ID/SPACE_AUTHOR_NAME/HF_SPACE_ID), o backend forçahf_dataset. - Fora do HF Spaces, o fallback continua
localquando o provider não é informado.
No modo hf_dataset, o backend consulta a revisão atual do dataset e só
sincroniza novamente quando detectar mudança de revisão.
Login simples
O app exige autenticação para qualquer rota /api (exceto health e login).
- Endpoint de login:
POST /api/auth/logincomusuarioematricula - O frontend usa token no header
X-Auth-Token - Usuários padrão:
backend/app/core/auth/usuarios.json
Variáveis opcionais:
APP_USERS_FILEpara apontar um JSON alternativo de usuáriosAPP_USERS_JSONpara injetar o JSON via secret/variável de ambiente
Logs de auditoria
Logs são gravados em JSONL por escopo:
authrepositorioelaboracaovisualizacao
Comportamento por ambiente:
- Local (
MODELOS_REPOSITORIO_PROVIDER=local): logs desativados. - Produção HF (
MODELOS_REPOSITORIO_PROVIDER=hf_dataset): logs gravados e lidos no dataset, emlogs/.
Variável opcional:
APP_LOGS_MODE(auto/enabled/disabled) para forçar o modo de logs.