feat(api): InventoryTransaction endpoints (4 of 4 newly-migrated tables)#52
Merged
Merged
Conversation
Final entity from the 20260517000000 migration. Direct compId scoping via invtCompanyId — same auth shape as Worker. POST /v1/inventorytransaction GET /v1/inventorytransaction/:id GET /v1/inventorytransaction/bycompany/:id (newest first) PATCH /v1/inventorytransaction/:id (see note) DELETE /v1/inventorytransaction/:id (soft-delete via invtArch) Note on PATCH/DELETE: production accounting systems usually prefer reversing entries on a movement log rather than mutating existing rows. The endpoints are exposed for surface parity with the rest of the API; operators wanting audit-grade behavior can disable PATCH/DELETE at the reverse-proxy layer. invtDirection is constrained to 0 (inbound / received) or 1 (outbound / consumed) at the zod boundary. invtCompanyId is not patchable (would break auth invariants). After this lands, every BACPAC table has API endpoints. Tracker #49 can close. Tests: 28 files / 199 tests (was 27 / 191). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CryptoJones
added a commit
that referenced
this pull request
May 17, 2026
) Continues the housekeeping pattern of #44 — keep the README endpoint table and CHANGELOG \`[Unreleased]\` in sync with merged PRs. README: - Append rows for the four PurchaseOrder/Inventory entities that gained endpoints in #50, #51, #52. CHANGELOG (under \`[Unreleased]\`): - PurchaseOrder + Inventory API rollout (the tracker, #49, and its three PRs) - JSON_BODY_LIMIT env hook (#45 / #46 / #47) - npm audit fix + dep bumps + Snyk PR triage (#30 / #48) Co-authored-by: Aaron K. Clark <akclark@thenetwerk.net> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #49.
Summary
Final entity from the migration. Direct compId scoping (
invtCompanyId) — same auth shape as Worker.POST /v1/inventorytransactionGET /v1/inventorytransaction/:idGET /v1/inventorytransaction/bycompany/:id(newest first)PATCH /v1/inventorytransaction/:idDELETE /v1/inventorytransaction/:id(soft-delete via invtArch)After this merges, every BACPAC table has API endpoints. The 4-table rollout (#49) is complete.
invtDirectionconstrained to0(inbound) or1(outbound) at the zod boundary.Test plan
Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/