VC / ENGINEERING
← BUILD

Backend / TypeScript · Notion · OAuth

gastandoya-api

Integrações que respeitam fronteiras.

Backend do GastandoYa com OAuth Notion, descoberta de databases e leitura normalizada de despesas.

Problema

Conectar contas Notion distintas e normalizar despesas para um app iOS.

Minha contribuição

Desenvolvimento e manutenção do projeto pessoal.

Explorar código ↗

THE PIPELINE / SYSTEM MAP

gastandoya-api

Do OAuth por usuário às despesas normalizadas para o app iOS.

Etapa 1 / 6

App iOS

Iniciar autorização e consumir os endpoints do backend com os cabeçalhos documentados.

Etapa 2 / 6

Backend & OAuth

Iniciar autorização, validar state no callback e trocar o code por token no servidor.

Etapa 3 / 6

Conexão por usuário

UserNotionConnectionStore usa KV quando configurado ou memória como fallback. Tokens não seguem para o cliente.

Etapa 4 / 6

Database discovery

Descobrir databases via Blocks API ou Search API e lidar com paginação e seleção.

Etapa 5 / 6

Serviço de despesas

Consultar o database selecionado e normalizar registros no formato ExpenseDTO.

Etapa 6 / 6

ExpenseDTO → iOS

O app recebe dados normalizados; o callback OAuth retorna pelo deep link intermediário.

Conexões ficam no servidor; o cliente consome um contrato de despesas.

Conexões e condições
  • App iOS → Backend & OAuthAutoriza a conexão
  • Backend & OAuth → Conexão por usuárioArmazena token no servidor
  • Conexão por usuário → Database discoveryFornece conexão Notion
  • Database discovery → Serviço de despesasDatabase configurado
  • Serviço de despesas → ExpenseDTO → iOSNormaliza a resposta
  • ExpenseDTO → iOS → App iOSExibe as despesas

Percurso ilustrativo dos componentes documentados, sem execução dos projetos. Fontes consultadas em 2026-10-28.

Explore os componentes ou reproduza o percurso.

Explorar todas as arquiteturas ↗

Decisão de engenharia

Conexões por usuário ficam no backend; o cliente recebe dados normalizados.

Trade-off

Discovery e paginação exigem lidar com páginas sem database ou com múltiplas opções.

Evidência

O backend oferece conexão OAuth por usuário, descoberta de databases e retorno normalizado de despesas; o README documenta o fluxo de integração com iOS.

Documentação do projeto ↗