- Shipped
- July 18, 2026 at 6:08 PM UTC
- Author
- kamo
- Commit
- 594e861
Rate-sheet ingestion existed end-to-end in the backend and none of it was reachable. This adds the one surface that walks the whole chain: upload an investor's sheet -> ingest it -> see exactly what the extractor read, cell by cell with its provenance -> approve/reject -> publish the approved rows as a priceable rate-sheet version. The panel is honest about what it will actually do: it previews how many approved rows have BOTH a rate and a price (only those publish) and says plainly that a half row is skipped rather than guessed. Nothing reaches the catalog before approval. Also adds the /api/security/mlos/catalog and /api/security/mlos/identifiers proxy routes. Both panels shipped without one, so every call from them 404'd at the Next layer and never reached SecurityService at all.