Sistema de Chamados - Mirror do GitHub
Find a file
2025-10-16 17:29:08 -03:00
.github/workflows ci(web): fix permission errors publishing to stable APP_DIR (docker chown+chmod, exclude .pnpm-store); runtime: use container-local PNPM store to avoid host writes 2025-10-16 15:08:12 -03:00
apps/desktop desktop: remover leitura de isValidatingToken para corrigir TS6133 no build Tauri 2025-10-16 16:53:37 -03:00
convex feat: aprimora upload/anexos e regras de atendimento no portal 2025-10-16 03:01:27 -03:00
docs Docs: document machine-session fixes, desktop handshake, portal UX changes, and Windows osInfo fallback 2025-10-15 00:21:11 -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 fix: torna migration de provisioning idempotente e libera deploy 2025-10-16 00:20:21 -03:00
public chore(desktop): atualizar latest.json para v0.1.6 2025-10-12 04:33:28 -03:00
scripts ci(web): fix permission errors publishing to stable APP_DIR (docker chown+chmod, exclude .pnpm-store); runtime: use container-local PNPM store to avoid host writes 2025-10-16 15:08:12 -03:00
src admin/companies: melhorar criação/edição\n\n- Aceita isAvulso e contractedHoursPerMonth no POST\n- Retorna 409 para duplicidade (slug/provisioningCode)\n- Retorna 409 para duplicidade no PATCH 2025-10-16 17:29:08 -03:00
tests chore: update SMTP module and tests; remove unused assets 2025-10-07 16:15:46 -03:00
types feat: CSV exports, PDF improvements, play internal/external with hour split, roles cleanup, admin companies with 'Cliente avulso', ticket list spacing/alignment fixes, status translations and mappings 2025-10-07 13:42:45 -03:00
.env.example docs: documentar seed automatico e variavel SEED_ENSURE_ONLY\n\n- .env.example: adiciona SEED_ENSURE_ONLY=true.\n- Runbook: explica que o container executa 2025-10-09 16:35:23 -03:00
.gitignore 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
agents.md Docs: document machine-session fixes, desktop handshake, portal UX changes, and Windows osInfo fallback 2025-10-15 00:21:11 -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
components.json chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
eslint.config.mjs docs: registrar fluxo do updater e atualizar chaves 2025-10-12 04:06:29 -03:00
middleware.ts auth: evitar loop login<->dashboard para sessão de máquina\n\n- Login direciona máquina para portal (ou dashboard se manager)\n- Middleware redireciona máquina colaborador do dashboard para /portal/tickets\n- Middleware evita mostrar login quando já autenticado como máquina 2025-10-16 16:09:49 -03:00
next.config.ts chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
package.json feat: improve ticket export and navigation 2025-10-13 00:08:18 -03:00
pnpm-lock.yaml feat: improve ticket export and navigation 2025-10-13 00:08:18 -03:00
pnpm-workspace.yaml feat: habilitar provisionamento desktop e rotas CORS 2025-10-08 23:07:59 -03:00
postcss.config.mjs chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00
PROXIMOS_PASSOS.md chore(ci): trigger deploy apos rotacao do MACHINE_PROVISIONING_SECRET na VPS 2025-10-09 17:45:06 -03:00
README.md Docs: document machine-session fixes, desktop handshake, portal UX changes, and Windows osInfo fallback 2025-10-15 00:21:11 -03:00
RENAN.txt feat(admin): Windows hardware cards (CPU/RAM/GPU/Disks) with Lucide icons; feat(desktop): inventory summary cards; feat(agent/windows): extended hardware collectors (CPU/board/BIOS/memory/video/disks); fix(agent): memory units in bytes 2025-10-10 00:01:23 -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 ci(web): fix permission errors publishing to stable APP_DIR (docker chown+chmod, exclude .pnpm-store); runtime: use container-local PNPM store to avoid host writes 2025-10-16 15:08:12 -03:00
tsconfig.json chore(types): fix tsconfig to exclude desktop from Next TS check; remove unused vars and fix hook deps; clean up remaining lint warnings 2025-10-09 22:52:02 -03:00
vitest.config.ts Hours by client: add search and CSV filtering; add alerts cron (BRT 08:00 guard) + alerts panel filters; admin companies shows last alert; PDF Inter font from public/fonts; fix Select empty value; type cleanups; tests for CSV/TZ; remove Knowledge Base nav 2025-10-07 15:39:55 -03:00
vitest.setup.ts chore: reorganize project structure and ensure default queues 2025-10-06 22:59:35 -03:00

Sistema de Chamados

Aplicação Next.js 15 com Convex e Better Auth para gestão de tickets da Rever. Todo o código-fonte está organizado diretamente na raiz do repositório, conforme convenções do Next.js.

Requisitos

  • Node.js >= 20
  • pnpm >= 8
  • CLI do Convex (pnpm dlx convex dev instalará automaticamente no primeiro uso)

Configuração rápida

  1. Instale as dependências:
    pnpm 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
  3. Aplique as migrações e gere o client Prisma:
    pnpm prisma migrate deploy
    pnpm prisma:generate
    
  4. Popule usuários padrão do Better Auth:
    pnpm auth:seed
    
  5. (Opcional) Para re-sincronizar manualmente as filas padrão, execute:
    pnpm queues:ensure
    
  6. Em um terminal, execute o backend em tempo real do Convex:
    pnpm convex:dev
    
  7. Em outro terminal, suba o frontend Next.js:
    pnpm dev
    
  8. Com o Convex ativo, acesse http://localhost:3000/dev/seed uma vez para popular dados de demonstração (tickets, usuários, comentários) diretamente no banco do Convex.

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.

Deploy em produção (Traefik + Convex selfhosted)

  • Guia completo: docs/OPERACAO-PRODUCAO.md:1.
  • Histórico de setup/decisões: docs/SETUP-HISTORICO.md:1.
  • Stack Swarm: stack.yml:1 (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

  • pnpm lint — ESLint com as regras do projeto.
  • pnpm exec vitest run — suíte de testes unitários.
  • pnpm auth:seed — atualiza/cria contas padrão do Better Auth (credenciais em agents.md).
  • pnpm prisma migrate deploy — aplica migrações ao banco SQLite local.
  • pnpm convex:dev — roda o Convex em modo desenvolvimento, gerando tipos em convex/_generated.

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 pnpm 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.

Diagnóstico de sessão da máquina (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.