feat: dispositivos e ajustes de csat e relatórios
This commit is contained in:
parent
25d2a9b062
commit
e0ef66555d
86 changed files with 5811 additions and 992 deletions
|
|
@ -59,28 +59,28 @@ Este documento consolida as mudanças recentes, o racional por trás delas e o p
|
|||
- “Bring convex.json from live app if present” (usa o arquivo de link do projeto em `/srv/apps/sistema`).
|
||||
- “convex env list” e “convex deploy” com `CONVEX_SELF_HOSTED_URL` + `CONVEX_SELF_HOSTED_ADMIN_KEY`.
|
||||
|
||||
## 4) Troca de colaborador / reaproveitamento de máquina
|
||||
## 4) Troca de colaborador / reaproveitamento de dispositivo
|
||||
|
||||
Quando um computador muda de dono (ex.: João entrega o equipamento antigo para Maria e recebe uma máquina nova), siga este checklist para manter o inventário consistente:
|
||||
Quando um computador muda de dono (ex.: João entrega o equipamento antigo para Maria e recebe uma dispositivo nova), siga este checklist para manter o inventário consistente:
|
||||
|
||||
1. **No painel (Admin → Máquinas)**
|
||||
- Abra os detalhes da máquina que será reaproveitada (ex.: a “amarela” que passará da TI/João para a Maria).
|
||||
1. **No painel (Admin → Dispositivos)**
|
||||
- Abra os detalhes da dispositivo que será reaproveitada (ex.: a “amarela” que passará da TI/João para a Maria).
|
||||
- Clique em **Resetar agente**. Isso revoga todos os tokens gerados para aquele equipamento; ele precisará ser reprovisionado antes de voltar a reportar dados.
|
||||
- Abra **Ajustar acesso** e altere o e-mail para o do novo usuário (Maria). Assim, quando o agente se registrar novamente, o painel já mostrará a responsável correta.
|
||||
|
||||
2. **Na máquina física que ficará com o novo colaborador**
|
||||
2. **Na dispositivo física que ficará com o novo colaborador**
|
||||
- Desinstale o desktop agent (Painel de Controle → remover programas).
|
||||
- Instale novamente o desktop agent. Use o mesmo **código da empresa/tenant** e informe o **e-mail do novo usuário** (Maria). O backend emite um token novo e reaproveita o registro da máquina, mantendo o histórico.
|
||||
- Instale novamente o desktop agent. Use o mesmo **código da empresa/tenant** e informe o **e-mail do novo usuário** (Maria). O backend emite um token novo e reaproveita o registro da dispositivo, mantendo o histórico.
|
||||
|
||||
3. **Máquina nova para o colaborador antigo**
|
||||
- Instale o desktop agent do zero na máquina que o João vai usar (ex.: a “azul”). Utilize o mesmo código da empresa e o e-mail do João.
|
||||
- A máquina azul aparecerá como um **novo registro** no painel (inventário/tickets começarão do zero). Renomeie/associe conforme necessário.
|
||||
3. **Dispositivo nova para o colaborador antigo**
|
||||
- Instale o desktop agent do zero na dispositivo que o João vai usar (ex.: a “azul”). Utilize o mesmo código da empresa e o e-mail do João.
|
||||
- A dispositivo azul aparecerá como um **novo registro** no painel (inventário/tickets começarão do zero). Renomeie/associe conforme necessário.
|
||||
|
||||
4. **Verificação final**
|
||||
- A máquina antiga (amarela) continua listada, agora vinculada à Maria, com seus tickets históricos.
|
||||
- A máquina nova (azul) aparece como um segundo registro para o João. Ajuste hostname/descrição para facilitar a identificação.
|
||||
- A dispositivo antiga (amarela) continua listada, agora vinculada à Maria, com seus tickets históricos.
|
||||
- A dispositivo nova (azul) aparece como um segundo registro para o João. Ajuste hostname/descrição para facilitar a identificação.
|
||||
|
||||
> Não é necessário excluir registros. Cada máquina mantém seu histórico; o reset garante apenas que o token antigo não volte a sobrescrever dados quando o hardware mudar de mãos.
|
||||
> Não é necessário excluir registros. Cada dispositivo mantém seu histórico; o reset garante apenas que o token antigo não volte a sobrescrever dados quando o hardware mudar de mãos.
|
||||
- Importante: não usar `CONVEX_DEPLOYMENT` em conjunto com URL + ADMIN_KEY.
|
||||
|
||||
- Como forçar o deploy do Convex
|
||||
|
|
@ -161,7 +161,7 @@ Depois disso, o job “Deploy Convex functions” funciona em modo não interati
|
|||
- Front envia `assigneeId` e o backend Convex deve aceitar esse parâmetro (função `tickets.list`).
|
||||
- Se necessário, forçar redeploy das funções (`convex/**`).
|
||||
|
||||
- Admin ▸ Máquinas travado em skeleton infinito
|
||||
- Admin ▸ Dispositivos travado em skeleton infinito
|
||||
- Abra o DevTools (console) e filtre por `admin-machine-details`. Se o log mostrar `machineId: undefined`, o componente não recebeu o parâmetro da rota.
|
||||
- Verifique se o `page.tsx` está passando `params.id` corretamente ou se o componente client-side usa `useParams()` / `machineId` opcional.
|
||||
- Deploys antigos antes de `fix(machines): derive machine id from router params` precisam desse patch; sem ele o fallback nunca dispara e o skeleton permanece.
|
||||
|
|
@ -170,30 +170,30 @@ Depois disso, o job “Deploy Convex functions” funciona em modo não interati
|
|||
|
||||
Última atualização: sincronizado após o deploy bem‑sucedido do Convex e do Front (20/10/2025).
|
||||
|
||||
## 9) Admin ▸ Usuários e Máquinas — Unificação e UX
|
||||
## 9) Admin ▸ Usuários e Dispositivos — Unificação e UX
|
||||
|
||||
Resumo das mudanças aplicadas no painel administrativo para simplificar “Usuários” e “Agentes de máquina” e melhorar o filtro em Máquinas:
|
||||
Resumo das mudanças aplicadas no painel administrativo para simplificar “Usuários” e “Agentes de dispositivo” e melhorar o filtro em Dispositivos:
|
||||
|
||||
- Unificação de “Usuários” e “Agentes de máquina”
|
||||
- Antes: abas separadas “Usuários” (pessoas) e “Agentes de máquina”.
|
||||
- Agora: uma só aba “Usuários” com filtro de tipo (Todos | Pessoas | Máquinas).
|
||||
- Unificação de “Usuários” e “Agentes de dispositivo”
|
||||
- Antes: abas separadas “Usuários” (pessoas) e “Agentes de dispositivo”.
|
||||
- Agora: uma só aba “Usuários” com filtro de tipo (Todos | Pessoas | Dispositivos).
|
||||
- Onde: `src/components/admin/admin-users-manager.tsx:923`, aba `value="users"` em `:1147`.
|
||||
- Motivo: evitar confusão entre “usuário” e “agente”; agentes são um tipo especial de usuário (role=machine). A unificação torna “Convites e Acessos” mais direta.
|
||||
|
||||
- Máquinas ▸ Filtro por Empresa com busca e remoção do filtro de SO
|
||||
- Dispositivos ▸ Filtro por Empresa com busca e remoção do filtro de SO
|
||||
- Adicionado dropdown de “Empresa” com busca (Popover + Input) e removido o filtro por Sistema Operacional.
|
||||
- Onde: `src/components/admin/machines/admin-machines-overview.tsx:1038` e `:1084`.
|
||||
- Onde: `src/components/admin/devices/admin-devices-overview.tsx:1038` e `:1084`.
|
||||
- Motivo: fluxo real usa empresas com mais frequência; filtro por SO era menos útil agora.
|
||||
|
||||
- Windows ▸ Rótulo do sistema sem duplicidade do “major”
|
||||
- Exemplo: “Windows 11 Pro (26100)” em vez de “Windows 11 Pro 11 (26100)”.
|
||||
- Onde: `src/components/admin/machines/admin-machines-overview.tsx` (função `formatOsVersionDisplay`).
|
||||
- Onde: `src/components/admin/devices/admin-devices-overview.tsx` (função `formatOsVersionDisplay`).
|
||||
- Motivo: legibilidade e padronização em chips/cartões.
|
||||
|
||||
- Vínculos visuais entre máquinas e pessoas
|
||||
- Cards de máquinas mostram “Usuário vinculado” quando disponível (assignment/metadata): `src/components/admin/machines/admin-machines-overview.tsx:3198`.
|
||||
- Editor de usuário exibe “Máquinas vinculadas” (derivado de assign/metadata): `src/components/admin/admin-users-manager.tsx` (seção “Máquinas vinculadas” no sheet de edição).
|
||||
- Observação: por ora é leitura; ajustes detalhados de vínculo permanecem em Admin ▸ Máquinas.
|
||||
- Vínculos visuais entre dispositivos e pessoas
|
||||
- Cards de dispositivos mostram “Usuário vinculado” quando disponível (assignment/metadata): `src/components/admin/devices/admin-devices-overview.tsx:3198`.
|
||||
- Editor de usuário exibe “Dispositivos vinculadas” (derivado de assign/metadata): `src/components/admin/admin-users-manager.tsx` (seção “Dispositivos vinculadas” no sheet de edição).
|
||||
- Observação: por ora é leitura; ajustes detalhados de vínculo permanecem em Admin ▸ Dispositivos.
|
||||
|
||||
### Identidade, e‑mail e histórico (reinstalação)
|
||||
|
||||
|
|
@ -202,20 +202,20 @@ Resumo das mudanças aplicadas no painel administrativo para simplificar “Usu
|
|||
- Novo e‑mail como nova conta: se criar um usuário novo (novo `userId`), será considerado um colaborador distinto e não herdará o histórico.
|
||||
- Caso precise migrar histórico entre contas diferentes (merge), recomendamos endpoint/rotina de “fusão de contas” (remapear `userId` antigo → novo). Não é necessário para a troca de e‑mail da mesma conta.
|
||||
|
||||
### Vínculos múltiplos de usuários por máquina (Fase 2)
|
||||
### Vínculos múltiplos de usuários por dispositivo (Fase 2)
|
||||
|
||||
- Estrutura (Convex):
|
||||
- `machines.linkedUserIds: Id<"users">[]` — lista de vínculos adicionais além do `assignedUserId` (principal).
|
||||
- Mutations: `machines.linkUser(machineId, email)`, `machines.unlinkUser(machineId, userId)`.
|
||||
- APIs admin: `POST /api/admin/machines/links` (body: `{ machineId, email }`), `DELETE /api/admin/machines/links?machineId=..&userId=..`.
|
||||
- APIs admin: `POST /api/admin/devices/links` (body: `{ machineId, email }`), `DELETE /api/admin/devices/links?machineId=..&userId=..`.
|
||||
- UI:
|
||||
- Detalhes da máquina mostram “Usuários vinculados” com remoção por item e campo para adicionar por e‑mail.
|
||||
- Editor de usuário mostra “Máquinas vinculadas” consolidando assignment, metadata e `linkedUserIds`.
|
||||
- Racional: permitir que uma máquina tenha mais de um colaborador/gestor associado, mantendo um “principal” (persona) para políticas e contexto.
|
||||
- Detalhes da dispositivo mostram “Usuários vinculados” com remoção por item e campo para adicionar por e‑mail.
|
||||
- Editor de usuário mostra “Dispositivos vinculadas” consolidando assignment, metadata e `linkedUserIds`.
|
||||
- Racional: permitir que uma dispositivo tenha mais de um colaborador/gestor associado, mantendo um “principal” (persona) para políticas e contexto.
|
||||
|
||||
### Onde editar
|
||||
|
||||
- Usuários (pessoas): editar nome, e‑mail, papel, tenant e empresa; redefinir senha pelo painel. Arquivo: `src/components/admin/admin-users-manager.tsx`.
|
||||
- Agentes (máquinas): provisionamento automático; edição detalhada/vínculo principal em Admin ▸ Máquinas. Arquivo: `src/components/admin/machines/admin-machines-overview.tsx`.
|
||||
- Agentes (dispositivos): provisionamento automático; edição detalhada/vínculo principal em Admin ▸ Dispositivos. Arquivo: `src/components/admin/devices/admin-devices-overview.tsx`.
|
||||
|
||||
> Observação operacional: mantivemos o provisionamento de máquinas inalterado (token/e‑mail técnico), e o acesso web segue apenas para pessoas. A unificação é de UX/gestão.
|
||||
> Observação operacional: mantivemos o provisionamento de dispositivos inalterado (token/e‑mail técnico), e o acesso web segue apenas para pessoas. A unificação é de UX/gestão.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue