itk-dev/vault-bundle
Symfony bundle for integrating HashiCorp Vault with your PHP application. Configure Vault connections and authentication, read and manage secrets, and inject Vault-backed values into Symfony services and configuration. Helps keep sensitive credentials out of code and environment files.
Architecture fit
Unchanged in substance: itk-dev/vault-bundle remains a Symfony bundle, hooking Bundle/Extension/CompilerPass and resolving secrets into the DI container at boot. 1.0.0 does not add a Laravel service provider, config repository, or framework-agnostic facade, so the delivery mechanism is still foreign to a Laravel codebase. The underlying capability (Vault KV v1/v2 retrieval, AppRole/K8s/token auth) remains stack-neutral and valuable, but we still consume it as a reference implementation plus client dependency, not as an installable Laravel package. Verdict unchanged: strong Symfony fit, weak Laravel fit without an adapter we own.
Integration feasibility
Technical risk
@rimi-itk) landed the Symfony 8 work — the first evidence of anyone besides the originating agency committing. That is a positive signal but a single PR is not a maintainer bench, SLA, or succession plan.0.1.2...1.0.0, and a jump from 0.1.x straight to 1.0.0 with only two PRs and no documented breaking changes. A 1.0.0 tag is a promise about API stability; this one appears to have been cut to mark "Symfony 8 support" rather than after an API-stabilization process. Do not read 1.0.0 as a maturity signal.Key questions
config:cache semantics?Stack fit Targets PHP 8.x on Symfony 6/7, now with Symfony 8 declared support. It still assumes Symfony DI internals, PSR-3 logging, and (likely) a PSR-18 HTTP client — no overlap with Illuminate's container. In a Laravel-standard estate this remains a reference implementation and a Vault client dependency, not an installable solution. The 1.0.0 release expands the set of Symfony services we can adopt it in; it does nothing for Laravel.
Migration path Unchanged, with one adjustment: prefer Symfony 8 targets for greenfield Symfony work now that support is declared, but validate that path independently rather than assuming a version-constraint bump equals tested compatibility.
VaultConfigRepository service provider around the same client library the bundle wraps, so auth semantics stay consistent across the estate..env files and CI variables; leave only Vault address and bootstrap role/secret-id.Compatibility
Pin the bundle and its transitive dependencies — now more important, since a 1.0.0 tag invites wider constraint ranges (^1.0) and the Symfony 8 support is one PR old. Symfony major upgrades (6→7→8→9) remain the likeliest breakage point because bundles reach into DI internals; the 1.0.0 release is itself evidence that framework-version support arrives as point releases, so budget for it recurring. Audit at every PHP minor. Verify Vault server version compatibility separately — the Symfony 8 work says nothing about tracking current Vault releases.
Sequencing PoC in a non-production Symfony service (now preferably on Symfony 8, to prove the new path) → validate auth, rotation, and unreachable-Vault behavior → security review of caching and logging paths → build the Laravel adapter in parallel if needed → staging → production. Do not place this on the boot path of a high-traffic Laravel application until the fallback/caching story is proven. Treat the 1.0.0 upgrade as a normal dependency bump requiring regression testing, not as a drop-in.
Maintenance We remain de facto maintainers on adoption. The realistic posture is fork-and-vendor: pin a known-good commit (1.0.0 if it clears validation, otherwise 0.1.2), keep a local patch branch, and budget recurring time for PHP/Symfony/Vault-API upgrades. The second contributor slightly raises the chance upstream keeps pace with Symfony releases; it does not transfer ownership of our break/fix. MIT license keeps this straightforward — the risk is unbudgeted drift, not legal friction.
Support Community support is still thin; expect unanswered issues. The new contributor is a hopeful signal about maintenance continuity, not a support channel. If we need guaranteed turnaround, negotiate with itk-dev or accept that internal engineering owns break/fix. Document this before adoption.
Scaling
Unchanged: Vault calls scale with instance count and redeploy frequency, not request volume. Watch autoscaling fleets doing mass cold starts (auth-method rate limits, AppRole secret_id quotas), long-lived processes (queue workers, Octane/Swoole) outliving short token TTLs unless renewal exists, and cross-region latency at every cold start.
Failure modes
composer update could change config keys, service IDs, or resolution timing with no release notes to point at. Pin exactly and diff the source before upgrading.config:dump, Laravel config:cache) can bake secrets into artifacts — verify explicitly as a CI/CD hygiene item.Ramp-up A Symfony team is productive in hours. A Laravel team needs days to weeks to build and validate an adapter, plus security review, runbook authoring, and on-call training. Budget the security review as a first-class deliverable — this package sits directly on the secrets path, has almost no external scrutiny to lean on, and just shipped its first major version with a two-line changelog.
How can I help you explore Laravel packages today?