Visão geral

O TermoBucket é o micro serviço de arquivos da Termotubos. Os apps guardam, listam, baixam e apagam arquivos no Cloudflare R2 pela API de arquivos , cada um com sua chave de acesso; as credenciais do R2 ficam só aqui ( Buckets do R2 ). O painel cadastra os apps, mostra o consumo de cada um e mantém os colaboradores, as permissões e os logs.

O sistema tem duas metades, no padrão de projeto da Termotubos:

ParteEndereço em devO que faz
Frontend (SvelteKit)http://localhost:51120O painel dos colaboradores (/painel) e a landing page
Backend (Rust + Axum)http://localhost:51121A API
PostgreSQL (local)localhost:5432Banco do app, no schema termobucket

O que existe no painel

ÁreaRotaO que faz
Aplicativos/painel/aplicativosCadastro dos apps que usam a API de arquivos: slug, limites de tamanho e tipo, chave de acesso e consumo
Colaboradores/painel/colaboradoresCadastro dos colaboradores e das permissões de ler, criar, editar e deletar
Configurações/painel/configuracoesLogs das requisições à API

Acesso

O login é do TermoAuth: 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 (e-mail, perfil colaborador, ativo e termoauth_id). Não existe senha no TermoBucket.

Rodando localmente

ServiçoPortaComo subir
Frontend51120Configuração frontend do .claude/launch.json
Backend51121Configuração backend do .claude/launch.json
Documentação51122Configuração docs-projeto do .claude/launch.json
Diagrama do banco (ERD)51123Configuração database-erd do .claude/launch.json
Drizzle Studio51124Configuração database-studio do .claude/launch.json
PostgreSQL5432Serviço local do PostgreSQL; .claude/preparar-banco.sh cria o banco e aplica as migrations
Documentação em construção

Esta é a primeira página da documentação do TermoBucket. 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.

Atualizado em 2026/10/09 03:30