Sistema de Chamados - Mirror do GitHub
Find a file
rever-tecnologia 7c5bc828cf Fix getById not returning USB policy fields
The getByIdHandler was missing usbPolicy, usbPolicyStatus,
and usbPolicyError fields, causing the chip to always show
"Permitido" instead of the actual policy value.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 10:06:18 -03:00
.github/workflows fix: stabilize web build path e cores do SLA 2025-11-25 17:32:40 -03:00
apps/desktop Improve loan page and add company filter to USB bulk control 2025-12-04 14:52:27 -03:00
components/shadcn-studio/input feat: cadastro manual de acesso remoto e ajustes de horas 2025-10-24 23:52:58 -03:00
convex Fix getById not returning USB policy fields 2025-12-05 10:06:18 -03:00
docs feat(rustdesk): remove auto-run/atalho para evitar abrir GUI ao iniciar Raven 2025-11-25 14:16:45 -03:00
Inter,Manrope/Inter fix(ci/windows): remove NTFS Zone.Identifier ADS artifacts from fonts and ignore future additions; move Tauri updater config under plugins (v2 schema), bump to 0.1.5 2025-10-10 21:42:35 -03:00
prisma Upgrade Prisma to v7 2025-11-19 13:24:08 -03:00
public fix: avoid broken font and speed up backlog overview 2025-10-30 14:42:09 -03:00
scripts Fix better-sqlite3 binding for Prisma adapter 2025-12-04 16:31:51 -03:00
src Fix X button focus ring showing on modal open 2025-12-05 09:51:40 -03:00
tests Avoid recursive import in api mock for bun tests 2025-11-27 08:38:11 -03:00
types Update Prisma and harden tests 2025-11-08 00:28:52 -03:00
.env.example feat(agent): self-heal rustdesk remote access 2025-11-11 17:50:09 -03:00
.gitignore feat(portal): enable ticket reopen and improve loading UX 2025-11-14 13:08:59 -03:00
agents.md fix: switch production build to webpack 2025-11-05 21:15:10 -03:00
auth.ts chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
build.log chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
bun.lock Improve loan page and add company filter to USB bulk control 2025-12-04 14:52:27 -03:00
bunfig.toml Switch workflows to Bun install/test and update pnpm 2025-11-04 23:21:41 -03:00
codex_ed25519 feat(filters): usar filtro por responsável no servidor (assigneeId)\n\nci: tocar convex/tickets para forçar deploy das funções 2025-10-20 16:07:54 -03:00
codex_ed25519.pub feat(filters): usar filtro por responsável no servidor (assigneeId)\n\nci: tocar convex/tickets para forçar deploy das funções 2025-10-20 16:07:54 -03:00
components.json fix(reports): remove truncation cap in range collectors to avoid dropped records 2025-11-04 11:51:08 -03:00
Dockerfile.prod chore: add node22 bun base image and tune start 2025-11-19 21:22:12 -03:00
eslint.config.mjs chore: sync staging 2025-11-10 01:57:45 -03:00
next.config.ts Skip TypeScript checking in production build 2025-12-04 15:49:43 -03:00
package.json Improve loan page and add company filter to USB bulk control 2025-12-04 14:52:27 -03:00
postcss.config.mjs chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
prisma.config.ts fix: provide prisma datasource fallback 2025-11-19 15:53:49 -03:00
proxy.ts refactor: align routes with next 16 and local fonts 2025-10-22 02:08:18 -03:00
README.md Doc: note about Convex CLI 2025-11-18 10:34:50 -03:00
reports-machines-filters-issue.svg Adjust reports filters layout and date range picker 2025-11-18 23:02:58 -03:00
resp.json feat(desktop/ui): force light theme for readability in Tauri; strengthen contrast for card/input/alerts; add inventory summary cards 2025-10-10 00:18:39 -03:00
stack.yml Fix better-sqlite3 binding for Prisma adapter 2025-12-04 16:31:51 -03:00
tsconfig.json Upgrade Prisma to v7 2025-11-19 13:24:08 -03:00
vitest.config.mts chore: document and stabilize vitest browser setup 2025-10-22 17:19:12 -03:00
vitest.setup.node.ts chore(types): remove anys and harden Convex data fetch 2025-10-22 19:19:38 -03:00

Sistema de Chamados

Aplicação Next.js 16 (App Router) com React 19, Convex e Better Auth para gestão de tickets da Rever. A stack ainda inclui Prisma 6 (SQLite padrão para DEV), Tailwind e Turbopack em desenvolvimento (o build de produção roda com o webpack padrão do Next). Todo o código-fonte fica na raiz do monorepo seguindo as convenções do App Router.

Requisitos

  • Bun >= 1.3 (recomendado 1.3.1). Após instalar via script oficial, adicione export PATH="$HOME/.bun/bin:$PATH" ao seu shell (ex.: .bashrc) para ter bun disponível globalmente.
  • Node.js >= 20 (necessário para ferramentas auxiliares como Prisma CLI e Next.js em modo fallback).
  • CLI do Convex (bunx convex dev instalará automaticamente no primeiro uso, se ainda não estiver presente).
  • GitHub Actions/autodeploy dependem dessas versões e do CLI do Convex disponível; use npx convex --help para confirmar.

Configuração rápida

  1. Instale as dependências:
    bun install
    
  2. Ajuste o arquivo .env (ou crie a partir de .env.example) e confirme os valores de:
    • NEXT_PUBLIC_CONVEX_URL (gerado pelo Convex Dev)
    • BETTER_AUTH_SECRET, BETTER_AUTH_URL, DATABASE_URL (por padrão file:./db.dev.sqlite, que mapeia para prisma/db.dev.sqlite)
  3. Aplique as migrações e gere o client Prisma:
    bunx prisma migrate deploy
    bun run prisma:generate
    
  4. Popule usuários padrão do Better Auth:
    bun run auth:seed
    

    Sempre que trocar de máquina ou quiser “zerar” o ambiente local, basta repetir os passos 3 e 4 com a mesma DATABASE_URL.

Resetar rapidamente o ambiente local

  1. Garanta que DATABASE_URL aponte para o arquivo desejado (ex.: file:./db.dev.sqlite para desenvolvimento, file:./db.sqlite em produção local).
  2. Aplique as migrações no arquivo informado:
    DATABASE_URL=file:./db.dev.sqlite bunx prisma migrate deploy
    
  3. Recrie/garanta as contas padrão de login:
    DATABASE_URL=file:./db.dev.sqlite bun run auth:seed
    
  4. Suba o servidor normalmente com bun run dev. Esses três comandos bastam para reconstruir o ambiente sempre que trocar de computador.

Subir serviços locais

  • (Opcional) Para re-sincronizar manualmente as filas padrão, execute bun run queues:ensure.
  • Em um terminal, rode o backend em tempo real do Convex com bun run convex:dev:bun (ou bun run convex:dev para o runtime Node).
  • Em outro terminal, suba o frontend Next.js (Turpoback) com bun run dev:bun (bun run dev:webpack serve como fallback).
  • Com o Convex rodando, acesse http://localhost:3000/dev/seed uma vez para popular dados de demonstração (tickets, usuários, comentários).

Se o CLI perguntar sobre configuração do projeto Convex, escolha criar um novo deployment local (opção padrão) e confirme. As credenciais são armazenadas em .convex/ automaticamente.

Documentação

  • Índice de docs: docs/README.md
  • Operações (produção): docs/OPERATIONS.md (versão EN) e docs/OPERACAO-PRODUCAO.md (PT-BR)
  • Guia de DEV: docs/DEV.md
  • Testes automatizados (Vitest/Playwright): docs/testes-vitest.md
  • Stack Swarm: stack.yml (roteado por Traefik, rede traefik_public).

Variáveis de ambiente

  • Exemplo na raiz: .env.example — copie para .env e preencha segredos.
  • App Desktop: apps/desktop/.env.example — copie para apps/desktop/.env e ajuste VITE_APP_URL.
  • Nunca faça commit de arquivos .env com valores reais (já ignorados em .gitignore).

Guia de DEV (Prisma, Auth e Desktop/Tauri)

