KamoCRM

KamoLOS checks the PLOS right and the organization on every route, and opens a one-time-key door (SITP TP02)

Fixkamolos
Shipped
October 18, 2026 at 6:30 PM UTC
Author
Kamo
Commit
9d50e15

KamoLOS enforced no right: kamo-internal's /api/los proxy was the only gate. LosRightsFilter now applies the proxy's own requiredRight() table (LosRights) to every /api/los/** request: a signed-proxy caller is judged on member_rights_applied, an OTK caller on its session's rights (or an open god-mode window). No member is a 401, a missing right a 403 naming it. Nobody loses access: same table, and the proxy's session rights are computed from the same applied rights (and the personal-loan tables hold no rows today). Org checks (TenantScope; a foreign id is a 404): offers get/send/accept/decoder/rescind and by-borrower; the offer e-sign sign route (envelope in the org, LOAN_OFFER only, and only the offer's borrower signs: 403 otherwise); products get/update/delete/toggle and by-market; fee waive; autopay get/enable/pause/cancel; payment methods **************** and payment methods named in pay-now/autopay; manual adjustment, promise to pay, pay-now, record-manual, draws and charge-off confirm by their loan; audit events by-loan/by-offer, and the regulator search is bounded to the caller's organization (OrgLoanAuditEventRepository). Identity: ProxyHmacFilter keeps the signed-header door (ON in production: LOS_PROXY_HMAC_ENABLED=true, verified live: an unsigned request is a 401) and adds X-OTK, the door the other services give a session holder such as the SI tool plane: the key is consumed once, and X-Org-Id/X-Member-Id are replaced by the session's, whatever the caller sent. The stale 'HMAC off in production' comments are corrected.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing