Files
2026-11-02 20:29:34 +02:00
..
2026-11-02 20:29:34 +02:00
2026-11-02 20:29:34 +02:00
2026-11-02 20:29:34 +02:00

Inventory read projection

Read-only SQL projection over Purchasing's stock_items, warehouses and append-only stock_movements (quantity_milli, snapshot, moved_at). No stock writer, balance table, new financial engine or dependency installation.

The host supplies an already authorised source tenant and explicit warehouse IDs. InventoryReader does not authenticate users or infer company/unit mapping. The SGF adapter revalidates its own session/module/context/stock.view, permits only testing bindings and obtains its own read-only repeatable-read transaction. Configuration is empty by default. The schema name is host-controlled, validated and never accepted from HTTP.

revision() uses count/max of the scoped append-only ledger and SQL catalogue hashes. A signed host token detects source/catalogue/mapping/context changes between pages; it is a refresh-on-change protocol, not a historical snapshot preserved across requests. Append-only is a prerequisite: using a mutable ledger could invalidate this protocol. Each page uses one database snapshot. Metadata hashing remains proportional to the source catalogue in SQL and is included in the timings.

page() supports items, warehouses, balances and movements with server filtering, exact integer/string quantities and stable ordering. It never exposes raw snapshots or financial values. Balance rows exist only for pairs with eligible movements; catalogue items without movements do not create a cross-product of fabricated balances. Reserved/blocked/available remain null.

The initial delivery exercised SGF and the reader directly. The subsequent two-application API delivery exercises authenticated SGF and Purchasing kernels with equivalent isolated fixtures and a verified local artifact. InventoryReadSession now owns the shared transaction/token protocol. Purchasing's existing stock page/writers, receipt/consumption integration and real deployment remain separate. No network login/browser proof is implied.