f691258a5c
* refactor(agents): move prescriptive content from knowledge-base to rules - Create architecture-page-level-auth.md for Next.js auth checks - Create data-prefer-select-over-include.md for Prisma query optimization - Create performance-dayjs-usage.md for Day.js performance guidelines - Create quality-avoid-barrel-imports.md for import best practices - Update knowledge-base.md to reference rules directory - Remove duplicated prescriptive content from knowledge-base.md Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * chore(agents): remove redundant rules reference from knowledge-base Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * docs: add agents/rules reference to AGENTS.md extended documentation Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1.3 KiB
1.3 KiB
title, impact, impactDescription, tags
| title | impact | impactDescription | tags |
|---|---|---|---|
| Prefer Select Over Include in Prisma Queries | HIGH | Reduces data transfer and improves query performance | prisma, database, performance, security |
Prefer Select Over Include in Prisma Queries
Impact: HIGH (Reduces data transfer and improves query performance)
Using select instead of include in Prisma queries fetches only the fields you need, improving performance and preventing accidental exposure of sensitive data.
Incorrect (using include fetches all fields):
const booking = await prisma.booking.findFirst({
include: {
user: true, // This gets ALL user fields including sensitive ones
}
});
Correct (using select for specific fields):
const booking = await prisma.booking.findFirst({
select: {
id: true,
title: true,
user: {
select: {
id: true,
name: true,
email: true,
}
}
}
});
Benefits:
- Performance: Smaller payloads, faster queries
- Security: Prevents accidental exposure of sensitive fields (e.g.,
credential.key) - Clarity: Makes data requirements explicit
Exception: Use include only when you genuinely need all fields from a relation, which is rare.
Reference: Cal.com Engineering Standards