Skip to content

Validate request path segments and install the release build from the lockfile - #302

Merged
jfrench9 merged 4 commits into
mainfrom
bugfix/input-validation-hardening
Oct 25, 2026
Merged

jfrench9 merged 4 commits into
mainfrom
bugfix/input-validation-hardening

Conversation

@jfrench9

Copy link
Copy Markdown
Member

Summary

Hardening from a platform security review; companion to the robosystems bugfix/input-validation-hardening PR. Public text is deliberately brief.

  • createGraphQLClient and SSEClient validate the value interpolated into a request path as a single segment and encode it
  • SDK regenerated for the API's new request fields (browser_nonce_hash, browser_nonce, expected_updated_at) — additive, generated tier
  • Release job installs from the committed lockfile with npm ci --ignore-scripts

Client contract

Additive: a client minor. createGraphQLClient now throws on a graphId that is not a single path segment — ids as the API issues them are unaffected.

Test plan

  • npm run test — 495 passed (new clients/pathSegment.test.ts)
  • npm run typecheck, npm run lint

🤖 Generated with Claude Code

@jfrench9

Copy link
Copy Markdown
Member Author

Companion PRs for the one release: robosystems RoboFinSystems/robosystems#1945 · robosystems-core RoboFinSystems/robosystems-core#98 · robosystems-typescript-client #302 · robosystems-python-client RoboFinSystems/robosystems-python-client#286 · robosystems-app RoboFinSystems/robosystems-app#518 · roboledger-app RoboFinSystems/roboledger-app#527

The release job installs with npm ci; CI does the same, so a lockfile out of step with package.json fails on the pull request rather than at publish.
@jfrench9
jfrench9 merged commit e21a0ec into main Oct 25, 2026
5 checks passed
@jfrench9
jfrench9 deleted the bugfix/input-validation-hardening branch October 25, 2026 02:12
jfrench9 added a commit that referenced this pull request Oct 25, 2026
Doc-only follow-up to #302: the `LedgerEventHandler` and
`updateEventHandler` comments now say that approving an AI-suggested
handler sends `expected_updated_at` (the `updatedAt` the person
reviewed) and that the API answers 409 if the handler changed since. No
code change; rides the next minor.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant