Skip to content

Add new admin endpoints + is_multichain field (DX-5284)#23

Merged
johnpmitsch merged 3 commits into
mainfrom
dx-5284-add-new-admin-functionality
May 21, 2026
Merged

Add new admin endpoints + is_multichain field (DX-5284)#23
johnpmitsch merged 3 commits into
mainfrom
dx-5284-add-new-admin-functionality

Conversation

@johnpmitsch

@johnpmitsch johnpmitsch commented May 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Closes gaps between the Quicknode Admin OpenAPI spec and the SDK surface. Linear: DX-5284.

  • 3 new endpoints on AdminApiClient:
    • get_rate_limits(id) — list endpoint rate-limit rows with their source (plan_default / user_override) and any override_id.
    • delete_rate_limit_override(id, override_id) — delete a user-set override by UUID.
    • get_endpoint_urls(id) — fetch http/wss URLs (plus multichain_urls) without pulling the full endpoint.
  • Verb swapupdate_rate_limits now sends PATCH instead of the deprecated PUT. Signature unchanged; partial-update semantics unchanged.
  • New response fieldis_multichain: bool on both Endpoint and SingleEndpoint. Marked required in the spec.
  • Polyglot coverage — all three bindings (Python, Node, Ruby) get the new methods, with response types registered on each module, RBS signatures, and __init__.py / sdk.d.ts exports updated.
  • Examples & READMEs updated across all four languages; e2e files include a typed-exception assertion on a deliberate 404 from delete_rate_limit_override.

Also folds in a one-line manifest fix to crates/core/Cargo.toml: streams_e2e was missing its required-features = ["rust"] gate, so the default-feature build couldn't find CreateStreamParams::builder() (the derive lives under feature = "rust"). Unrelated to DX-5284 but tiny and previously blocking --examples builds.

Test plan

  • cargo check && just lint — clean
  • cargo test -p quicknode-sdk --lib — 196 pass (+6 new wiremock tests)
  • just python-build && just node-build && just ruby-build — all clean
  • cargo check -p quicknode-sdk --examples — all 6 examples compile (was failing on streams_e2e before the manifest fix)
  • Run each language's e2e example against the real API to verify is_multichain, get_rate_limits, update_rate_limits (PATCH), delete_rate_limit_override (404 path), and get_endpoint_urls end-to-end.

Note

Medium Risk
Adds new admin API surface across Rust/Node/Python/Ruby and changes update_rate_limits to use PATCH, which could break callers if the backend still expects PUT or if partial-update behavior differs. Data model expansion (is_multichain) is low risk but may affect deserialization expectations in generated bindings.

Overview
Closes gaps in the Admin SDK by adding three new endpoint helpers: get_rate_limits (lists enforced rate-limit rows with source and optional override_id), delete_rate_limit_override (removes a user override by UUID), and get_endpoint_urls (fetches HTTP/WSS URLs plus optional per-network multichain_urls).

Changes update_rate_limits to send PATCH instead of PUT and updates docs/tests/examples accordingly. Also extends endpoint models with a new is_multichain boolean, wires the new types/methods through the Node/Python/Ruby bindings (exports, stubs/types, module registration, RBS), and fixes streams_e2e example gating in crates/core/Cargo.toml.

Reviewed by Cursor Bugbot for commit 3ec1de7. Configure here.

Surface four admin endpoints the API now supports but the SDK didn't:
get_rate_limits, delete_rate_limit_override, and get_endpoint_urls
are new; update_rate_limits switches from the deprecated PUT to the
canonical PATCH (signature unchanged). Adds the is_multichain field
to Endpoint and SingleEndpoint to match the spec.

Also gates the streams_e2e example on the rust feature in
crates/core/Cargo.toml — without it, the default-feature build
couldn't find CreateStreamParams::builder() (bon-derived under
feature = "rust"). One-line manifest fix folded in.
@linear

linear Bot commented May 20, 2026

Copy link
Copy Markdown

Endpoint ids are numeric, so replace the placeholder "ep-123"
with "123" in the new get_rate_limits / delete_rate_limit_override /
get_endpoint_urls snippets across all four per-language READMEs.
@johnpmitsch johnpmitsch merged commit 3995e61 into main May 21, 2026
4 checks passed
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