diff --git a/memory/registro-otimizacoes-sessao-2026-08-11-aprimorar-ia-2.md b/memory/registro-otimizacoes-sessao-2026-08-11-aprimorar-ia-2.md new file mode 100644 index 0000000..62a2458 --- /dev/null +++ b/memory/registro-otimizacoes-sessao-2026-08-11-aprimorar-ia-2.md @@ -0,0 +1,25 @@ +# Registro de Otimizações da Sessão — Aprimoramento da IA (Parte 2) + +**Data:** 11/08/2026 +**Sessão / Contexto:** Eliminação de erros de consulta à tabela removida `usuarios` (`select "codigo", "nome", "categoria"` - `code 42703`) e padronização da integração via SSO (`e-licencie.drive`). + +--- + +## 📌 Principais Aprendizados e Regras Consolidadas + +### 1. Gestão de Usuários e Perfis via `e-licencie.drive` (SSO) +- A tabela `usuarios` **não existe** no banco de dados PostgreSQL local dos schemas dos inquilinos. A identificação, listagem e auditoria de usuários (operadores e usuários externos da categoria `externo`) são providas exclusivamente pelo pacote `p-e-licencie-drive` (`eliDrive`). +- É **estritamente proibido** realizar chamadas `knex("usuarios")` ou `knex(enumTabelas.usuarios)`. Toda consulta de usuários em endpoints ou tarefas em segundo plano (CRON) deve invocar `eliDrive({ token }).listarUsuarios()`. + +### 2. Tratamento de Depreciação e Tabela Undefined no Knex +- Ao chamar `knex(prop)` quando `prop` é `undefined`, o Knex executa `knex()` sem nome de tabela, emitindo o aviso de depreciação `calling knex without a tableName is deprecated. Use knex.queryBuilder() instead` e gerando queries SQL inválidas (`SELECT ...` sem cláusula `FROM`). +- Qualquer utilitário ou tabela que tenha sido removida do esquema deve ter suas referências completamente limpas da biblioteca `qualifica-comuns` (em `_tabelas_registros.ts`) para evitar que a chave acesse propriedades `undefined` via Proxy. + +--- + +## 🔍 Checklist de Verificação de Artefatos + +- [x] Artefatos dependentes revisados +- [x] Nenhuma regra ficou implícita +- [x] Referências cruzadas e linters validados (`pnpm run biome`, `npx tsx`) +- [x] Padrão `eliDrive` unificado em todas as rotas de listagem de eventos e tarefas de envio de e-mail