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
This commit is contained in:
parent
c2050f311a
commit
479c66d52c
18 changed files with 1205 additions and 38 deletions
|
|
@ -1,7 +1,49 @@
|
|||
# Tauri + Vanilla TS
|
||||
# Sistema de Chamados — App Desktop (Tauri)
|
||||
|
||||
This template should help get you started developing with Tauri in vanilla HTML, CSS and Typescript.
|
||||
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).
|
||||
|
||||
## Recommended IDE Setup
|
||||
## URLs e ambiente
|
||||
|
||||
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
||||
- 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/` (AppImage/deb/msi/dmg conforme SO).
|
||||
|
||||
## 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)
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue