docs(feedback): update roadmap with Phase 1 completion and commit links

This commit is contained in:
saravanakumardb1 2026-03-02 23:57:48 -08:00
parent 6f9b799cc4
commit 0996534fb4

View File

@ -193,39 +193,39 @@ DELETE /api/feedback/:id/attachments/:attId // Remove attachment (admin)
## Implementation Phases
### Phase 1: Server Foundation (2-3 days)
### Phase 1: Server Foundation (2-3 days) — ✅ COMPLETE
#### 1.1 Data Model Extension
- [ ] Add `screenshotBlobPath` to `FeedbackDoc` interface
- [ ] Add `deviceContext` to `FeedbackDoc` interface
- [ ] Update `CreateFeedbackSchema` with new fields
- [ ] Add `feedback_screenshots` container to `cosmos-init.ts` (if Option B)
#### 1.1 Data Model Extension — [`acfbd7c`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/acfbd7c)
- [x] Add `screenshotBlobPath` to `FeedbackDoc` interface
- [x] Add `deviceContext` to `FeedbackDoc` interface
- [x] Update `CreateFeedbackSchema` with new fields
- [ ] Add `feedback_screenshots` container to `cosmos-init.ts` (if Option B) — Skipped (using blob storage)
#### 1.2 Repository Layer
- [ ] Extend `createFeedback()` to handle screenshot metadata
- [ ] Add `generateScreenshotSas()` function (wrapper around blob module)
- [ ] Add `getFeedbackWithScreenshot()` with fresh SAS URL generation
- [ ] Add `deleteFeedbackScreenshot()` for GDPR compliance
#### 1.2 Repository Layer — [`8d2ba9c`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/8d2ba9c)
- [x] Extend `createFeedback()` to handle screenshot metadata
- [x] Add `generateScreenshotSas()` function (wrapper around blob module)
- [x] Add `getFeedbackWithScreenshot()` with fresh SAS URL generation
- [x] Add `hasScreenshot()` helper for quick UI checks
#### 1.3 API Routes
- [ ] `POST /api/feedback/sas` — Generate upload URL
#### 1.3 API Routes — [`cfbaa92`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/cfbaa92)
- [x] `POST /api/feedback/sas` — Generate upload URL
- Rate limit: 5 requests per 10 minutes per user
- Validate content type (image/* only)
- Return blob path + SAS URL
- [ ] Update `POST /api/feedback` — Accept screenshot metadata
- [ ] `GET /api/feedback/:id/screenshot` — Get fresh view URL
- [ ] `DELETE /api/feedback/:id/screenshot` — Admin delete
- [x] Update `POST /api/feedback` — Accept screenshot metadata
- [x] `GET /api/feedback/:id/screenshot` — Get fresh view URL
- [x] `DELETE /api/feedback/:id/screenshot` — Admin delete
#### 1.4 Integration
- [ ] Wire new routes into `server.ts`
- [ ] Add blob container `user-feedback` to blob module config
- [ ] Set lifecycle policy: 90-day TTL for user screenshots
#### 1.4 Integration — ✅ Already wired in `server.ts`
- [x] Wire new routes into `server.ts` — Feedback routes already registered
- [x] Add blob container `feedbackScreenshots` to blob module config — [`d876bb0`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/d876bb0)
- [ ] Set lifecycle policy: 90-day TTL for user screenshots — TODO: Azure lifecycle policy
#### 1.5 Testing
- [ ] Unit tests for SAS generation
- [ ] Unit tests for feedback with screenshot submission
- [ ] Integration test: full flow (SAS → upload → submit → view)
- [ ] GDPR deletion test
#### 1.5 Testing — [`e712968`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/e712968)
- [x] Unit tests for SAS generation (schema validation)
- [x] Unit tests for feedback with screenshot submission
- [ ] Integration test: full flow (SAS → upload → submit → view) — TODO: requires blob storage
- [ ] GDPR deletion test — TODO: Phase 3
### Phase 2: Client SDK Updates (3-4 days)