Visão geral de aplicativos
Um aplicativo da owiew é um sistema seu, hospedado por você, que conversa com a owiew por API e por webhook. Nenhum código seu roda dentro da owiew.
O modelo
Seção intitulada “O modelo”O aplicativo é um sistema externo com dois canais, que podem ser usados juntos ou separados:
- Entrada (webhook de saída da owiew): a owiew envia eventos assinados para uma URL https do seu sistema. Seu sistema só precisa receber e verificar a assinatura. Um aplicativo que só faz isso é chamado de receptor e nunca tem credencial para chamar a owiew.
- Leitura (API de apps): o seu backend obtém um token de curta duração e chama a rota
/apps/v1. Esse aplicativo usa o fluxo OAuth e tem credencial própria.
Os dois canais usam o mesmo vocabulário de escopos. O escopo concedido pelo administrador autoriza a rota da API e o evento de webhook que o exige.
A loja é a página Aplicativos dentro de cada projeto. Ela lista os aplicativos que o projeto pode instalar e os que já estão instalados.
- Privado por padrão. Todo aplicativo nasce privado. Ele só aparece na loja de uma empresa ou de um projeto que esteja na lista de destinos autorizados do aplicativo. Quem não está na lista não vê o aplicativo, e a owiew responde ao pedido como se ele não existisse.
- Instalação por consentimento. Um administrador do projeto instala o aplicativo e confere, numa tela própria, o que ele pede: projetos, escopos com o texto de cada um, risco e aviso de dados pessoais. Nada acontece antes do consentimento.
- Controle do cliente. O administrador desinstala quando quiser, e o aplicativo perde o acesso em poucos minutos.
Uma instalação, vários projetos
Seção intitulada “Uma instalação, vários projetos”Uma instalação pode abranger vários projetos do mesmo administrador. Os escopos pertencem à instalação e valem para todos os projetos consentidos. O recorte por projeto vem do token (na leitura) e do campo projeto_id do evento (no webhook). Cada token vale para exatamente um projeto.
O que está disponível hoje
Seção intitulada “O que está disponível hoje”| Parte | Estado |
|---|---|
| Troca de credencial por token de app, com verificação offline pela chave pública | Disponível |
Rota GET /apps/v1/instalacao |
Disponível |
| Instalação por consentimento, desinstalação e aplicativo receptor | Disponível |
| Webhook assinado: assinatura, repetição, idempotência e proteção contra SSRF | Disponível |
Evento de teste instalacao.teste.v1 |
Disponível |
Eventos de dados (projeto.metricas.diarias.v1, conversao.registrada.v1, relatorio.publicado.v1) |
Planejado: estão no catálogo, mas ainda não podem ser assinados |
Rotas de leitura de dados em /apps/v1 além de instalacao |
Planejado |
| Portal do desenvolvedor com cadastro por conta própria | Planejado |
As páginas marcam como planejado tudo o que ainda não funciona. Não escreva código contra o que está marcado assim.