Local-first por padrão
Seus workspaces, fontes, issues e chats ficam em
~/.orkestral no disco. Nenhuma conta é necessária para trabalhar.A nuvem conecta seu perfil
Fazer login traz o e-mail e o nome da sua conta para o app, para que saudações, configurações e prompts reflitam quem você é.
O que é local versus nuvem
O app desktop nunca recebe seus tokens de acesso ou de atualização na camada de interface. Apenas seu e-mail e nome passam para a interface. Os tokens permanecem em segundo plano, criptografados em repouso.
- Armazenado localmente
- Vem da nuvem
- Todos os workspaces, fontes (repositórios e pastas), issues, epics e metas.
- Seu histórico de chat com os agentes.
- Seu perfil local (e-mail e nome) em Settings, General.
- Tokens de sessão da nuvem, armazenados criptografados no disco através do armazenamento seguro do sistema operacional.
Como o login funciona
O Orkestral usa o padrão de login de app nativo descrito na RFC 8252. Em vez de incorporar um formulário de login, o app abre seu navegador real, você se autentica lá, e o resultado é entregue de volta ao app desktop em execução. Existem dois caminhos de retorno. O app prefere o caminho loopback porque ele funciona da mesma forma em desenvolvimento e produção. Se o listener loopback não responder, o site recorre a um deep link.Você inicia o login pelo app
O app abre um pequeno listener local em
127.0.0.1 (loopback) e então abre https://orkestral.pro/login?next=desktop no seu navegador padrão.Você se autentica na web
Você faz login ou se cadastra no site do Orkestral Cloud. Todo o tratamento de credenciais permanece no navegador.
A web entrega os tokens de volta
O site primeiro envia sua sessão para o listener loopback. Se ele não responder, recorre ao deep link
orkestral://auth?... (apenas app empacotado).O callback loopback
O caminho loopback é a rota primária e funciona tanto em desenvolvimento quanto em produção.Um listener local em uma porta fixa
Um listener local em uma porta fixa
Quando você inicia o login, o app sobe um listener HTTP vinculado a
127.0.0.1 em uma porta fixa (38427 por padrão). O site é construído para enviar sua sessão para esse endereço exato, então o navegador e o app se encontram no mesmo canal loopback.Apenas o caminho /auth é aceito
Apenas o caminho /auth é aceito
O listener responde a requisições em
/auth e lê access_token e refresh_token da query string. Qualquer outro caminho retorna uma resposta de não encontrado.CORS para que o navegador possa entregar
CORS para que o navegador possa entregar
Ele se fecha sozinho
Ele se fecha sozinho
O listener fica aberto por até cinco minutos enquanto aguarda seu navegador. Clicar em login novamente renova essa janela. Assim que uma sessão válida chega, o listener é desligado imediatamente.
O fallback de deep link
Se o listener loopback não conseguir responder (por exemplo, em um app empacotado onde o listener não foi vinculado), o site recorre ao protocolo personalizadoorkestral://auth?....
O protocolo é registrado para o app empacotado
O protocolo é registrado para o app empacotado
O app empacotado se registra como o handler do esquema
orkestral:// para que o sistema operacional possa rotear o deep link de volta ao app em execução.Por que o dev no macOS pula o registro
Por que o dev no macOS pula o registro
No macOS em desenvolvimento, o app não registra o protocolo. Fazer isso apontaria o esquema para o binário genérico do Electron dentro de
node_modules, e o sistema operacional lançaria um Electron vazio em vez do seu app em execução. Em desenvolvimento, o caminho loopback trata o retorno, e o deep link é reservado para o app empacotado.Windows e Linux em desenvolvimento
Windows e Linux em desenvolvimento
No Windows e no Linux durante o desenvolvimento, o deep link é registrado contra o binário do Electron mais o caminho do seu projeto, e o link é detectado a partir dos argumentos de inicialização.
O que acontece depois que você faz login
Assim que a sessão é verificada, três coisas acontecem no app.Sessão salva
Seu id de conta, e-mail, nome e os dois tokens são armazenados criptografados no disco para que a sessão sobreviva a reinicializações.
Perfil sincronizado
Seu perfil local é atualizado com seu e-mail (sempre) e seu nome (quando presente), para que o app reflita sua conta sem precisar redigitar.
Interface atualizada
A janela principal vem para a frente e a interface é atualizada para mostrar você como conectado.
Cadastre-se para uma nova conta
Você não cria uma conta dentro do app desktop. O cadastro acontece no site durante o mesmo fluxo.Inicie o login pelo app
Clique na ação de login do Cloud. O navegador abre a página de login do Orkestral Cloud.
Como o cadastro roda no seu navegador, você tem a experiência web completa para a criação da conta, incluindo quaisquer etapas de verificação, antes que o app sequer veja sua identidade.
Sair
Sair limpa a sessão armazenada no app e marca o app como desconectado na interface. Seus dados locais permanecem intactos: workspaces, fontes, issues e chats continuam todos no disco em~/.orkestral. O nome e o e-mail do seu perfil local em Settings, General também permanecem como estão.
Solução de problemas
O navegador abriu mas o app não atualizou
O navegador abriu mas o app não atualizou
O login foi concluído na web mas nada aconteceu no app
O login foi concluído na web mas nada aconteceu no app
O callback só é concluído quando carrega ambos os tokens. Inicie o login novamente pelo app para que um listener novo esteja pronto, depois conclua o login na web na mesma sessão.
Uma janela do Electron em branco abriu em vez do app
Uma janela do Electron em branco abriu em vez do app
Este é o caso do deep link em desenvolvimento no macOS. Nessa configuração, o caminho loopback é o que retorna sua sessão. Certifique-se de ter iniciado o login pelo app em execução para que o listener loopback esteja ativo.
O que fazer a seguir
Configure seu perfil
Confirme seu nome e e-mail em Settings para que os agentes se dirijam a você corretamente.
Crie um workspace
Comece a organizar seus repositórios e pastas em um workspace.