Visão geral
O TermoMCP é um app da Termotubos no padrão de projeto da empresa. Hoje ele tem só a base: o login pelo TermoAuth, o cadastro de colaboradores com permissões e um painel com o menu lateral vazio, pronto para receber as próximas features.
O sistema tem duas metades:
| Parte | Endereço em dev | O que faz |
|---|---|---|
| Frontend (SvelteKit) | http://localhost:51060 | O painel dos colaboradores (/painel) e a landing page |
| Backend (Rust + Axum) | http://localhost:51061 | A API |
| PostgreSQL (Docker) | localhost:51069 | Banco do app, no schema termomcp |
O que existe no backend
| Feature | Rotas | O que faz |
|---|---|---|
auth | /auth, /auth/acesso | Quem pode entrar: e-mail, perfil colaborador, ativo e o vínculo com o TermoAuth |
colaborador | /colaborador | Cadastro dos colaboradores (nome, telefone, cargo) |
auth_permissao | /auth_permissao | Permissões de ler, criar, editar e deletar por área (hoje só colaboradores) |
Todas seguem as 7 operações do padrão (criar, buscarPeloId, buscarPeloFiltro, buscarPaginador, buscarAutoComplete, atualizarPeloId, deletarPeloId).
Acesso
O login é do TermoAuth (app termo-mcp): o frontend manda a pessoa para o /handoff do TermoAuth, recebe o JWT em /painel#token= e o envia em Authorization: Bearer a toda chamada. O backend valida o token offline pelo JWKS do TermoAuth e libera só quem tem cadastro ativo na tabela auth. Master do TermoAuth entra sem cadastro prévio. Não existe senha no TermoMCP.
Rodando localmente
| Serviço | Porta | Como subir |
|---|---|---|
| Frontend | 51060 | Configuração frontend do .claude/launch.json |
| Backend | 51061 | Configuração backend do .claude/launch.json |
| Documentação | 51062 | Configuração docs-projeto do .claude/launch.json |
| Diagrama do banco (ERD) | 51063 | Configuração database-erd do .claude/launch.json |
| Drizzle Studio | 51064 | Configuração database-studio do .claude/launch.json |
| PostgreSQL | 51069 | docker compose up -d na raiz |
Esta é a primeira página da documentação do TermoMCP. As próximas páginas entram em docs/projeto/src/routes/docs/<pagina>/+page.md, e o menu lateral é definido em docs/projeto/src/navegacao.json.