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 Laravel Package

omniconva/laravel

OmniConva for Laravel is a lightweight integration package that brings OmniConva services into Laravel applications, offering simple configuration, familiar Laravel conventions, and a clean starting point to help you add OmniConva-powered functionality quickly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: Unchanged — still a thin integration layer (service provider, signed routes, Eloquent-backed product source, model traits, Blade component, artisan commands) that follows Laravel conventions and imposes no domain structure. v1.0.1 adds one explicit seam: OmniConva\Laravel\Exceptions\OrderRefused is now the sanctioned way for your order handler to signal a business refusal. That is a contract your code must honour, not plumbing the package can hide.
  • Integration feasibility: Still conventional, but the update path now has real steps beyond composer update: publish the second migration (--tag=omniconva-migrations), run php artisan migrate, audit the configured webhook URL for scheme and redirects, and review the order handler's exception behaviour. The omniconva:install fixes (reads config rather than env(), never blanks a credential, quotes values, warns when secrets are passed as CLI options) remove a genuine footgun for config-cached deployments and reduce secret leakage into shell history.
  • Technical risk:
    • Breaking change shipped in a patch release. OMNICONVA_WEBHOOK_URL must now be https except for localhost/127.x, or with OMNICONVA_ALLOW_HTTP=1. Any setup pointing at an internal hostname, a Docker Compose service name, or a TLS-terminating proxy addressed over http:// breaks on composer update. This is the headline risk and it also tells you the project treats patch releases as capable of breaking.
    • Redirects are no longer followed on webhook delivery. Setups that relied on an edge http→https redirect, a load-balancer hop, or any URL that 302s will now fail silently. Verify the configured URL resolves directly.
    • Second migration is mandatory. Skipping it leaves the idempotency claims table without the owner-token column and the widened 255-char key — the exact path that protects against duplicate orders during retries and stalls.
    • Error redaction is a net win but shifts diagnosis to you. Only OrderRefused messages reach OmniConva; anything else (including a QueryException carrying SQL and customer data) is reported to your handler and answered with a generic 500. That closes a real PII-leak vector, but vendor-side visibility into your failures drops to "500", so your own logging and alerting becomes the only diagnostic channel.
    • Product sync can no longer abort a save. SyncsWithOmniConva / SyncsParentWithOmniConva report mapping and encoding problems instead of throwing, and invalid UTF-8 is substituted rather than fatal. Availability improves; catalog drift becomes silent unless you are watching the reported exceptions. Substitution also means product text can be altered in transit without rejection.
    • Data-shape normalisation: non-finite prices become null (not "inf"), and large numeric ids in order payloads stay strings. Any downstream consumer that assumed the old shapes needs checking, though the blast radius is small.
    • Idempotency claim ownership now uses an owner token so a stalled request cannot release or complete the claim that replaced it. This partially answers the earlier storage question — claims are DB-backed — but the retention window and TTL remain unspecified.
    • Support matrix (Laravel 12/13, PHP 8.2+) is unchanged and still excludes L10/L11 apps.
    • Still unaddressed: signature algorithm, canonicalization, clock-skew tolerance, replay window, and secret rotation; webhook retry/backoff/dead-letter policy; product pagination, filtering and rate limits; multi-store/multi-currency; how the test-order filter is triggered; versioning and deprecation policy; license, SLA and data residency. The patch is a positive signal on vendor responsiveness — it reads as a genuine external security review, acted on quickly — but it does not substitute for a published support contract.
    • v1.0.0 had no public history; v1.0.1 confirms the contract surface moves, and specifically that it can move in a patch.
  • Key questions: Why was a breaking change released as a patch, and what is the deprecation/pinning policy going forward? Where do reported sync and order exceptions surface — which handler, what log level, and does the report itself contain customer PII? Is the signature scheme documented yet, and is secret rotation supported without downtime? Idempotency claim TTL and prune strategy? Webhook retry policy and dead-letter handling? Is there guidance for deployments behind a proxy or in Compose where ALLOW_HTTP is required? Multi-store, multi-currency, localization? Test-order filter trigger? License, SLA, data residency?

Integration Approach

  • Stack fit: Standard Laravel, with one addition to note in design review: the package now owns schema (two migrations) and expects a disciplined exception-reporting path in your handler. No new infrastructure to operate, but the database is no longer incidental — it backs idempotency.
  • Migration path: Greenfield for the integration itself, no domain data migration. Sequence: composer require (or update), omniconva:install, verify config is populated correctly under cached config, publish --tag=omniconva-migrations, run php artisan migrate, set the secret and an https webhook URL, implement the product source mapping and attach the traits, implement the order endpoint throwing OrderRefused for business refusals, then mount <x-omniconva-chat />.
  • Compatibility: Confirm the composer constraint against your Laravel version before estimating. Pin the package version rather than floating ^1.0 until the release policy is clear. Audit the webhook URL: it must be https and must resolve without a redirect; use OMNICONVA_ALLOW_HTTP=1 only for internal service names and only in non-production environments where possible. Confirm the queue driver is durable and the cache store shared. Ensure the route prefix does not collide and that POST /orders sits in the stateless API middleware group (CSRF-exempt), not web.
  • Sequencing: Treat the patch as its own deploy. Stage first: apply the migration, confirm the order endpoint still returns 500-with-generic-body on unexpected errors and that your handler captures the full exception, confirm webhook delivery succeeds against the direct https URL, then promote. Then products (read-only, low blast radius), orders (staged, exercising the test-order filter so no real fulfilment fires), chat last — it is the only customer-facing surface and carries CSP/consent review. Feature-flag each surface independently.

Operational Impact

  • Maintenance: Low code maintenance, but higher release discipline than previously assessed: patch releases can be breaking, and every release must be checked for new migrations. Do not edit published config in place. Track changes to the signature, idempotency, and exception contracts — those are the breaking-change vectors.
  • Support: Vendor SLA still unknown, and order-creation failures remain revenue-affecting, so an escalation path must be agreed before go-live. Note the division of labour the patch creates: OmniConva sees your OrderRefused messages verbatim and nothing else, while every unexpected failure lands in your handler. Your on-call owns those alerts.
  • Scaling: Unchanged in shape — product endpoints read-heavy and cacheable, order webhooks queue-bound, chat a browser asset. Two new things to watch: exception report volume (a mapping bug across a large catalog can produce one report per save per model) and database growth in the idempotency claims table, which has no documented prune strategy.
  • Failure modes:
    • Secret drift or a botched rotation produces 401s across every route — a silent, total outage. Still unaddressed.
    • An http webhook URL, or an https URL that redirects, now fails delivery silently — catalog desync with no user-visible error.
    • A missed migration breaks idempotency claims, reopening the duplicate-order risk that owner tokens were added to close.
    • A 5xx on the order endpoint means lost orders unless OmniConva retries with the same Idempotency-Key; the generic 500 body gives the vendor no signal, so correlation depends entirely on your logs.
    • Mapping or encoding failures in the model traits no longer surface as save errors — the save succeeds and the sync quietly does not happen.
    • Queue backlog or exhausted retries produce a stale catalog with no user-visible error. Chat component failure remains cosmetic only.
  • Ramp-up: Still modest for a Laravel-fluent team — roughly one to two developer-days to install, migrate, ping, and reach a signed request, plus half a day for the v1.0.1 delta (migration, exception handler review, URL scheme and redirect audit). Catalog mapping remains the open-ended variable. Before go-live, add observability on webhook job success/failure rate, order-endpoint error rate, and the exception reports the traits and order handler now emit — the package deliberately routes those to you rather than to the vendor.
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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel