Patch notes
Histórico de mudanças relevantes da CLI, templates e fluxos do Koala Nest.Changelog voltado a quem usa ou atualiza projetos gerados pela CLI. Detalhes técnicos de cada tópico ficam nas páginas da documentação referenciadas.
A versão publicada do pacote @koalarx/nest aparece no site e no package.json do repositório. O arquivo CHANGELOG.md na raiz espelha estas notas.
4.3.0 — API Key (autenticação M2M)
O que mudou
- Nova estratégia aditiva
api-key: use com JWT e/ou OAuth2 (--auth jwt,api-key). Não pode ser escolhida sozinha. - CRUD
/api-key: cria JWT RS256 long-lived (typ: api-key) e valida origem (domain/host/uri). - Subnet interna opcional:
--api-key-internal-subnet(ou prompt na CLI) libera IPs privados entre pods no tipodomain. - Scalar: esquema
ApiKey(header) além de JWT/OAuth2. - Doc de autenticação cobre o papel M2M sem substituir broker/storage.
- Contexto AI (vibecoding): no
kl-nest new(prompt) e nokl-nest add ai-context cursor|github— geraAGENTS.mde regras Cursor / instruções Copilot voltadas ao projeto gerado (docs-first + constraints DDD). Com-ynão gera; useadddepois. Não sobrescreve arquivos já existentes. - Chaves JWT no
.env: ao escolher JWT, OAuth2 e/ou API Key nonewou noadd auth, a CLI gera o par RS256 (JWT_PRIVATE_KEY/JWT_PUBLIC_KEYem base64) e preenche o.env. Placeholders no.env.exampleficam vazios; valores já preenchidos não são sobrescritos.
Upgrade
Em projetos já gerados: kl-nest add auth api-key (com JWT/OAuth2 já instalado) e opcionalmente --api-key-internal-subnet. Gere/aplique a migration CreateApiKey e adicione passport-custom se necessário.
Para contexto AI em projetos existentes: kl-nest add ai-context cursor, github ou ambos.
4.2.0 — Migrations e descoberta de entidades
O que mudou
- Entidades no CLI:
migration-datasource.tsdeixa de usar glob de arquivos e passa a lerDbContext.entities, preenchido porload-all-entities.tsao gerar/aplicar migrations fora do Nest. Falhas ao carregar entidades propagam (sóENOENTdo diretório ausente é ignorado). - Boot da API:
dataSourceFactoryconfigura o arraymigrationse chamarunMigrations()apósinitialize()— pendentes sobem com a aplicação. - Scripts npm/pnpm: migrations usam
ts-node+tsconfig-pathspara resolver aliases@/.dotenv,ts-nodeetsconfig-pathsentram nos pacotes core da CLI. - Auth: instalação de auth não altera mais
data-source-factory.ts. Entidades (ex.:User) entram noDbContextpelos imports dos repositórios. @koalarx/utilsprototypes: o template ativaimport '@koalarx/utils/prototypes'emsrc/host/main.tse nos setups de teste. No backend Nest, o padrão passa a ser métodos nativos (ex.:.maskCpf(),.orderBy());delay,randomStringe feriados continuam por import explícito. Ver Koala Utils.- Checklist / boot:
load-all-entities.tse demais arquivos de migration passam a ser obrigatórios na validação do projeto;main.tsdeve importar@koalarx/utils/prototypes.
Como funciona (guia rápido)
- Entidades em
src/domain/entities/usam@Entityde@/core/database/entity(registra noDbContext). - Em runtime, o Nest importa repositórios → carrega entidades →
dataSourceFactoryusaDbContext. - No CLI (
migration:generate/migration:run),load-all-entitiesfazrequiredos arquivos de entidade (ignora enums) para popular o mesmoDbContext. - Ao iniciar a API, migrations pendentes são aplicadas automaticamente.
migration:runcontinua disponível para CI/ops.
Guia completo: Migrations · Banco de dados
Projetos já gerados (upgrade)
Se o projeto foi criado com template antigo:
- Copie/adapte
src/infra/database/migrations/load-all-entities.tsdo template atual. - Em
migration-datasource.ts, importe./load-all-entitiese useentities: Array.from(DbContext.entities.values()). - Em
data-source-factory.ts, adicione o glob demigrations+await dataSource.runMigrations(). - Remova listas manuais
entities: [Person, ...](ou qualquer patch que as mantenha). - Em npm/pnpm, garanta
dotenv,ts-nodeetsconfig-pathse scripts com--require tsconfig-paths/register. - Em
src/host/main.ts(e setups de teste), importe@koalarx/utils/prototypes.
Não há camada de compatibilidade na CLI: o template novo é a fonte da verdade.