src/lib/mongodb.js | Cached Mongoose connection + MongoClient promise |
src/lib/auth.js | NextAuth options (JWT 8h, impersonation, jti deny-list) |
src/proxy.js | Next.js 16 edge gate (session, admin level, auth rate limit) |
src/lib/schoolYear.js | currentSchoolYear (JS month ≥ 6 → July start of YYYY-YYYY) |
src/lib/formDuplicate.js | Clone answers, stamp duplicatedFrom, needsUpdate |
src/lib/questionBank.js | Published / draft FormTemplate, JSON fallback |
src/lib/schoolYearSettings.js | Archive lock, deadlines, district goals, compare steps |
src/lib/formSteps.js | Step key ↔ number mapping |
src/lib/locking.js | Redis or in-memory step locks (TTL 300s) |
src/lib/redis.js | Shared Redis client, cache, SCAN, save rate limit |
src/lib/systemHealth.js | Super Admin health snapshot (API / Mongo / Redis) |
src/lib/auditLogger.js | Writes AuditLog rows |