Scrum4Me/lib
Madhura68 4b234dc300 api: REST endpoints for ideas (M12 T-500)
- app/api/ideas/route.ts: GET (list with archived/product_id/status filters,
  user_id-scope), POST (creates DRAFT with auto IDEA-NNN code, 201)
- app/api/ideas/[id]/route.ts: GET (idea + recent logs), PATCH
  (ideaUpdateSchema, isIdeaEditable guard)
- lib/idea-dto.ts: API projection — converts Prisma row → DTO with
  lowercase status + has_grill_md/has_plan_md flags (md content excluded
  from list payloads, fetch via dedicated download action)

Auth: session OR API-token via authenticateApiRequest. Strict user_id
scope (no productAccessFilter — Idee is privé per Q8). 404 (not 403) for
foreign-user reads to prevent enumeration.

Tests: 13 cases (auth-401, demo-403, validation-422, malformed-400,
not-found-404, status-mismatch-422, filter param round-trip, DTO shape).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 19:55:49 +02:00
..
auth M10: Password-loze inlog via QR-pairing (ST-1001..ST-1008) (#12) 2026-04-28 00:01:04 +02:00
idea-prompts prompts: embedded grill + make-plan prompts for IDEA_* jobs (M12 T-495) 2026-05-04 19:41:56 +02:00
insights fix: drop \{ not: null }\ filters — Prisma 7 rejects them at runtime 2026-05-04 19:44:48 +02:00
realtime fix(realtime): force-destroy pg socket on cleanup timeout (SSE leak) (#44) 2026-05-01 20:04:22 +02:00
schemas lib: idea schemas + status mappers + transition guards (M12 T-493) 2026-05-04 19:38:52 +02:00
api-auth.ts feat(M8): Realtime Solo Paneel via Postgres LISTEN/NOTIFY (ST-801..ST-806) (#8) 2026-04-27 13:59:32 +02:00
auth-guard.ts feat(ST-1134): (mobile) route group + auth-guard helper + manifest (T-321) 2026-05-04 09:55:18 +02:00
auth.ts feat(ST-350): add auth helpers — getSession, requireUser, requireWriter, requireProductAccess, requireProductWriter 2026-04-26 16:03:32 +02:00
chart-colors.ts Foundation: route, recharts, sprint-dates migration, chart-colors helper (#46) 2026-05-02 15:58:15 +02:00
code-server.ts feat(codes): generateNextTaskCode + CODE_REGEX export + Zod regex op alle 3 schemas 2026-05-04 08:36:28 +02:00
code.ts feat(codes): generateNextTaskCode + CODE_REGEX export + Zod regex op alle 3 schemas 2026-05-04 08:36:28 +02:00
env.ts M11: Claude vraagt, gebruiker antwoordt (ST-1101..ST-1108) (#13) 2026-04-29 11:38:23 +02:00
idea-code-server.ts lib: idea-code generator + plan_md yaml-frontmatter parser (M12 T-494) 2026-05-04 19:40:39 +02:00
idea-code.ts lib: idea-code generator + plan_md yaml-frontmatter parser (M12 T-494) 2026-05-04 19:40:39 +02:00
idea-dto.ts api: REST endpoints for ideas (M12 T-500) 2026-05-04 19:55:49 +02:00
idea-plan-parser.ts lib: idea-code generator + plan_md yaml-frontmatter parser (M12 T-494) 2026-05-04 19:40:39 +02:00
idea-status.ts lib: idea schemas + status mappers + transition guards (M12 T-493) 2026-05-04 19:38:52 +02:00
job-status-url.ts M13: Veilige Claude-agent-workflow (Scrum4Me-side) (#26) 2026-05-01 13:42:18 +02:00
job-status.ts M13: Claude job queue — 'Voer uit'-knop + worker presence (ST-1111) (#18) 2026-04-29 19:51:48 +02:00
prisma.ts chore: SQLite verwijderd — alleen PostgreSQL via Neon 2026-04-25 12:15:19 +02:00
product-access.ts feat: show active product name in navbar, links to product page 2026-04-26 17:56:50 +02:00
rate-limit.ts actions: ideas CRUD + grill_md/plan_md edit + download (M12 T-496) 2026-05-04 19:47:30 +02:00
session.ts M10: Password-loze inlog via QR-pairing (ST-1001..ST-1008) (#12) 2026-04-28 00:01:04 +02:00
task-status.ts M12 / ST-1109: PBI krijgt een status (Ready / Blocked / Done) (#16) 2026-04-29 17:52:34 +02:00
tasks-status-update.ts M14: TaskDialog (create/edit) + story auto-promotion (#21) 2026-04-30 16:55:20 +02:00
user-agent.ts feat(ST-1135): UA-redirect bij login — phone naar /m/* (T-322/T-323/T-324) 2026-05-04 10:09:09 +02:00
utils.ts feat: ST-001–ST-005 foundation — scaffolding, Prisma, schema, seed, env 2026-04-22 21:04:48 +02:00