- How do I install cammac/nova-workflow in a Laravel Nova application?
- Installation is done through Composer with a require of cammac/nova-workflow, followed by registering the tool in your NovaServiceProvider and running any migrations the package ships. Because the published README is minimal, treat the exact registration snippet, config publishing, and migration steps as things to confirm in a throwaway Nova app before touching a real project. A one-day sandbox spike that models a single real workflow end to end is the fastest way to establish what actually works.
- Which PHP, Laravel, and Nova versions does cammac/nova-workflow support?
- The authoritative answer lives in the package's composer.json constraints for php, laravel/framework, and Nova, so read those before assuming compatibility. Nova is a paid, closed-source dependency with its own major-version cadence, and Nova tools hook resource menus and detail views in ways that can break silently across majors. Check the constraints against your pinned PHP, Laravel, and Nova versions and record the resulting version matrix in your spike notes.
- Is cammac/nova-workflow a workflow engine or just a Nova UI tool?
- It is a Laravel Nova resource tool that attaches workflow state and transition controls to Nova resources, not a standalone workflow engine. Workflow logic sits at the admin-UI layer and is coupled to Nova's internal tool and resource conventions. That makes it a reasonable fit for back-office approval flows such as editorial review, order status, or ticket triage where an internal operator in Nova is the primary actor.
- Are workflow transitions authorized and validated on the server, or only hidden in the UI?
- This is the single most important thing to verify before adopting the package, because UI-only gating is a security defect rather than a missing feature. Inspect whether transition endpoints delegate to Laravel policies or gates and whether inputs are validated with form requests before state changes. If authorization is presentation-only, plan to add policy checks and server-side validation yourself, ideally before the first real workflow goes live.
- How does cammac/nova-workflow store workflow state and does it keep an audit log?
- The package does not clearly document whether state is persisted in a dedicated table, a JSON column, or a plain column on the model, so inspect the migrations and models to find out. Equally important is whether there is an immutable transition history recording who moved a model, when, and from which state to which. If no audit log exists, add one, since approval flows almost always need that record for compliance and debugging.
- Is it safe to run cammac/nova-workflow in production?
- Treat abandonware risk as the default assumption: the package has roughly 35 stars, no dependents, and a single maintainer, which means very little downstream production signal to surface regressions before you do. The MIT license is permissive enough to fork and vendor, which materially reduces the downside, but only if you are prepared to own that fork. For anything business-critical, pin a fork under your own namespace and add CI rather than depending on upstream.
- Can I trigger workflow transitions from an API, queue job, or webhook instead of the Nova UI?
- It depends on whether the state machine is reachable through a service class or facade, or only through the Nova tool itself. If transitions live entirely inside the tool, the engine and the presentation layer are not separable, which makes API-first, headless, and multi-tenant SaaS architectures a poor fit. Before committing, test calling a transition from a queue job or artisan command; if that is not possible, extract the state machine into an application service.
- Does cammac/nova-workflow handle concurrent transitions and database transactions?
- There is no documented evidence either way, so read the transition handling code and check whether state changes are wrapped in DB transactions with row-level locking. Two approvers clicking an action at the same moment on the same model is a realistic scenario in busy back offices. If concurrent-transition safety is unaddressed upstream, add locking in your fork before rolling the workflow out to more than a handful of operators.
- Does cammac/nova-workflow ship tests, and does it support multiple Nova major versions?
- The package shows no clear evidence of a maintained test suite running in CI, and no documented upgrade path across Nova majors or security disclosure channel. That matters because Nova is closed source and its internals change between majors, and a tool that hooks resource menus and detail views is exactly the integration that breaks quietly on upgrade. If you adopt it, add your own PHPUnit coverage and pin the Nova version you validated against.
- What are the alternatives if my workflow needs parallel branches, SLA timers, or escalation?
- If the requirement is a linear set of three to five states with one approver, this package likely covers it inside an existing Laravel plus Nova estate. If you need parallel branches, guard conditions, SLA timers, delegation, or escalation, you will outgrow it within a quarter and should not start there. In that case look at a dedicated state machine library combined with your own persistence and policy layer, or fork cammac/nova-workflow and reduce it to a thin Nova adapter over an application service you control.