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

Tomato Artisan Laravel Package

tomatophp/tomato-artisan

Tomato Artisan brings Laravel's Artisan commands into your TomatoPHP admin panel, letting you browse, search, and run them from the browser with output shown inline—handy for quick maintenance tasks without opening a terminal.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What the release contains. v1.1.1 is a cosmetic patch: dark-mode styling and RTL (right-to-left) support for the artisan command screens. No API, command signature, config schema, or migration changes are indicated by the changelog. Assessed risk of this specific bump is low.

Architecture fit. tomatophp/tomato-artisan is a Laravel package in the TomatoPHP admin ecosystem, and its purpose is to expose Artisan command execution and output through the admin panel UI rather than the CLI. Architecturally that means it is a thin presentation layer over Illuminate\Console\Kernel / Artisan::call(), registered through a service provider and surfaced as a panel page or plugin (typically Filament-based, consistent with the rest of the Tomato suite). The dark-mode/RTL change confirms the package ships its own views and front-end assets, which is the main integration surface a TPM needs to care about.

Integration feasibility. Straightforward on a standard Laravel app: composer require, publish config and assets, register the plugin/provider in the admin panel. The real feasibility question is not installation but governance: a web-accessible Artisan runner is effectively remote command execution against your application. Before adoption, confirm the package enforces authorization (policy/gate), an allow-list of permitted commands, and an audit trail of who ran what and when.

Technical risk.

  • Security (high): arbitrary command execution from a browser session. Must be gated behind strict permissions, disabled or restricted in production, and audited. Verify whether the package ships an allow/deny list or relies purely on panel access control.
  • Synchronous execution (medium): commands invoked via HTTP share the request lifecycle; long-running commands risk PHP max_execution_time, memory limits, and gateway timeouts. Determine whether execution is queued or blocking.
  • Asset/UI coupling (low–medium): this release touches compiled views/assets, so published assets must be re-published for the change to appear; stale published assets are a common source of "the update did nothing" support tickets.
  • Ecosystem coupling (medium): depends on tomatophp/tomato-admin and the Filament major version used across the suite. Version drift across Tomato packages is the most likely source of breakage.
  • Patch-level confidence (low risk): the diff is a UI commit, so regression surface is limited to styling; no deprecations announced.

Key questions for the maintainer/vendor.

  1. What authorization primitive gates command execution, and is there an allow-list?
  2. Is command execution synchronous or dispatched to a queue?
  3. Which Laravel, PHP, and Filament versions are supported?
  4. Is output streamed, buffered, or truncated? Is it retained for audit?
  5. Are destructive commands (e.g. migrate:fresh, db:wipe) excluded by default?
  6. Does dark mode/RTL require re-publishing assets, and is there a documented upgrade step?

Integration Approach

Stack fit. Comfortable fit for a Laravel 10/11 application already running (or planning to run) the TomatoPHP admin panel with Filament. It is a poor fit for teams that do not use Tomato/Filament, or that operate in a compliance regime requiring change-managed, audited production access — there the CLI plus a runbook is the better control.

Migration path. No migration required for this release. Greenfield adoption: composer require tomatophp/tomato-artisan, publish config and assets, register the plugin in the panel provider, assign permissions to a restricted role. Existing installs: composer update tomatophp/tomato-artisan, then re-publish assets so the dark-mode/RTL views land.

Compatibility. Pin the package alongside tomatophp/tomato-admin and the Filament major version, and lock them together in composer.json. Treat the Tomato suite as a versioned cluster — upgrade it as a unit rather than allowing independent float, and verify against the app's Laravel/PHP matrix in CI.

Sequencing.

  1. Spike in a non-production environment; enumerate which commands are actually needed.
  2. Configure the allow-list / permission gate; deny everything not explicitly required.
  3. Decide environment policy: enabled in staging, restricted or disabled in production.
  4. Re-publish assets and validate dark mode and RTL on the panel pages.
  5. Add an audit log (who/what/when/outcome) before enabling for any human other than the implementing engineer.
  6. Roll out to a pilot group, then broadly.

Operational Impact

Maintenance. Low ongoing maintenance for the package itself; it tracks the Tomato/Filament release cadence, so budget for coordinated upgrades roughly in step with Filament majors. The RTL/dark-mode change is a reminder that the package owns front-end assets — include an asset re-publish step in your deploy checklist.

Support. Expect two support categories: (a) UI/theming issues, currently the most active area of change; (b) permission and execution failures. Document the intended use cases and explicitly document what is not permitted, otherwise the tool becomes an ad-hoc ops console with no accountability.

Scaling. Execution cost is bounded by the command, not the package. For anything beyond short read-only commands, insist on queued execution and streamed or paginated output; a synchronous request-per-command model will not survive multi-node deployments where web nodes are ephemeral and commands must run against a single designated host. Concurrency is a real concern — two operators triggering migrate simultaneously is an outage, so a lock or queue serialization is advisable.

Failure modes.

  • Timeout or memory exhaustion mid-command, leaving partial state with no record.
  • Stale published assets after upgrade → theming fix appears not to work.
  • Permission misconfiguration → privilege escalation via the panel.
  • Long output overwhelming the response or the browser.
  • Version drift between Tomato packages breaking the panel plugin registration.
  • Commands executed on the wrong node/environment because the panel is reachable from more than one.

Ramp-up. Low for developers already fluent in Artisan — the mental model transfers directly, typically under an hour to first productive use. The real onboarding cost is for operations and support staff, who need the permission model, the allow-list, and the escalation path explained before they are given access. Budget a short written runbook plus a demo; treat the tool as a controlled convenience over the CLI, not a replacement for deployment or migration pipelines.

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.
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
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle