|
All checks were successful
Usa window.location.href com URL do Tauri em vez de API inexistente 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .vscode | ||
| docs | ||
| public | ||
| scripts | ||
| service | ||
| src | ||
| src-tauri | ||
| .env.example | ||
| .gitignore | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Sistema de Chamados — App Desktop (Tauri)
Cliente desktop (Tauri v2 + Vite) que:
- Coleta perfil/métricas da dispositivo via comandos Rust.
- Registra a dispositivo com um código de provisionamento.
- Envia heartbeat periódico ao backend (
/api/machines/heartbeat). - Redireciona para a UI web do sistema após provisionamento.
- Armazena o token da dispositivo com segurança no cofre do SO (Keyring).
- Exibe abas de Resumo, Inventário, Diagnóstico e Configurações; permite “Enviar inventário agora”.
URLs e ambiente
- Em produção, o app usa por padrão
https://tickets.esdrasrenan.com.br. - Em desenvolvimento, use
apps/desktop/.env(copiado do.env.example):
VITE_APP_URL=http://localhost:3000
# Opcional: se vazio, usa o mesmo do APP_URL
VITE_API_BASE_URL=
Comandos
- Dev (abre janela Tauri e Vite em 1420):
bun run --cwd apps/desktop tauri dev
- Build frontend (somente Vite):
bun run --cwd apps/desktop build
- Build executável (bundle):
bun run --cwd apps/desktop tauri build
Saída dos pacotes: apps/desktop/src-tauri/target/release/bundle/.
Windows (NSIS) — instalação e dados
- Instalador NSIS com suporte a “perMachine” (Arquivos de Programas) e diretório customizável (ex.:
C:\Raven). - Atalho é criado na Área de Trabalho apontando para o executável instalado.
- Dados do app (token/config) ficam em AppData local do usuário (via
@tauri-apps/plugin-storecomappLocalDataDir).
NSIS — Idiomas e modo de instalação
- Idioma: o instalador inclui Português do Brasil e exibe seletor de idioma.
- Arquivo:
apps/desktop/src-tauri/tauri.conf.json:54→"displayLanguageSelector": true - Arquivo:
apps/desktop/src-tauri/tauri.conf.json:57→"languages": ["PortugueseBR"] - Comportamento: usa o idioma do SO; sem correspondência, cai no primeiro da lista.
- Referência de idiomas NSIS: NSIS “Language files/PortugueseBR”.
- Arquivo:
- Modo de instalação: Program Files (requer elevação/UAC).
- Arquivo:
apps/desktop/src-tauri/tauri.conf.json:56→"installMode": "perMachine" - Alternativas:
"currentUser"(padrão) ou"both"(usuário escolhe; exige UAC).
- Arquivo:
Build rápido e leve em dev:
bun run --cwd apps/desktop tauri build --bundles nsis
Assinatura do updater (opcional em dev):
$privB64 = '<COLE_SUA_CHAVE_PRIVADA_EM_BASE64>'
$env:TAURI_SIGNING_PRIVATE_KEY = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($privB64))
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD = 'SENHA_AQUI'
bun run --cwd apps/desktop tauri build --bundles nsis
Pré‑requisitos Tauri
- Rust toolchain instalado.
- Dependências nativas por SO (webkit2gtk no Linux, WebView2/VS Build Tools no Windows, Xcode CLT no macOS). Consulte https://tauri.app/start/prerequisites/
Fluxo (resumo)
- Ao abrir, o app coleta o perfil da dispositivo e exibe um resumo.
- Informe o “código de provisionamento” (chave definida no servidor) e confirme.
- O servidor retorna um
machineToken; o app salva e inicia o heartbeat. - O app abre
APP_URL/machines/handshake?token=...no WebView para autenticar a sessão na UI. - Pelas abas, é possível revisar inventário local e disparar sincronização manual.
Segurança do token
- O
machineTokené salvo no cofre nativo do SO via plugin Keyring (Linux Secret Service, Windows Credential Manager, macOS Keychain). - O arquivo de preferências (
Store) guarda apenas metadados não sensíveis (IDs, URLs, datas).
Suporte
- Logs do Rust aparecem no console do Tauri (dev) e em stderr (release). Em caso de falha de rede, o app exibe alertas na própria UI.
- Para alterar endpoints/domínios, use as variáveis de ambiente acima.