Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Envoyer Sdk Laravel Package

juststeveking/laravel-envoyer-sdk

A Laravel SDK for the Envoyer deployment service, giving you a clean, fluent interface to manage projects, servers, deployments, and hooks from your app or artisan commands. Simplifies Envoyer API calls with typed requests and Laravel-friendly responses.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This package is a thin, resource-oriented client over the Envoyer REST API — a service-layer dependency, not an architecture decision. A TPM should frame it narrowly: it enables a small, well-bounded set of features in Laravel apps that already deploy through Envoyer — an admin "Deploy now" control, a per-project release-status widget, deploy triggers from internal tooling or chat ops. It is architecturally worthless if Envoyer is not the deployment mechanism (Forge, Vapor, GitHub Actions, bespoke pipelines). The non-negotiable design-review requirement is that it sits behind an internal interface (e.g. an EnvoyerDeployer service) so neither the package nor the Envoyer API contract leaks into controllers or product code. That wrapper is the entire exit strategy; treat it as a delivery requirement, not a style preference.

Integration feasibility. Low-to-moderate engineering effort, higher verification effort. Composer install, service provider, publishable config, and an account API token get you to "authenticated." The real work is: enumerating the exact operations our use cases need (list projects/servers/environments, trigger deployment, poll status, hooks, collaborators), proving coverage, and exercising the whole path against a throwaway Envoyer project with a real token. Budget days, not weeks — but do not let anyone conflate "installed" with "validated." Explicitly socialize that a successful trigger response means the deployment was accepted, not completed; state modeling must be a status enum with terminal states, never a boolean.

Technical risk. Four items drive the risk picture, and each needs a named decision owner:

  1. Single-maintainer, near-zero adoption. 39 stars, 0 dependents, last release 2022-05-31. The sole major release (v2.0.0) was one PHP 8 support PR from a first-time contributor, with no API-surface detail in the changelog. Longevity cadence and security-response capability are unproven.
  2. Undocumented break surface. A major bump documenting only "PHP8 Support" almost certainly moved transitive floors (Saloon/Guzzle) and tightened types/return signatures. Those failures surface at runtime, not at composer update — treat v2.0.0 as breaking until diffed against our call sites and smoke-tested.
  3. Account-scoped credential. The Envoyer token can trigger deployments on every project the account owns. That is a broad blast radius for a secret in application config or a CI variable. It needs an owner, a rotation runbook, and a revocation procedure before first use.
  4. Framework drift. Roughly three years without releases means current Laravel major support is unverified, and a fork or local patch is a realistic outcome at the next framework upgrade. The internal wrapper is what caps that cost at days.

Risk acceptance boundary to state out loud: acceptable for low-criticality automation with an internal owner; not acceptable as an unmonitored path that production releases depend on.

Key questions to close before committing:

  • What PHP/Laravel versions are actually supported today, and has anyone validated against our current Laravel line?
  • What precisely changed from v1.4.0 to v2.0.0 beyond the runtime floor — signatures, HTTP client version, config keys, facade alias?
  • Which Envoyer operations does the SDK cover versus what our use case requires, and where it's incomplete, are we comfortable dropping to the raw HTTP client inside our wrapper?
  • Is the Envoyer API contract we depend on stable, and does it publish a deprecation policy?
  • How is the token scoped in practice, who owns rotation, and what is the revocation runbook?
  • Is there test coverage we can trust as a regression signal, or are we the test suite?
  • What is the exit cost if the package is abandoned — how many call sites, and can we swap to a hand-rolled client in days?

Integration Approach

Stack fit. Good fit for PHP 8.x Laravel applications already on Envoyer that want deployment actions inside Laravel — an admin deploy button, a release-status dashboard, a trigger from an internal console or Slack command — all without distributing Envoyer UI access or account tokens to humans. Poor fit when CI/CD already owns deployments end-to-end, when we are not on Envoyer, or when requirements include approval gates, rollback policy, or audit trails beyond what Envoyer natively exposes. Those are platform builds and should be sized and staffed as such, not smuggled in as wrapper work.

