- How do I install simonhamp/laravel-nova-csv-import in a Laravel app?
- Install it with Composer, then publish the package assets and config as described in the README. You create one Action class per importable model, declare the target Eloquent model and the fields exposed to the mapping UI, and register the action on your Nova resource. A Laravel developer already familiar with Nova should be able to get a working pilot running in under a day. Note that the package requires Laravel Nova, which is a paid, closed-source product.
- Does this package support Laravel Nova 5?
- Yes. Version 0.8.0 explicitly targets Nova 5, which resolves a previously open compatibility risk. Historically a Nova major release broke the package and required a dedicated compatibility PR with some lag, so budget for that pattern on every future Nova major. Because Nova is closed-source, only integration tests will catch breakage rather than static analysis.
- How do I create a custom CSV import action for my model?
- You subclass the import action provided by the package and declare the target Eloquent model plus the fields you want exposed in the column-mapping UI. Then you register that action on the relevant Nova resource. End users upload a CSV directly in Nova, map columns to attributes, and the package orchestrates validation and persistence through Laravel's Eloquent and validation stack.
- Can it handle large CSV files or run imports in a queue?
- Not out of the box. Imports typically run synchronously inside the Nova request, so large files risk PHP memory limits, max_execution_time, and gateway timeouts. Version 0.8.0 does not add chunked or queued execution, dry runs, or audit trails. If you need queued or chunked ingestion, you will have to implement it yourself or fork the package.
- How does validation work during an import?
- The package validates rows against rules you define and lets you customize import logic around them. The real configuration work is defining the field allowlist, the validation rules, and the failure semantics for invalid rows. You should decide explicitly whether a bad row aborts the whole import or is skipped and logged.
- Can I use this package for headless or API-driven imports without Nova?
- No. It has a hard dependency on Nova, a paid closed-source product, and it inherits Nova's version cadence, authorization model, and request lifecycle. It cannot be reused for headless imports, API-driven ingestion, or queue-only workers without reimplementation. It is only a good fit if Nova is already your system of record for admin operations.
- Is a failed import transactional, or can it leave partial writes?
- This is not guaranteed and needs to be verified for your setup. The default behavior is likely row-by-row persistence, which means a mid-file failure can leave partial writes behind. Version 0.8.0 adds no idempotency primitives, so re-run safety and rollback strategy are yours to own. Test failure scenarios explicitly before relying on the importer in production.
- What are the security considerations for CSV imports in Nova?
- Authorization inherits Nova's model, so control carefully who is allowed to run the import action. Restrict the mapped field allowlist so imported columns cannot reach non-fillable or sensitive attributes. Also decide how uploaded files are handled and retained, since CSVs containing PII may land in storage. Watch for type coercion and encoding issues when ingesting data.
- Is this package actively maintained and safe to depend on?
- It is MIT licensed, pre-1.0 at version 0.8.0, effectively single-maintainer, and has zero Packagist dependents. The 0.8.0 release is a positive maintenance signal and added two new contributors, but both changes were compatibility and tooling work rather than evidence of a sustained contributor base. Treat it as adopt with a fork option, and pin it exactly or with a tight constraint because 0.x minor releases may contain breaking changes.
- How do I test a fork or integration with this package?
- Version 0.8.0 adds orchestra/workbench, giving the package a standard modern testing harness. That matters because the fork-if-needed fallback is now cheaper: you have a working harness to test against instead of a bespoke setup. Since Nova is closed-source, rely on integration tests rather than static analysis to catch regressions.