LUA Vision · dev.eden.lua.vision
Rotas & Endpoints
do Eden
O mapa completo do app: páginas, API /v1 e autenticação — extraído dos bundles do client e com corpos, params e headers conferidos na própria API.
40rotas de página
121endpoints mapeados
4hosts
09·10·2026atualizado em
corpo {campos} · campo? = opcional · filtra na hora
Nada encontrado por aqui. Tenta outra palavra?
00
Hosts
dev.eden.lua.vision
O app — Next.js (Turbopack). Telas, fluxo do chaveiro e painéis.
api.dev.eden.lua.vision
A API — /v1/*, /api/auth/* e /api/health (respondendo {"ok":true}).
convidados.eden.lua.vision
Redireciona (307) para dev.eden.lua.vision/chaveiro/[n] — mesmo backend.
lua.vision
Site institucional — termos e privacidade.
01
Páginas do app
Fluxo do chaveiro NFC
- rota/chaveiro/[numero]Validação — lê o
#kdo fragmento e chamaPOST /chaveiro/abrir. - rota/chaveiro/gravarEstação de gravação (Web NFC, Chrome Android) — exige sessão de dono com passkey.
- rota/chaveirosPainel admin dos chaveiros: liberar, mudar dias, CSV.
Navegação principal
- rota/Home — atividades.
- rota/painelIndicadores.
- rota/painel/estimativasEstimado × real.
- rota/aprovacoesCartões de aprovação pendentes.
- rota/chatConversa — respostas em streaming (SSE).
- rota/chat/[conversa]Conversa aberta.
- rota/catalogoCatálogo de ferramentas.
- rota/catalogo/[ferramenta]Detalhe da ferramenta.
- rota/catalogo/funilFunil do catálogo.
- rota/rotinasRotinas / agentes em execução.
- rota/rotinas/[id]Rotina aberta.
- rota/agentesBiblioteca de agentes.
- rota/agentes/[id]Agente aberto.
- rota/codigoCódigo.
- rota/codigo/gitGit da empresa.
- rota/codigo/padroesPadrões de código aprendidos.
- rota/integracoesConexões e integrações.
- rota/integracoes/whatsappPareamento do seu número — "Ligue o seu WhatsApp".
- rota/trilhaTrilha (auditoria).
- rota/conhecimentoBase de conhecimento.
- rota/constituicaoConstituição da organização.
- rota/descobertaDescoberta.
- rota/comece-aquiOnboarding.
- rota/cobrancaCobrança.
- rota/designPolítica de design.
- rota/segurancaSegurança.
- rota/appsApps.
- rota/apps/[id]App aberto.
- rota/anjosAnjos.
- rota/desktopDesktop.
Admin
- rota/admin/equipeEquipe — membros e convites.
- rota/admin/ganchosGanchos de evento (webhooks).
- rota/admin/relatosRelatos da equipe.
- rota/admin/migracaoMigração assistida.
Conta & sessão
- rota/entrarLogin — e-mail e senha, link por e-mail, passkey.
- rota/definir-senhaPágina do link de senha — define a primeira senha ou redefine (30 min, uso único).
- rota/preferenciasPasskey, senha, avisos, ganchos, variantes.
02
API pública do chaveiro
sem sessão — só o que o chip precisa- post/chaveiro/abrirResponde o estado do chaveiro;
404 chaveiro-nao-reconhecidopara par inválido, com rate limit (429).corpo{numero, k} - post/chaveiro/reservarReserva o chaveiro para um cadastro novo.corpo
{numero, k, nome, email, modo: "solo"|"empresa", aceite: true} - get/api/healthHealth check —
{"ok":true}.
03API
mutações mandam
API /v1 — sessão autenticada
mutações mandam Idempotency-Key (UUID)Chaveiros — sessão
- post/v1/chaveiros/entrarEntra num chaveiro com passkey.corpo
{numero, k} - post/v1/chaveiros/confirmarConclui o cadastro.corpo
{numero} - post/v1/chaveiros/vincularVincula o chaveiro à conta.corpo
{numero, k, modo: "solo"|"empresa"} - post/v1/chaveiros/aprovarAprovações pelo chaveiro (quem tem o chip na mão).corpo
{numero, k, approval_id}
Chaveiros — admin (dono)
- get/v1/chaveiros/adminLista todos os chaveiros.
- get/v1/chaveiros/admin/csvCSV com links para gravar em lote.
- patch/v1/chaveiros/admin/configConfigurações globais.corpo
{ativacao_em?, dias_gratis?} - patch/v1/chaveiros/admin/{n}Muda os dias grátis (null volta ao padrão).corpo
{dias_gratis} - post/v1/chaveiros/admin/liberarLibera acesso de todos os reservados.corpo
{} - post/v1/chaveiros/admin/{n}/gravarDevolve o link com
#kpara gravar no chip.corpo{tipo_chip} - post/v1/chaveiros/admin/{n}/conferirConfere o que foi gravado no chip.corpo
{link} - post/v1/chaveiros/admin/{n}/falhaRegistra falha de gravação.corpo
{motivo} - post/v1/chaveiros/admin/{n}/ativarAtiva o chaveiro.corpo
{}
Atividades & execução
- get/v1/activitiesLista as atividades do espaço.params
?space=&state= - post/v1/activitiesCria uma atividade — o
Idempotency-Keyé obrigatório.corpo{space_id, text, fluxo: "revisao"|"conversa"} - get/v1/activities/{id}Detalhe.
- get/v1/activities/{id}/verdicts · /cost · /evidence · /timeVereditos, custo, evidências e passos.
- post/v1/activities/{id}/retomarRetoma a execução.corpo
{} - post/v1/activities/{id}/stopPara a execução (o painel pode mandar
{pausar: true}). - post/v1/activities/{id}/review:accept · review:answer · review:rejectDecisões da revisão (aceitar, responder, rejeitar).
- post/v1/activities/{id}/budget:decideDecide o orçamento da atividade.corpo
{decisao} - post/v1/activities/{id}/divergence:decideResolve divergência.corpo
{decisao, …} - sse/v1/activities/{id}/eventsStream de eventos (EventSource).
- get/v1/calibrationCalibração da semana.params
?week= - get/v1/cost/ledgerLivro de custos.
Aprovações & orçamentos
- get/v1/approvalsCartões de aprovação.params
?estado=abertas… - get/v1/approvals/{id}Detalhe + decisões + ação.
- post/v1/approvals/{id}/decideDecide a aprovação (corpo com a decisão, montado pela UI).
- post/v1/budgetsNo client, mas 404 na API dev no momento do levantamento — ainda não no ar.
- post/v1/budgets/{id}:killIdem: presente no client, 404 no dev.
Chat & voz
- getpost/v1/chat/conversasLista / cria conversa — pode já mandar a primeira mensagem.corpo
{primeiro_texto?} - getpatch/v1/chat/conversas/{id}Abre (detalhe traz
conversation,messages,files,shares,activity) e altera a conversa. - post/v1/chat/conversas/{id}/mensagensEnvia mensagem — devolve
202e a resposta é gerada no stream.corpo{text, anexos?} - sse/v1/chat/conversas/{id}/streamEventos
turno.iniciado/mensagem.pronta(+ ping) — retoma comLast-Event-ID. - get/v1/chat/exemplosSugestões de pergunta para o chat.params
?area= - post/v1/chat/conversas/{id}/atividadeVira atividade (revisão ou conversa).corpo
{mensagem_id?, mode} - getpost/v1/chat/conversas/{id}/anexosAnexos da conversa.
- get/v1/chat/anexos/{id} · /v1/chat/arquivos/{id}Baixa anexo / arquivo.
- post/v1/chat/conversas/{id}/compartilharCompartilha a conversa (corpo montado pela UI).
- post/v1/chat/compartilhamentos/{id}/revogarRevoga o compartilhamento.corpo
{} - getpostpatch/v1/chat/projetosLista, cria e altera projetos.corpo
{space_id, name}(criar) - getpost/v1/chat/fontesFontes do chat — vira fonte ou nota do conhecimento.corpo
{kind: "fonte"|"nota", title, content} - post/v1/chat/fontes/{id}/retirarRetira a fonte.corpo
{} - post/v1/chat/memoria/{id}/esquecerEsquece um item de memória do chat.
- post/v1/chat/voz/falarFala uma mensagem (TTS).corpo
{mensagem_id} - post/v1/chat/voz/transcreverTranscreve áudio.corpo
{audio}
F6 · F7 · F10
- get/v1/f6/funilFunil do catálogo.
- get/v1/f6/funil/delegacoesDelegações do funil.
- post/v1/f6/funil/delegacoes/{id}/revogarRevoga a delegação.corpo
{motivo} - getput/v1/f6/politicasPolíticas por espaço.corpo
{space_id, politica}(put) - post/v1/f6/varrerVarredura do funil.
- get/v1/f6/custosCustos do funil.params
?mes=&formato=csv - get/v1/f7/o-que-a-empresa-veVisão da empresa.
- getpatch/v1/f7/preferenciasMande ao menos um campo.corpo
{trilha?, area?, guia_visto?, aviso_aceito?} - get/v1/f10/estruturasEstruturas (criadas por conversa, não por POST direto).
- post/v1/f10/estruturas/conversaCria a estrutura a partir de um texto.corpo
{space_id, texto} - post/v1/f10/estruturas/{id}/conversa · /rotinaAjusta por conversa ou liga uma rotina.corpo
{texto}·{rotina_id} - get/v1/f10/linha-base · /v1/f10/pessoasLinha de base e pessoas.
- getpost/v1/f10/objetivosObjetivos; abrir um chama
/{id}/ler.corpo{titulo, space_id, …}(criar) - get/v1/f10/indicadores · /v1/f10/estimativasIndicadores e estimativas.params
?filtro=empresa|area|pessoa&id=&dias=·?agrupar=&dias= - post/v1/f10/leituras/{id}/decidirDecide a leitura.corpo
{decisao: "confirmar"|"devolver", motivo} - get/v1/indicadores/qualidadeQualidade dos indicadores.params
?dias=
F11 — WhatsApp
- get/v1/f11/whatsappStatus do WhatsApp do Eden — números, vínculos, fila, grupos, admin e config.
- post/v1/f11/whatsapp/pessoalInicia o pareamento do seu número (sem corpo). Sem vaga livre responde
409 sem-numero-livre— "peça à LUA para liberar mais uma".
Equipe · organizações · times
- get/v1/equipe/membrosMembros da organização.
- post/v1/equipe/convitesConvida alguém.corpo
{email, name, role: "admin"|"construtor"|"negocio"|"dev"|"aprovador"|"auditor"} - post/v1/equipe/membros/{id}/senhaAdmin redefine a senha de um membro (opcionalmente já definindo uma).corpo
{senha}opcional - getpost/v1/equipe/relatosRelatos da equipe.corpo
{rota, o_que_tentou, o_que_aconteceu}·?estado= - patch/v1/equipe/relatos/{id}Muda o estado do relato.
- get/v1/orgs/{org}/spacesEspaços da organização.
- getput/v1/orgs/{org}/constitutionConstituição;
/constitution/versionstraz versões. - getput/v1/orgs/{org}/approval-limitsLimites de aprovação.
- get/v1/timesTimes.
- post/v1/spaces/{id}/times/dev/ativarAtiva o time de dev do espaço.corpo
{} - get/v1/meSessão atual — usuário, orgs (com papel) e
default_org. - patch/v1/me/preferencesMande ao menos um campo.corpo
{appearance?, density?} - post/v1/me/organizacao-pessoalCria a organização pessoal.corpo
{}
Integrações & conexões
- get/v1/connectorsConectores disponíveis.
- get/v1/connectionsConexões ativas.
- post/v1/connections/oauth:startInicia OAuth — devolve
authorize_url.corpo{provider: "google"|"microsoft"|"slack", capabilities: []} - get/v1/connections/{id}/read · /sends · /trailLeituras, envios e trilha da conexão.
- post/v1/connections/{id}/sendsPede um envio pela conexão.
- post/v1/connections/{id}/revokeRevoga a conexão.corpo
{} - post/v1/integration-actions/{id}/sendReenvia uma ação de integração.corpo
{} - post/v1/channels/slack/link-codeVincula Slack — gera o código.corpo
{} - get/v1/channels/slack/linksLinks do Slack.
Ganchos & webhooks
- get/v1/hooks/catalogoCatálogo de eventos.
- getput/v1/hooks/politicaPolítica de ganchos da organização.
- getpost/v1/hooks/webhooksLista / cria webhook (retorna o segredo).corpo
{nome, url, eventos?, escopo: "pessoa"|"organizacao"} - post/v1/hooks/webhooks/{id}/desligarDesliga o webhook.corpo
{} - get/v1/hooks/webhooks/{id}/entregasEntregas do webhook.
- post/v1/hooks/entregas/{id}/reentregarReentrega um evento.corpo
{}
Código
- get/v1/code/projectsProjetos de código.
- post/v1/code/projects/{id}/aprenderAprende com um projeto.corpo
{} - get/v1/code/padroes-aprendidosPadrões aprendidos.params
?project_id= - post/v1/code/padroes-aprendidos/{id}/aceitar · /descartarDecide o padrão (409 se já decidido).corpo
{}
Avisos · memória · busca
- get/v1/avisos/config · /v1/avisos/preferenciasCanais e preferências — push (chave VAPID) e WhatsApp (
disponivel/motivo). - post/v1/avisos/pushAssina push;
/push/encerrarencerra. - getpost/v1/eu/memoriaMemória pessoal — lista e adiciona fatos.corpo
{fato, categoria} - patchdel/v1/eu/memoria/{id}Corrige (
PATCH {fato, categoria}) ou apaga um fato;/esquecermarca como esquecido. - del/v1/eu/memoria?confirmo=apagar-tudoApaga toda a memória pessoal.
- get/v1/busca · /v1/busca/fontesBusca e fontes.
Outros
- get/v1/lua/limitesLimites do Eden.
- get/v1/audit/verifyVerificação da trilha.
- getpost/v1/anjosAnjos;
/{id}/execucoestraz execuções,/{id}/{acao}controla (pausar, rodar…).corpo{project_id, tipo: "revisar_prs"|"atualizar_dependencias"|"vigiar_seguranca"}(criar)
04
Autenticação — Better Auth
cookies de sessão ·/api/auth/*Core
- post/api/auth/sign-in/emailEntra com senha — devolve sessão (cookie) e abre o app.corpo
{email, password, callbackURL?} - post/api/auth/sign-up/emailCria a conta.corpo
{name, email, password} - post/api/auth/sign-in/magic-linkLink mágico de entrada (10 min, uso único). Responde
{"status":true}para qualquer e-mail (anti-enumeração).corpo{email, callbackURL?} - post/api/auth/request-password-resetO "Esqueci / definir minha senha" — link de uso único (30 min) que abre
/definir-senha. Serve para a primeira senha e para redefinir.corpo{email, redirectTo} - post/api/auth/reset-passwordGrava a senha nova a partir do token do link.corpo
{newPassword, token} - post/api/auth/change-passwordTroca de senha logado — a UI fica em
/preferencias. Exige a senha atual.corpo{currentPassword, newPassword, revokeOtherSessions?} - get/api/auth/list-accountsContas vinculadas à pessoa.
- post/api/auth/sign-out · /update-user · /update-sessionEncerra a sessão e atualiza dados/sessão.
- post/api/auth/change-email · /verify-emailTroca e verifica o e-mail.
- post/api/auth/revoke-session · /revoke-sessions · /revoke-other-sessions · /delete-userRevoga sessões e exclui a conta.
/get-session(GET) lê a sessão.
Passkey (WebAuthn)
- post/api/auth/passkey/generate-register-options → verify-registration → registerCadastro de passkey — cria no aparelho (Face ID / Touch ID).
- post/api/auth/passkey/generate-authenticate-options → verify-authentication → authenticateEntrada com passkey.
- getpost/api/auth/passkey/list-user-passkeys · /delete-passkey · /update-passkeyGestão das passkeys da conta.
05
Notas de levantamento
Fonte: bundles do client (Next.js · Turbopack) de
dev.eden.lua.vision, validação real na API (os erros listam campos obrigatórios e enums) e uma captura de tráfego real do app (09/10, 11:49–11:55).Convenções:
{campo?} = opcional · {campo: "a"|"b"} = valores aceitos · {} = corpo vazio aceito. Métodos explícitos vêm do client; onde o corpo aparece como "montado pela UI", não há schema fixo.Headers: confirmado no tráfego real do app —
x-eden-org (id da organização) em toda chamada e Idempotency-Key (UUID) nas mutações (obrigatório em POST /v1/activities). O CORS libera content-type, idempotency-key, x-eden-org, last-event-id, x-request-id — o last-event-id é para retomar os streams SSE.Ainda não no ar (dev):
/v1/budgets (GET e POST) e /v1/budgets/{id}:kill respondem 404 — estão no client, mas fora da API no momento do levantamento. /api/auth/forget-password também não existe: o caminho real é request-password-reset.Chaveiro: o segredo
k vive no fragmento do link (#k=…) e nunca chega ao servidor por URL — a API pública só expõe abrir e reservar, com rate limit.Escopo: documento informal de navegação do código — sem tokens, senhas ou dados sensíveis. Corpos conferidos em 09/10/2026.