Para fluxos detalhados de desenvolvimento — banco de dados local (SQLite/Prisma), seed do Better Auth, ajustes do Prisma CLI no DEV e build do Desktop (Tauri) — consulte docs/DEV.md.

Scripts úteis

  • bun run dev:bun — padrão atual para o Next.js com runtime Bun (bun run dev:webpack permanece como fallback).
  • bun run convex:dev:bun — runtime Bun para o Convex (bun run convex:dev mantém o fluxo antigo usando Node).
  • bun run build:bun / bun run start:bun — build e serve com Bun; bun run build mantém o fallback Node.
  • bun run dev:webpack — fallback do Next.js em modo desenvolvimento (webpack).
  • bun run lint — ESLint com as regras do projeto.
  • bun test — suíte de testes unitários usando o runner do Bun (o teste de screenshot fica automaticamente ignorado se o matcher não existir).
  • bun run build — executa next build --webpack (webpack padrão do Next).
  • bun run build:turbopack — executa next build --turbopack para reproduzir/debugar problemas.
  • bun run auth:seed — atualiza/cria contas padrão do Better Auth (credenciais em agents.md).
  • bunx prisma migrate deploy — aplica migrações ao banco SQLite local.
  • bun run convex:dev — roda o Convex em modo desenvolvimento com Node, gerando tipos em convex/_generated.

Transferir dispositivo entre colaboradores

Quando uma dispositivo trocar de responsável:

  1. Abra Admin > Dispositivos, selecione o equipamento e clique em Resetar agente.
  2. No equipamento, execute o reset local do agente (rever-agent reset ou reinstale o serviço) e reprovisione com o código da empresa.
  3. Após o agente gerar um novo token, associe a dispositivo ao novo colaborador no painel.

Sem o reset de agente, o Convex reaproveita o token anterior e o inventário continua vinculado ao usuário antigo.

Estrutura principal

  • app/ dentro de src/ — rotas e layouts do Next.js (App Router).
  • components/ — componentes reutilizáveis (UI, formulários, layouts).
  • convex/ — queries, mutations e seeds do Convex.
  • prisma/ — schema, migrações e banco SQLite (prisma/db.sqlite).
  • scripts/ — utilitários em Node para sincronização e seeds adicionais.
  • agents.md — guia operacional e contexto funcional (em PT-BR).
  • PROXIMOS_PASSOS.md — backlog de melhorias futuras.

Credenciais de demonstração

Após executar bun run auth:seed, as credenciais padrão ficam disponíveis conforme descrito em agents.md (seção “Credenciais padrão”). Ajuste variáveis SEED_USER_* se precisar sobrepor usuários ou senhas durante o seed.

Próximos passos

Consulte PROXIMOS_PASSOS.md para acompanhar o backlog funcional e o progresso das iniciativas planejadas.

Executar com Bun

  • bun install é o fluxo padrão (o arquivo bun.lock deve ser versionado; use bun install --frozen-lockfile em CI).
  • bun run dev:bun, bun run convex:dev:bun, bun run build:bun e bun run start:bun já estão configurados; internamente executam bun run --bun <script> para usar o runtime do Bun sem abrir mão dos scripts existentes. O cross-env garante os valores esperados de NODE_ENV (development/production).
  • Se precisar validar o bundler experimental, use bun run build:turbopack; para o fluxo estável mantenha bun run build (webpack).
  • bun test utiliza o test runner do Bun. O teste de snapshot de screenshot é automaticamente ignorado quando o matcher não está disponível; testes de navegador completos continuam via bun run test:browser (Vitest + Playwright).

Diagnóstico de sessão da dispositivo (Desktop)

  • Quando o portal for aberto via app desktop, use a página https://seu-app/portal/debug para validar cookies e contexto:
    • /api/auth/get-session deve idealmente mostrar user.role = "machine" (em alguns ambientes WebView pode retornar null, o que não é bloqueante).
    • /api/machines/session deve retornar 200 com assignedUserId/assignedUserEmail.
  • O frontend agora preenche machineContext mesmo que get-session retorne null, e deriva o papel efetivo a partir desse contexto.
  • Se machines/session retornar 401/403, revise CORS/credenciais e o fluxo de handshake documentados em docs/OPERACAO-PRODUCAO.md.