candle-annotator/src/app/api
Marko Djordjevic 9a5e325632 feat(auth): add POST /api/auth/register endpoint (task 4.1)
Validates email presence and password length (8+ chars), checks email
uniqueness with 409 on conflict, hashes password with bcryptjs (cost 12),
inserts user into the users table and returns 201 with id/email/name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 10:14:55 +01:00
..
annotation-types fix: add parseInt(value, 10) with isNaN() guards to all integer query param parsing 2026-02-18 11:19:26 +01:00
annotations fix: add parseInt(value, 10) with isNaN() guards to all integer query param parsing 2026-02-18 11:19:26 +01:00
auth feat(auth): add POST /api/auth/register endpoint (task 4.1) 2026-02-20 10:14:55 +01:00
candles fix: add parseInt(value, 10) with isNaN() guards to all integer query param parsing 2026-02-18 11:19:26 +01:00
charts fix: wrap chart cascade delete in db.transaction() and add spanAnnotations deletion 2026-02-18 11:17:19 +01:00
export security: add CSV injection protection to all export routes 2026-02-18 11:20:36 +01:00
health fix: replace error.message with generic "Internal server error" in all API catch blocks 2026-02-18 11:16:02 +01:00
model feat: add Zod schema validation to model/load route 2026-02-18 11:13:13 +01:00
patterns feat: add Zod schema validation to patterns/detect route 2026-02-18 11:14:36 +01:00
predict Fix predict proxy schema and error messages 2026-02-18 23:38:17 +01:00
span-annotations security: add CSV injection protection to all export routes 2026-02-18 11:20:36 +01:00
span-label-types fix: add parseInt(value, 10) with isNaN() guards to all integer query param parsing 2026-02-18 11:19:26 +01:00
training fix(training): use selected chart and include TA-Lib span sources 2026-02-18 23:21:23 +01:00
upload fix: replace error.message with generic "Internal server error" in all API catch blocks 2026-02-18 11:16:02 +01:00