Skip to content

fix(network): validate + preserve eRPC overlay entries on set/reset#782

Merged
bussyjd merged 1 commit into
integration/v0.14.0-rc0from
fix/erpc-overlay-hardening
Jul 16, 2026
Merged

fix(network): validate + preserve eRPC overlay entries on set/reset#782
bussyjd merged 1 commit into
integration/v0.14.0-rc0from
fix/erpc-overlay-hardening

Conversation

@bussyjd

@bussyjd bussyjd commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Mediums from the PR #756 review of the new #772 eRPC overlay. erpc set validates each network entry has a usable merge key before persisting (a bad overlay could crash-loop eRPC on every stack up while reporting success). erpc reset restores chart-base/recorded entries the overlay had replaced instead of deleting them (which left chains unroutable). erpc status reads the ConfigMap hash annotation to report in-sync/drifted. Ratelimiter merge doc corrected.

https://claude.ai/code/session_014YjPMViNrZ7zBVgUQzwEKk

#772 eRPC operator overlay hardening:

- SetERPC/parseERPCOverlay now rejects network entries that would get an
  empty networkMergeKey (no evm.chainId or alias) and catches cheap type
  errors (evm not a map, chainId not numeric, alias not a string), so a bad
  overlay fails `erpc set` instead of persisting and duplicating/crash-
  looping eRPC on every merge.

- ResetERPC/stripERPCOverlay now tracks provenance (erpc-overlay-provenance.yaml,
  written by captureERPCProvenance before the first merge of each
  overlay-owned key) so reset RESTORES chart-base/recorded entries an
  overlay replaced instead of deleting them outright, while still dropping
  entries the overlay purely added. Success message now reflects this.

- StatusERPC best-effort reads the erpc-overlay-hash ConfigMap annotation
  and reports ClusterSync (in-sync/drifted/not-applied) so drift between
  the on-disk overlay and the live cluster is visible; `erpc status` CLI
  output surfaces it.

- Fixed the RateLimiters doc comment (budgets merged by id, other keys
  replaced) to match mergeRateLimiters' actual shallow-replace behavior.

Tests: reject-no-merge-key-network, reject-bad-chainId-type, reset-restores-
replaced-base-entry (also verified it fails against the old drop-only
strip), and drift-status table test.

Claude-Session: https://claude.ai/code/session_014YjPMViNrZ7zBVgUQzwEKk
@bussyjd
bussyjd merged commit 221e980 into integration/v0.14.0-rc0 Jul 16, 2026
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