supportbook/ssm-parameters-bundle
Symfony bundle for integrating AWS Systems Manager Parameter Store (SSM) into your app, making it easy to load and manage configuration parameters, including secure values, through Symfony’s configuration system.
Config & secret delivery strategy (the core decision). This bundle sits at a decision point every PHP team eventually hits: where does runtime configuration live? Options are (a) committed .env files, (b) CI-injected environment variables, (c) a managed parameter store, (d) a dedicated secrets manager. Adoption of this package is effectively a vote for (c), with SSM Parameter Store as the system of record. That is a platform-architecture decision, not a library decision — frame it that way.
Build vs. buy vs. adopt vs. fork. The realistic comparison set:
aws-sdk-php (full control, real maintenance cost).Environment parity and preview/staging topology. Parameter-driven config lets the same artifact promote dev → staging → prod, and lets ephemeral/preview environments claim their own parameter namespace without code changes. This directly supports decisions about how many long-lived environments you can afford to run.
Rollback and change-management policy. If parameters are read at boot, a config change is a redeploy-free change — which is powerful and dangerous. This forces an explicit product decision: are parameter changes subject to the same review/approval path as code deploys, or do they become an out-of-band lever? CloudTrail gives you the audit trail, but policy is yours.
Cost tiering between SSM and Secrets Manager. Standard-tier SSM parameters are effectively free at typical volumes; Secrets Manager charges per secret per month. If your config is mostly non-secret or SecureString-encrypted, SSM is the cheaper primitive. This bundle makes that cost choice cheap to exercise.
Maturity and dependency-risk posture. 0 stars, 0 dependents, and release metadata that is inconsistent (a future-dated release cannot be read as evidence of active maintenance) mean this is not a "dependency" in the normal sense. The decision it supports is: do we accept an unmaintained MIT artifact behind an internal interface we control? The low overall score (≈20) versus a much higher opportunity score (≈47) is the tell — the category has real demand; this specific artifact has not earned trust. That gap argues for investing in the capability, not necessarily in this repo.
Framework fit — flag this early. Despite the brief describing a Laravel/PHP package, this is a Symfony bundle. It will not drop into a Laravel application. If your roadmap is Laravel-first, the honest decision this package informs is "we need an equivalent service-provider binding," not "we adopt this."
Consider it when all of these hold:
ssm:GetParameter, ssm:GetParametersByPath, and kms:Decrypt where SecureString is used.SecureString is workable but Secrets Manager is the better-shaped tool.Look elsewhere when:
aws-sdk-php inside a service provider, or a framework-agnostic config provider.For executives (one paragraph). We have an opportunity to move application configuration — and some secrets — out of repositories and CI variables and into AWS's managed parameter store, with a full audit trail and per-environment isolation. A small MIT-licensed Symfony bundle in this space makes a proof-of-concept cheap: days, not a quarter. The important caveat is that the specific package is immature (no community traction, no dependents, unverifiable release history), so we should budget a short hardening effort to vendor and own it, or spend modestly more to build a thin in-house equivalent. Either way, the strategic decision — managed config as the source of truth — is the thing worth approving; the library is interchangeable.
For engineering. It is a Symfony bundle that resolves SSM parameters into container configuration. Cheap to trial, cheap to remove if we wrap it behind an internal config interface rather than letting bundle-specific types leak into application code. Risks to price in: boot-time failure semantics (fail fast on a missing parameter vs. silently defaulting — we must choose), no obvious caching guarantee, and an unmaintained upstream. Recommendation: spike it behind an interface, with a documented fallback path to a first-party implementation.
For security and compliance. The upside is material: parameters live in AWS, access is IAM-scoped and CloudTrail-audited, SecureString values are KMS-encrypted at rest, and plaintext secrets leave CI and repository history. The conditions are non-negotiable — least-privilege read-only IAM policies scoped to the parameter path, KMS decrypt restricted to the same principals, no parameter values echoed into logs or build output, and a documented break-glass path if SSM is unavailable at boot.
For finance. Standard-tier SSM parameters carry no per-parameter monthly charge at our expected volume, which compares favorably with per-secret Secrets Manager pricing if we are storing configuration rather than high-churn credentials. Engineering cost is the dominant line item: roughly a few days to vendor, harden, and instrument the bundle, or one to two weeks for an in-house equivalent with tests.
Recommended decision. Approve the capability (managed parameter store as config source of truth) as a scoped pilot on one Symfony service. Do not approve this package as a long-term dependency without a named owner, a pinned commit, and an exit plan. The opportunity score says the space is worth entering; the maturity score says enter it with our own code.
How can I help you explore Laravel packages today?