Migration path. For existing v1.4.x users: branch, bump to ^2.0, resolve PHP/Laravel constraints, run the full suite, then smoke-test against a throwaway Envoyer project with a real token. For PHP 7.x estates: stay pinned to ^1.4 and sequence the runtime upgrade first — do not combine a PHP runtime upgrade and an SDK major upgrade in one release, or you lose failure attribution. For net-new adoption there is no migration; the decision is adopt-or-not, and the default pin is ^2.0 on PHP 8 with the version pinned explicitly in composer.json.

Compatibility checks. Laravel version constraints and framework major support; required PHP extensions; HTTP client (Saloon/Guzzle) alignment with the rest of the application — run composer why on the HTTP client after the upgrade; published config key names and base URL as actually shipped in the installed version (verify, do not assume ENVOYER_API_TOKEN); facade alias and container binding; method signatures versus our call sites; token permissions and endpoint behavior verified in staging before any production exposure.

Sequencing. Strictly ordered, one concern per release:

  1. Inventory existing SDK usage; if none, define the internal wrapper interface first.
  2. Upgrade PHP/Laravel prerequisites on their own release.
  3. Land the wrapper (interface plus concrete adapter) with the SDK behind it, mocking the HTTP layer in tests — no live API calls in CI, because a green build that triggers a real deployment is an incident.
  4. Bump the package in an isolated branch; run integration smoke tests against a non-critical Envoyer project.
  5. Canary one low-risk deployment, then promote.

Do not pair the compatibility change with new deployment automation behavior. Keep them separate so failures are attributable to one change.

Operational Impact

Maintenance. Low code footprint, but an external community dependency on a stalled cadence with a changelog too sparse to plan against. Pin the version explicitly, monitor advisories, and calendar a compatibility review at every Laravel and PHP upgrade. Carry a realistic line item for forking or vendoring if the package falls behind a framework major — the internal wrapper is what keeps that to days rather than weeks. Assign a named internal owner; unowned community dependencies are where these integrations quietly rot.

Support. No commercial SLA, no vendor backing, small contributor base. Document token generation, storage, rotation, and revocation; document config management; document the escalation path for a failed or stuck deployment. Community support is adequate for low-criticality automation (a manual deploy button, a dashboard) and inadequate for an unmonitored release path — set that expectation with stakeholders at approval time rather than during an incident. Deliver a short runbook covering token rotation, failed/stuck deployments, rollback, and the upgrade validation checklist.

Scaling. The SDK itself adds negligible overhead; the real constraints are Envoyer's rate limits, deployment concurrency, and network latency. Design rules to enforce in review: never make synchronous Envoyer calls in a user-facing request path — queue them; cache read-only data (project, server, collaborator lists) for a few minutes since it changes rarely and the API is rate-limited; resolve project and server IDs from config, never by name lookup at deploy time, which adds a round trip and fails silently on rename.

Failure modes. Envoyer API outage; expired or revoked token; rate limiting; network timeout; deployment triggered but failing, stuck, or never reaching a terminal state; double-deploy from a retried queue job after a timeout; config or facade misregistration; package incompatibility surfacing only after a framework upgrade. Mitigations to mandate: hard timeouts on every call, bounded retries, keeping deploy triggers out of automatically retried queue jobs, and Cache::lock() (or equivalent) guarding against double-deploys. Model status as an enum with explicit terminal states and a defined "how long before we call it stuck" threshold, because the operational failure people actually hit is not an error response — it's silence.

Ramp-up. Small. An engineer familiar with Laravel service providers and HTTP clients is productive in hours; the wrapper means only one or two people need to know the SDK at all. The ramp-up cost that matters is organizational, not technical: onboarding the on-call rotation onto the runbook and the token-rotation procedure, and making sure the person who owns the Envoyer account is identifiable before go-live.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib