- What Laravel/Ibexa versions does this bundle support?
- This bundle is designed for Ibexa 5.x (not Laravel directly) and requires PHP 8.1+. It explicitly supports Ibexa 5.x only; Ibexa 4.x compatibility is not guaranteed. Always check the [version matrix](https://github.com/code-rhapsodie/ibexa-dataflow-bundle#ibexa-dataflow-version) for updates.
- How do I import content from a CSV file into Ibexa using this bundle?
- First, ensure you’ve installed the bundle and configured a `DataflowType` for CSV imports (e.g., `CsvDataflowType`). Then, create a new dataflow in the Ibexa backoffice under *Ibexa Dataflow*, select your CSV source, map fields to Ibexa content types, and schedule the job. The bundle handles the ETL process asynchronously via Symfony Messenger.
- Can I schedule recurring dataflows (e.g., daily API syncs) with this bundle?
- Yes. The bundle provides a UI to define one-off or recurring dataflows. For recurring jobs, specify the first run date/time and the interval (e.g., daily, weekly). Under the hood, it uses Symfony’s cron-like scheduling, but ensure your queue worker (e.g., Symfony Messenger) is running to process jobs on time.
- What queue backend should I use for async dataflow processing?
- The bundle relies on Symfony Messenger for async jobs. For simplicity, use Doctrine transport (stores jobs in the database), but for high throughput, consider Redis or RabbitMQ. Configure the transport in `config/packages/messenger.yaml` and ensure your queue worker is running (e.g., `php bin/console messenger:consume`).
- Does this bundle support custom Ibexa content types or fields?
- The bundle supports custom content types out of the box, but custom fields may require additional configuration. For unsupported field types, extend `AbstractDataflowType` or create a custom `ContentFilter` to handle transformations. Check the [Dataflow Bundle docs](https://github.com/code-rhapsodie/dataflow-bundle) for field-mapping examples.
- How do I handle large datasets (e.g., 100K+ content items) without crashing the server?
- Use chunking in your dataflow configuration to process records in batches (e.g., 100–1000 items per job). Monitor queue performance and adjust worker concurrency in `messenger.yaml`. For very large datasets, consider preprocessing data externally (e.g., with a script) or using a dedicated queue backend like RabbitMQ for better scalability.
- Are there any known limitations with Ibexa’s native import tools (e.g., ezplatform-content-import)?
- Ibexa’s native tools are simpler for basic imports but lack advanced features like scheduling, recurring jobs, or complex transformations. This bundle fills those gaps with a UI-driven workflow, async processing, and extensibility for custom data sources (e.g., APIs, databases). Evaluate your needs: use native tools for quick imports, this bundle for scalable, automated ETL.
- How do I debug failed dataflow jobs or missing content after import?
- Check the *Job History* section in the Ibexa Dataflow UI for error logs. For deeper debugging, inspect the `cr_dataflow_job` and `cr_dataflow_job_history` tables in your database. Enable Symfony’s profiler (`APP_DEBUG=true`) to trace job execution. If issues persist, review the [Dataflow Bundle troubleshooting guide](https://github.com/code-rhapsodie/dataflow-bundle#troubleshooting).
- Can I restrict access to the Ibexa Dataflow UI for non-admin users?
- Yes. The bundle adds a dedicated *Ibexa Dataflow* section to the backoffice, but access control is managed via Ibexa’s role system. Create a custom role (e.g., `ROLE_DATAFLOW_USER`) with permissions to `cr_ibexa_dataflow` and assign it to relevant users. Refer to Ibexa’s [role documentation](https://doc.ibexa.co/en/latest/guides/roles/) for details.
- What alternatives exist for Ibexa content imports if this bundle isn’t suitable?
- For lightweight needs, use Ibexa’s native `ezplatform-content-import` CLI tool or the [Ibexa REST API](https://doc.ibexa.co/en/latest/guides/rest_api/) for programmatic imports. For enterprise ETL, consider third-party tools like **Segment**, **Zapier**, or **Talend**, though they may require additional setup. This bundle is ideal if you need a balance of UI control, scheduling, and extensibility within Ibexa.