netresearch/assetpicker-bundle
Symfony bundle that adds an asset picker form type and modal UI for selecting images or files from a configured asset source, making it easy to attach assets to entities through standard Symfony forms with a reusable picker widget.
Architecture fit
netresearch/assetpicker-bundle — a Symfony bundle, not a Laravel package. It ships a bundle class, DI service definitions, and an importable proxy route. It will not autoload its service wiring into a Laravel container as-is.to parameter and forwards the request. That is a small surface area, which is good for portability and bad for blast radius when it is wrong.assetpicker.proxy.http_client service that decorates the framework http_client with Symfony's NoPrivateNetworkHttpClient, leaving the application's own http_client untouched. This is the correct isolation pattern and means the fix does not alter unrelated outbound traffic in the host app.Integration feasibility
allowList argument.NoPrivateNetworkHttpClient-equivalent guard (Guzzle handler with explicit loopback/RFC1918/link-local/.internal blocking) into Laravel middleware. The port is a few days of work and duplicates upstream security logic, so it needs a named owner and a re-sync cadence against upstream advisories.Technical risk
169.254.169.254. On IMDSv1 that is direct credential theft; on IMDSv2 it is still reconnaissance and, absent a hop-limit restriction, token acquisition.403 Forbidden until explicitly allow-listed.NoPrivateNetworkHttpClient-style controls. Ask upstream directly; do not assume.gh attestation verify against a named signer workflow. This is a genuine compliance asset for our own SBOM and provenance obligations.main. Any CI, mirroring, or Renovate/Dependabot config pinned to master will silently break.Key questions
symfony/http-client >= 8.1 reachable on our current Laravel/Symfony version matrix, or does the documented allow-list fix require a framework upgrade?Stack fit
assetpicker.proxy.http_client with the allowList argument in services.yaml.Migration path
composer.lock across all repos for netresearch/assetpicker-bundle and record resolved versions.to parameter resolves to private/link-local ranges, and egress deny to 169.254.169.254 at the network layer). Do not wait for the composer bump.2.0.1, resolve symfony/http-client to ^8.1 where the framework permits.assetpicker.proxy.http_client with an explicit allowList limited to the specific internal hosts required — never a subnet-wide or wildcard entry.169.254.169.254 / an internal DNS name each return 403.gh attestation verify ... --signer-workflow netresearch/.github/.github/workflows/release-source-archive.yml, and pin the artifact hash.Compatibility
master references following the branch rename.Sequencing
Maintenance
Support
Scaling
Failure modes
403 Forbidden on legitimate internal asset storage immediately after upgrade — the most likely production symptom, and the one to pre-empt with a staged rollout.symfony/http-client cannot reach 8.1 and the allow-list argument is configured anyway.master → main branch rename in any pinned automation.Ramp-up
NoPrivateNetworkHttpClient documentation, specifically its redirect and DNS-resolution behavior.How can I help you explore Laravel packages today?