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

Docusign Bundle Laravel Package

gheb/docusign-bundle

Symfony bundle for DocuSign eSignature integration, providing configuration, API client services, and helpers to send envelopes, manage templates and recipients, and build document signing workflows in PHP applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged by 5.6.5. The package is a Symfony bundle, not a Laravel package — this remains the single most important fact for triage. It integrates via Kernel::registerBundles(), a DI Extension with a Configuration tree (the docusign: config namespace), compiler passes, and Symfony event subscribers. None of those extension points exist in Laravel. Laravel's ServiceProvider/Facade model and its config/*.php convention are not compatible with a Symfony bundle's config tree, so the bundle will not autoload, register, or resolve anything in a standard Laravel app. Underneath, both frameworks share symfony/* components, so the concepts port cleanly — but the bundle as shipped is a Symfony-only artifact. A CS fix and a psr/log constraint bump do not touch this.

Integration feasibility. Unchanged. Three paths:

Path Effort Verdict
Adopt bundle as-is N/A in Laravel Not possible
Fork bundle internals into a Laravel service provider + facade 3–5 days + ongoing fork ownership Feasible
Skip the bundle; wrap docusign/esign-client (official SDK) in a thin Laravel package 2–4 days, no fork burden Recommended

The recommended path is to treat this repo as a reference implementation rather than a dependency: it documents the object graph you need (JWT/Signer auth, envelope definition builder, recipient view generation, Connect webhook handling) without committing you to a 34-star, small-maintainer artifact. 5.6.5 slightly improves the fork path (see compatibility) without changing the build-vs-wrap calculus.

Technical risk.

  • Staleness — revised downward. The prior assessment recorded the last release as 2022-09-29. That is now contradicted: 5.6.5 shipped on top of 5.6.4, with work from two contributors. The project is alive, not orphaned. This is a real correction and it retires the "three-plus years of drift" concern as stated. It does not retire API-drift risk — the release contains no DocuSign API surface work, so the wrapper's envelope/auth behavior is still at 5.6.x-era parity and worth pinning and inspecting against current eSignature REST v2.1 behavior.
  • Release content is low-signal. psr/log:^3.0 support and a code-style fix. No features, no deprecations, no breaking changes, no auth or envelope changes. Nothing here de-risks the JWT consent flow or the Connect webhook path, which are the two things that actually determine success.
  • No field validation. 34 stars and 0 dependents still means essentially no production usage signals — no issue history to mine for edge cases, no downstream patches, no "this broke in prod" trail. Two contributors on a maintenance release is a better signal than one, but it is not a production-usage signal.
  • Bus factor — revised from 1 to "small." A second regular contributor (vincentchalamon) is visibly doing maintenance work. Still no visible governance, release cadence, security disclosure process, or SLA. Assume no upstream fix arrives on your timeline; assume one may arrive eventually.
  • Auth surface. DocuSign JWT Grant requires a one-time admin consent flow and 60-minute token exchange; this is where most integrations fail in production, and it is exactly where a thin wrapper is most likely to lag. Nothing in 5.6.5 addresses it.
  • Low composite score (1.57) remains consistent with the above; the high opportunity score (9.63) reflects market demand for e-signature integration in PHP, not the quality of this artifact.

Key questions to resolve before committing engineering time.

  1. Is the target application actually Symfony? If yes, risk profile drops sharply — and 5.6.5's psr/log:^3.0 support makes modern Symfony/PHP stacks easier to satisfy than the prior release did. If Laravel, this becomes a build-vs-wrap decision, not a dependency decision.
  2. Which DocuSign auth model is required — JWT Grant (server-to-server, admin consent) or Authorization Code Grant (per-user)? The bundle's era skews toward older patterns.
  3. Do we need embedded signing (recipient view URLs), remote signing (email), or both? Embedded signing is where the bundle adds the most value and where hand-rolling is most error-prone.
  4. What is the legal/compliance requirement — ESIGN, UETA, eIDAS? If audit trail and Certificate of Completion must be retained, we own that persistence layer regardless of package choice.
  5. Who owns the DocuSign account and the IK (integration key) / RSA keypair rotation process?

Integration Approach

Stack fit. Green for Symfony 5.x/6.x applications (the bundle's target). Red for Laravel as a direct dependency. Amber for Laravel via adapter. If the estate is mixed, standardize on the official docusign/esign-client SDK wrapped per-framework — one auth and envelope layer, two thin framework bindings — rather than adopting framework-specific community bundles in each.

Migration path.

  • Symfony: composer require gheb/docusign-bundle, configure docusign: block, wire the JWT consent flow, ship. ~1 day to a working envelope in the DocuSign demo environment. Take 5.6.5 if you are on psr/log v3.
  • Laravel: do not add symfony/framework-bundle to satisfy the dependency — that is a net-negative architecture decision. Instead, extract the bundle's envelope-building and webhook-handling classes into an internal package (app/Domain/Signature or a private composer package), bind them through a DocuSignServiceProvider, and expose a DocuSign facade. Budget a spike first.
  • Fork: if you fork, pin the commit, vendor the license notice, and add a FORK.md recording why — MIT permits this, but undocumented forks become invisible tech debt. 5.6.5 is a reasonable pin: it is current, non-breaking, and dependency-modern.

Compatibility.

Dimension Assessment
License MIT — no legal friction, safe to fork and vendor
PHP Bundle era implies PHP 7.4–8.1; psr/log:^3.0 in 5.6.5 implies the dev/test matrix now runs PHP 8.1+, so verify against your 8.2/8.3 runtime
Symfony 5.x/6.x likely; 7.x support still unverified
PSR-3 Improved. 5.6.5 adds psr/log:^3.0, removing a real conflict against Laravel 10/11 and Symfony 6.2+, both of which ship psr/log v3. Re-check the full transitive tree; a single constraint bump rarely clears every conflict
DocuSign API Still built against a v2.1-era SDK (5.6.5 does not touch it); pin and inspect the transitive docusign/esign-client version
PHPUnit / test stack Slightly lower risk than before — the psr/log matrix widening suggests dev dependencies are being kept current — but verify no transitive conflicts land in your suite

Sequencing. Do not parallelize; each stage is a gate. 5.6.5 does not change the sequence or the gates.

  1. Spike (2–3 days). Demo DocuSign account, integration key, RSA keypair, JWT consent. Prove token acquisition end-to-end before any application code.
  2. Envelope creation. Send a single-signer envelope from a template; verify status polling and document retrieval.
  3. Embedded signing. Recipient view URL generation, return URL handling, and the post-signing state transition — the highest-friction step.
  4. Connect webhooks. Receiver endpoint, HMAC signature validation, idempotency keyed on envelopeId + status.
  5. Production cutover. Promote the integration key from demo to prod, re-run consent in the prod account, load-test the webhook path.

Gate 1 is the go/no-go: if JWT consent and token refresh don't work cleanly in the demo account, stop — the rest of the package won't rescue you.

Operational Impact

Maintenance. Revised. The previous assessment said adopting this package means becoming the maintainer. That overstated it: 5.6.5 shows active, if infrequent, upstream maintenance from more than one contributor. Correct framing is shared-cost with a slow upstream: you get occasional dependency and style patches (this release is exactly that), but no committed cadence, no roadmap, and no guarantee the next PHP or Symfony major lands on your schedule. Budget a recurring line item — realistically 1–2 engineer-days per quarter for dependency review and pin bumps, plus a larger spike at each framework major, with a contingency that you may have to carry the patch yourself. The official SDK wrapper has the same shape of cost but a materially better upstream.

Support. Still no vendor support, no SLA, no documented security disclosure process. Community support is proportional to 34 stars — effectively zero, notwithstanding the release activity. Internal runbooks are mandatory, not optional. The DocuSign developer community and the official SDK's support channel remain your real escalation path; that argues again for the official SDK beneath any wrapper.

Scaling. Unchanged and unaffected by 5.6.5. The package is a thin orchestration layer — envelope payloads and HTTP calls — so it is not the bottleneck. Scale constraints live in DocuSign: per-account API rate limits (commonly ~1,000 calls/hour on standard plans), Connect webhook throughput, and concurrency limits on envelope sends. Design for queueing: envelope sends and status polls belong on a background queue with backoff, not in the request cycle. The webhook receiver must be horizontally scalable and idempotent.

Failure modes to design for explicitly.

Failure Impact Mitigation
JWT token expiry / consent revoked All sends fail silently Health check on token acquisition; alert on auth failure rate
Connect webhook not delivered or delayed Envelope status stalls in local DB Reconciliation poller as backstop for in-flight envelopes
Duplicate webhook delivery Double state transitions, duplicate downstream actions Idempotency on envelopeId+status; unique constraint
Retry without idempotency key Duplicate envelopes sent to signers Persist client-side correlation ID; check before resend
API rate limit (HTTP 429) Batch sends fail Exponential backoff, queue with concurrency cap
Stale wrapper vs. API change Schema mismatch on new envelope fields Contract tests against demo account in CI
Upstream goes quiet again No patches for PHP/Symfony majors Pin the commit; keep the fork/patch path rehearsed
Document/envelope data retention Compliance gap on audit trail Persist Certificate of Completion + documents to your own storage

Ramp-up. Unchanged. Two distinct knowledge domains: DocuSign's auth and envelope lifecycle (a genuine learning curve — JWT consent, recipient types, tabs, envelope state machine), and the package's internals. The first is unavoidable and portable; the second is throwaway if you fork. Expect 1–2 weeks for a mid-level engineer to be productive, front-loaded on DocuSign concepts rather than this codebase. Because the codebase is small, reading it end-to-end is a half-day and doubles as the integration specification.

Recommendation. Unchanged in substance; 5.6.5 improves the outlook at the margin. Do not adopt gheb/docusign-bundle as a production dependency on a Laravel stack — it is architecturally incompatible, and a maintenance release does not change that. Use it as a design reference, build a thin in-house wrapper over the official docusign/esign-client SDK, and put the effort saved into the two areas that actually determine success: JWT consent lifecycle and Connect webhook idempotency. If you are on Symfony, take 5.6.5 — it is a clean, non-breaking pin that resolves a real psr/log v3 conflict.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect