sistema-de-chamados/apps/desktop
2025-10-15 20:45:25 -03:00
..
.vscode feat: adicionar painel de máquinas e autenticação por agente 2025-10-07 21:37:41 -03:00
docs docs: adiciona guia de CI/CD web e desktop 2025-10-08 00:35:24 -03:00
public Atualiza desktop para versão 0.1.6 2025-10-13 21:08:37 -03:00
scripts fix: permitir tauri build em windows 2025-10-10 22:29:49 -03:00
src Implement company provisioning codes and session tweaks 2025-10-15 20:45:25 -03:00
src-tauri Windows inventory: add osInfo fallback from sysinfo; portal detail spacing + subcategory 2025-10-14 23:15:11 -03:00
.env.example feat(desktop-agent,admin/inventory): secure token storage via keyring; extended inventory collectors per OS; new /api/machines/inventory endpoint; posture rules + tickets; Admin UI inventory with filters, search and export; docs + CI desktop release 2025-10-09 22:08:20 -03:00
.gitignore feat: adicionar painel de máquinas e autenticação por agente 2025-10-07 21:37:41 -03:00
index.html feat(desktop): add Tauri updater (GitHub Releases), updater UI button, hide PowerShell windows; fix Windows inventory arrays and activation; improve metrics parsing; branding rename to Raven across app; avoid localhost fallback in auth-server; inject APP_URL/AUTH_URL in stack 2025-10-10 20:39:39 -03:00
package.json fix: reparar build do desktop tauri 2025-10-10 22:28:35 -03:00
README.md desktop/windows: ajustar NSIS (perMachine, escolher diretório, atalho) e mover store para AppData 2025-10-14 15:09:54 -03:00
tsconfig.json feat(desktop): migra abas do Tauri para shadcn/Radix Tabs, adiciona status badge e botão 'Enviar inventário agora'\n\nfix(web): corrige tipo do DetailLine (classNameValue) para build no CI\n\nchore(prisma): padroniza fluxo local DEV com DATABASE_URL=file:./prisma/db.dev.sqlite (db push + seed)\n\nchore: atualiza pnpm-lock.yaml após dependências do desktop 2025-10-10 11:56:48 -03:00
vite.config.ts docs: registrar fluxo do updater e atualizar chaves 2025-10-12 04:06:29 -03:00

Sistema de Chamados — App Desktop (Tauri)

Cliente desktop (Tauri v2 + Vite) que:

  • Coleta perfil/métricas da máquina via comandos Rust.
  • Registra a máquina 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 máquina 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):
    • pnpm -C apps/desktop tauri dev
  • Build frontend (somente Vite):
    • pnpm -C apps/desktop build
  • Build executável (bundle):
    • pnpm -C 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-store com appLocalDataDir).

Build rápido e leve em dev:

pnpm -C 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'
pnpm -C apps/desktop tauri build --bundles nsis

Prérequisitos Tauri

Fluxo (resumo)

  1. Ao abrir, o app coleta o perfil da máquina e exibe um resumo.
  2. Informe o “código de provisionamento” (chave definida no servidor) e confirme.
  3. O servidor retorna um machineToken; o app salva e inicia o heartbeat.
  4. O app abre APP_URL/machines/handshake?token=... no WebView para autenticar a sessão na UI.
  5. 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.