1.0 KiB
1.0 KiB
Entries CRUD Plan
Focus
Implement entry CRUD (list/create/update/delete) scoped to active group. Ensure list endpoints never return receipt bytes.
Goals
- Create, read, update, delete entries for active group only.
- Enforce server-side membership/authorization.
- Keep receipt bytes out of list responses.
Planned changes
Backend
Routes:
GET /api/entries(list for active group)POST /api/entries(create)PATCH /api/entries/:id(update)DELETE /api/entries/:id(delete)
Helpers:
requireActiveGroup(userId)requireGroupMember(userId, groupId)
Frontend
- Basic entries list + create form on dashboard.
Tests
- API tests for create/list/update/delete with group scoping.
Files impacted
apps/web/app/api/entries/*apps/web/lib/server/entries.tsapps/web/lib/client/entries.tsapps/web/hooks/use-entries.tsapps/web/components/entries-panel.tsxapps/web/app/page.tsxapps/web/__tests__/entries.test.ts
Status
- Implemented
Test output
entries CRUD