SRV-41 — API refinements found while building the back-office
Close the contract and API gaps the back-office pages hit, so the screens work as their specs say instead of through workarounds.
| Field | Details |
|---|---|
| Task code | SRV-41 |
| Phase | P1 — V1 build & integration |
| Product scope | V1 |
| Status | Done (Mon 19 Oct 2026) |
| Start | Mon 19 Oct 2026 |
| Due | Mon 19 Oct 2026 |
| Responsible | Anis — Full-stack developer |
| Co-responsible | — |
| Effort | 1.5 person-day(s) planned · 2.5 from scratch · size 1.5 |
| Area · app | Server · server |
| Depends on | SRV-27 |
| Unblocks | SRV-42 |
| Milestones | — |
Summary
Close the contract and API gaps the back-office pages hit, so the screens work as their specs say instead of through workarounds.
Description
Building the back-office pages (DSH-03…DSH-13) against the implemented API surfaced operations and fields the screens need but the contract lacks. Each item is additive: a new optional field, filter or operation, documented in the API reference and the endpoint catalogue in the same pull request, with the back-office page switched from its workaround to the new call.
Subtasks
| # | Subtask | Owner |
|---|---|---|
| 1 | admin.users.get (user detail for the global search and the users page) | Anis |
| 2 | admin.resellers.list: ids filter (export selection) and delegate name on map pins | Anis |
| 3 | admin.credit.list: credit accounts list with exposure and filters | Anis |
| 4 | Variant-level price list and bulk price update for the price grid (BO-31), with PriceChange rows | Anis |
| 5 | Deliveries: version on DeliveryCard; warehouse, cash-on-delivery and confirmation-date filters | Anis |
| 6 | Return events on the back-office live stream (return.requested, return.status_changed) | Anis |
| 7 | Admin order creation: allowed payment methods per reseller and the issues list | Anis |
| 8 | FIXED_PRICE promotions with one price per customer type; promotion preview for a customer type or guest | Anis |
| 9 | Attribute definitions: numeric range and show-on-product-sheet flag; banners bulk reorder | Anis |
| 10 | Imports: template download and history list; announcements: image, fr/ar body and customer-type audience | Anis |
| 11 | Staff assignee picker without users.view (assignable staff list) | Anis |
Deliverables
- Contract additions with OpenAPI re-export and changelog entry
- Server implementation and tests
- Back-office pages switched from their workarounds
Acceptance criteria
- Every item above is reachable through the contract and covered by a test
- The back-office pages no longer use the workarounds noted in PR #22 and #23
- check-coverage and the full test suite pass
Requirements covered
| Requirement | Title | Release |
|---|---|---|
| ADM-06 | Initial imports: products, resellers, user accounts, stock | V1 |
| CAT-06 | Product import/export (Excel/CSV) with a validation report | V1 |
Screens
API surface
| Endpoint group | Operations |
|---|---|
| Administration, settings & audit | 22 |
| Catalog & pricing | 19 |
Test measures
- Integration tests per new operation or filter
Risks
- Scope creep: anything that is not a gap found by a screen goes to the change-request process
KPI
- Delivered by Mon 19 Oct 2026 within 1.5 person-day(s).
- Every acceptance criterion above demonstrated before hand-off; linked requirements' acceptance criteria pass.
- Zero open critical defects, permission gaps or data-integrity regressions at sign-off.
Generated from content/plan/tasks.json by scripts/generate-team-tasks.mjs. Dates are computed by the scheduler (Sunday–Thursday weeks, holidays excluded) — change the plan, not this page.
SRV-27 — Data imports — products, resellers, users, stock
Excel/CSV import jobs with templates, dry-run validation report, idempotent apply and error rows export.
SRV-28 — Hardening — security, performance, backup restore test
Security headers and rate limits review, permission test sweep, slow-query and index pass, load test of catalog/search and checkout, restore of a backup into a fresh database.