Skip to main content
February 19, 20261.0.15v1.0.15RSS

v1.0.15 — [Performance] getAccessibleProjectIds called multiple times per request in many routers

Release Notes

Multiple routers (pipeline, observability, crm, churn, support, revenue-analytics, etc.) call getAccessibleProjectIds(userId) independently — each call issues 2 DB queries (team memberships + projects). On the dashboard overview page, this function is invoked 5-8 times across parallel tRPC calls, firing 10-16 queries for the same data.

Category: database File: src/lib/auth/project-access.ts Recommendation: Cache the result in a per-request store using React's cache() utility (Next.js server-side) or pass project IDs as a resolved context value in the tRPC middleware. A 1-second TTL in-memory cache per userId would eliminate 80%+ of these redundant lookups. Estimated Improvement: Saves 2-4 DB round-trips per dashboard page load; reduces cold-start latency by ~50-100ms