Repository navigation
Harden input validation and authorization on the query, schema, SSO and MCP surfaces - #1945
Conversation
|
Change classification: normal — platform or application code changed. A normal change carries a documented automated review on this pull request before merge, in place of a second human approver. The |
|
@claude please review this PR |
|
Claude finished @jfrench9's task in 46s —— View job Review of #1945: input validation and authorization hardeningI read the non-test source diff (about 40 files) and spot-checked the surrounding code. I did not run the test suite. The PR description reports Verdict: The approach is sound, and the changes line up with the descriptions in the PR body. I found no blocking defects. Items 1–3 are worth fixing before merge, and the rest are minor. Should fix
Minor / nits
Looks good
Not checked: CI results, the workflow and Dockerfile changes ( |
|
Deploy precondition: boot validation in prod and staging now refuses a placeholder or short |
|
Precondition confirmed 2026-10-24: prod and staging both carry real endpoint secrets; nothing to set before deploying. |
|
Review addressed in the three commits after |
Summary
Hardening from an independent platform security review; the full record is in the private vault (
archive/security-audit-2026-10-24.md). Public text is deliberately brief and non-actionable.browser_nonce_hashon exchange,browser_nonceon complete — optional until the apps send them)AuthorizationRevoked)expected_updated_at; 409 on mismatch); a rename over MCP counts as a change to what it books, since a template readshandler.nameClient contract
Additive request fields → client minor; regenerated in robosystems-typescript-client #302 and robosystems-python-client #286.
extra="forbid"on the listed command bodies is generated-tier.Companion PRs and deploy order
API (this) → robosystems-core #98 + the two clients publish → robosystems-app RoboFinSystems/robosystems-app#518 → roboledger-app #527 (+ a roboinvestor-app bump for the core nonce). Until roboledger-app ships, approving an AI-suggested posting rule returns 409.
Test plan
just test— 17,480 passed; the one failure was the approval journey test, updated for the new field and re-run green with its file🤖 Generated with Claude Code