Task: Add batch support for saves and deletes
This page documents a task in the Batch operations story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Make save + delete atomic at the batch level.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Batch operations |
| Now | Completed 2026-02-28. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-02-28 |
Acceptance
save_*_requesttakesstd::vector<entity>;save_*_responsereturns/{success, message/}(single outcome).- Batch delete uses SQL
WHERE IN (...)for atomicity across 23 entities inores.dq,ores.refdata,ores.trading,ores.iam. - Repository, service, and message-handler layers all align with the new shape.
- Temporal guard for IAM entities (
tenant_type,tenant_status) —valid_to = maxconstraint preserves historical rows. save_result.hppintroduced then later removed as dead code.- Protocol 46.0 (breaking).
Plan
Captured during execution; cleared into the parent story on close.
Notes
Closes a class of partial-write bugs and aligns repository / service / handler conventions.
Result
Batch operations atomic.