tourze/json-rpc-check-ip-bundle
tourze/json-rpc-check-ip-bundle is a Symfony bundle that adds IP-based access control to JSON-RPC endpoints. It helps allow or deny requests by client address, enforce trusted-network rules, and protect RPC services with simple configuration.
tourze/json-rpc-check-ip-bundle is a Symfony bundle (not a native Laravel package) that adds IP-based gating around JSON-RPC handling. Release 0.0.3 ships with no descriptive changelog — the notes are only a compare link between 0.0.2 and 0.0.3 — so treat it as a maintenance/patch bump and read the diff before upgrading. Nothing in the release indicates new features, deprecations, or breaking changes, but at 0.0.x there is no semver guarantee either way.
Where to look first, in order:
composer.json — confirm the Symfony/JSON-RPC component constraints it pulls in; that tells you which host framework versions it will even install against.src/*Bundle.php, src/DependencyInjection/) — this is where the checker service, its tag, and default config keys are registered.CheckIp, IpChecker, *Matcher) — that is the piece you will actually reuse or replace.First practical use case: restricting a JSON-RPC endpoint so only internal networks or partner IP ranges can call administrative methods, while leaving read-only/public methods open.
Install with composer require tourze/json-rpc-check-ip-bundle, register it in config/bundles.php, and (on Laravel) plan on a thin bridge — a service provider that binds the checker and a middleware wrapping the JSON-RPC route. Do not expect Laravel-native discovery, config publishing, or a facade.
0.0.x bump a one-file change.admin.*, internal.*) rather than the whole endpoint; public methods rarely need IP checks and blocking them breaks clients.RPC_ALLOWED_CIDRS), not hardcoded, so ops can change a partner range without a deploy.Request::setTrustedProxies(), Laravel TrustProxies) so the checker sees the real client address. Without this every request looks like it comes from the balancer and the allowlist is meaningless.-32000/-32600 with the HTTP status your clients tolerate.REMOTE_ADDR. Functional tests should build requests with a server array (['REMOTE_ADDR' => '10.0.0.5']) and assert both allow and deny paths, plus the header-spoofing path.0.0.x churn. Pin the exact version ("0.0.3", not ^0.0) and keep the adapter class described above. Assume method signatures can change between patches.0.0.2...0.0.3 yourself (composer diff / GitHub compare) and check whether the change is only CI, composer.json, or code. In a pre-1.0 package a silent behaviour change is entirely possible.::ffff:127.0.0.1 frequently misses an 127.0.0.0/8 rule. Normalise before matching and add a test per family.X-Forwarded-For unless trusted proxies are configured; otherwise a client sets their own allowlisted IP.bin/console cache:clear (and check OPcache in prod) before concluding the rule "doesn't work".How can I help you explore Laravel packages today?