435c871e1fb62d00a33cd5982d9b8012fe23f218
#28 - TOTP rate limiting (verifyTotp): added totpRateLimiter (10 req/30s), throws TOO_MANY_REQUESTS before DB hit; 16 unit tests including rate-limit exceeded + userId key isolation. #29 - /api/reports/allocations role check: only ADMIN/MANAGER/CONTROLLER may access; returns 403 otherwise; 9 unit tests (401 unauthenticated, 403 for USER/VIEWER, 200 for allowed roles + xlsx format). #31 - pgAdmin credentials moved out of docker-compose.yml into env vars; PGADMIN_PASSWORD is now required (:?) to prevent accidental plaintext exposure in committed files. #34 - Server-side HTML sanitization for comment bodies via stripHtml(): strips all tags + decodes safe entities before persistence; 16 unit tests covering passthrough, injection patterns, entity decoding. #35 - MFA setup prompt banner (MfaPromptBanner): shown to ADMIN/MANAGER users without TOTP enabled; user-scoped localStorage snooze (7 days); links to /account/security; accessibility role=alert; 7 structural unit tests. #33 - Auth anomaly alerting cron (/api/cron/auth-anomaly-check): detects HIGH_GLOBAL_FAILURE_RATE and CONCENTRATED_FAILURES in 30-minute window; CRITICAL notification to ADMINs; fail-closed via verifyCronSecret; 10 unit tests. #32 - MFA enforcement policy: added requireMfaForRoles field to SystemSettings schema + Prisma migration; auth.ts blocks login with MFA_REQUIRED_SETUP signal if role is enforced but TOTP not set up; signin page redirects to /account/security?mfa_required=1; settings schema + view model updated; 11 unit tests. #30 - API keys architecture decision documented in LEARNINGS.md; no code written — product decision required before implementation. Co-Authored-By: claude-flow <ruv@ruv.net>
Documentation Index
Date: 2026-03-12 Purpose: Single entry point for active CapaKraken product and technical documentation.
Canonical Documents
| Topic | File | Use |
|---|---|---|
| AI excellence due diligence | ai-excellence-due-diligence-roadmap.md | Frank quality assessment and cleanup roadmap toward a showcase AI-built project |
| Showcase quality backlog | showcase-quality-backlog.md | Consolidated working backlog for the current quality and maintainability north star |
| Parallel worktree hygiene | parallel-worktree-hygiene.md | Keep parallel worker slices isolated and the worktree reviewable |
| Target CI/CD architecture | cicd-target-architecture.md | Canonical image-based build, deploy, and rollback flow |
| Active roadmap and open gaps | product-roadmap.md | Primary backlog and current delivery order |
| Estimating system design | estimating-extension-design.md | Workbook analysis, field mapping, and implementation plan |
| Dispo import implementation | dispo-import-implementation.md | Clean-slate Dispo v2 import design, mapping rules, staging flow, and commit policy |
| Dispo import ticket pack | dispo-import-implementation-tickets.md | Worker-ready delivery slices, dependencies, and acceptance criteria for the Dispo import |
| Demand/assignment cutover guide | demand-assignment-migration-cutover.md | Go/no-go criteria, staged cutover, and readiness artifact policy |
| Strategic architecture direction | v2-architecture-proposal-2026-03-11.md | Longer-horizon architecture target |
| Implementation history | LEARNINGS.md | Append-only decisions and lessons |
| Agent/project guidance | CLAUDE.md | Working conventions and quality gates |
Archive Policy
Older plan and proposal markdown files stay in the repository only as archive notes when:
- the feature is already implemented enough to leave the active backlog
- the content was merged into a canonical document
- the file still has historical value, but should not drive current work
Archive-note files should point back to the relevant canonical document instead of carrying parallel backlog state.
Current Archive Notes
All archived markdown plan and proposal files now live under docs/old-markdowns/.
Description
Resource planning and project staffing tool for 3D production environments. Timeline planning, capacity & budget views, role management, blueprint-based dynamic fields, skill matrix workflows, and AI-assisted staffing. Next.js 15 · tRPC v11 · Prisma · PostgreSQL · Auth.js v5.
Languages
TypeScript
98.1%
JavaScript
1.4%
CSS
0.3%
Shell
0.1%