lab123/aws-sns
A Laravel wrapper for Amazon SNS that simplifies publishing messages to topics and integrating AWS notifications into PHP applications. Configure credentials once and send SNS notifications through a clean, familiar API.
Architecture fit. Unchanged in shape: the package remains a Laravel notification channel driver wrapping aws/aws-sdk-php, offering direct SMS (Publish to PhoneNumber) and topic fan-out (TargetArn). v2.0.0 does not add product surface — it is a compatibility and dependency-modernization release. That is the right call for a package this thin, but it confirms the original read: the durable value is roughly 50–150 lines of glue, and the strategic question is whether to own that glue or consume it.
Integration feasibility. Now materially better on the framework axis, worse on the governance axis.
^8.1, Laravel 10–13, Lumen 10/11, and AWS SDK v3 are explicitly declared. That resolves the single highest-probability blocker from the prior assessment (unverified framework drift) and confirms the original key question #2 — the package is on SDK v3, so it shares the standard aws/aws-sdk-php ^3.x constraint with Vapor, Flysystem S3, and SES mailers rather than pinning a legacy v2.^1.0 escape hatch for Laravel/Lumen 5 apps shows the maintainer is at least thinking about upgrade paths rather than silently breaking the long tail.PKSA-zwc5-qtrz-zm1n because there is no upstream fix. This is a per-project composer audit / CI suppression. It is defensible (the advisory is in the framework, not this package, and the package is merely documenting the workaround), but it means adoption now requires a documented risk acceptance and a compensating control, not just a composer require. Treat this as a governance work item, not a README footnote.MessageAttributes/SenderID/SMSType support are not addressed by the release notes. A breaking major that ships zero feature or reliability work is a strong signal about the maintainer's roadmap: expect compatibility upkeep only.Technical risk.
^1.0, which presumably carries the older SDK constraint. Anyone on Laravel 9 with shared AWS dependencies should not expect a supported path forward from this maintainer.PKSA-zwc5-qtrz-zm1n has no expiry date in the release notes. Whoever owns it must track whether Laravel ships a fix or whether the ignore must escalate to a real mitigation.Key questions.
composer.json only? (Partially answered by release notes — demand the CI evidence.)PKSA-zwc5-qtrz-zm1n affect, and is the ignore documented with a compensating control (WAF rule, input validation, feature disablement)? Is there an upstream Laravel fix in flight?^1.0 branch still receive security patches, or is it frozen? This determines whether Laravel 9 shops have any supported path.MessageAttributes, SenderID, SMSType, and PhoneNumber vs TargetArn selection — or is v2.0.0 strictly a dependency bump?ShouldQueue and honor Laravel's queue retry semantics?lab123it) and Packagist name (lab123/aws-sns) consistent, and is v2.0.0 actually tagged and published?Stack fit. Sharper than before. The package now only fits Laravel 10+ / PHP 8.1+ estates — which is most actively maintained applications as of this review. It remains a good fit for AWS-native Laravel services with existing SNS/SQS/SES IAM boundaries, and a poor fit for polyglot or non-AWS estates or teams with an established Twilio/Nexmo abstraction.
Migration path. Two entries remain, but the calculus has shifted:
^1.0 branch is an unsupported-looking backwater. Do not adopt; either upgrade the app first or write the ~100-line first-party channel. Owning it is now clearly cheaper than an unsupported dependency.SmsSender interface. Do not let vendor message classes leak into domain code. The advisory-ignore requirement makes swappability a governance necessity, not just hygiene.Compatibility. The SDK v3 alignment is the good news — it removes the classic collision with Vapor/Flysystem/SES. The remaining compatibility actions:
composer why aws/aws-sdk-php and confirm no conflicting constraint.PKSA-zwc5-qtrz-zm1n ignore to composer.json with a comment and a linked ticket, and confirm it does not mask other advisories in the same package or a transitive chain.Sequencing.
composer audit output with and without the ignore.ShouldQueue; verify retry and failure handling.Maintenance. Bus factor still one, but v2.0.0 is evidence the maintainer does track framework and SDK releases — upgrade this from "unknown" to "responsive on compatibility, silent on features." Fork-and-vendor internally remains the right plan if this becomes load-bearing; a package this small is cheap to own. Pin the exact version and review diffs before upgrades — as this release shows, a major bump can move both the PHP floor and the SDK major at once.
Support. MIT, community-only, no SLA. Additionally, adopters now absorb support burden for the advisory workaround, including tracking whether upstream Laravel ships a fix and when the ignore can be removed. Name an internal owner for that specific item.
Scaling. Unchanged. SNS topics scale; SMS throughput is governed by per-second spend limits and per-country rules. Cost is per message with significant country variance. Publish success ≠ delivery; a topic with zero subscribers returns success. Route sends through Laravel queues to absorb bursts and make retries explicit. Nothing in v2.0.0 changes any of this.
Failure modes to instrument.
Throttling / InvalidParameter (non-E.164 numbers) surfacing only as generic SDK exceptions.PKSA-zwc5-qtrz-zm1n) masking a later, unrelated advisory in the same audit path because the ignore rule is too broad. Scope the ignore narrowly and re-review it every dependency cycle.Ramp-up. Still low for the code — a Laravel developer is productive in under a day, and v2.0.0's explicit version matrix makes the "will this even install" question cheap to answer. The real ramp-up cost remains operational SNS knowledge (sandbox exit, sender IDs, origination numbers, spend limits, delivery-status logging), plus a new small burden: advisory-tracking discipline for the framework ignore. Total effort estimate is unchanged — the integration is trivial, the AWS SMS onboarding is not.
How can I help you explore Laravel packages today?