34 lines
1.1 KiB
JSON
34 lines
1.1 KiB
JSON
{
|
|
"id": "phase1-foundation-16",
|
|
"seq": "16",
|
|
"title": "Create password reset APIs",
|
|
"status": "completed",
|
|
"depends_on": ["11"],
|
|
"parallel": false,
|
|
"context_files": [
|
|
"/Users/kunthawatgreethong/Gitea/moreminimore-vibe/Websitebuilder/.tmp/sessions/phase1-foundation/context.md",
|
|
"/Users/kunthawatgreethong/.config/opencode/context/core/essential-patterns.md"
|
|
],
|
|
"acceptance_criteria": [
|
|
"POST /api/auth/forgot-password endpoint created",
|
|
"Generates reset token",
|
|
"Stores token in database",
|
|
"Returns success response (email not exposed)",
|
|
"POST /api/auth/reset-password endpoint created",
|
|
"Verifies reset token",
|
|
"Hashes new password",
|
|
"Updates user password",
|
|
"Deletes reset token",
|
|
"Error handling for expired/invalid tokens",
|
|
"Unit tests written with Vitest",
|
|
"Tests pass with 90%+ coverage"
|
|
],
|
|
"deliverables": [
|
|
"src/app/api/auth/forgot-password/route.ts",
|
|
"src/app/api/auth/reset-password/route.ts",
|
|
"src/services/auth.service.ts (updated)",
|
|
"src/app/api/auth/forgot-password/__tests__/route.test.ts",
|
|
"src/app/api/auth/reset-password/__tests__/route.test.ts"
|
|
]
|
|
}
|