Netgen’s Import/Export module for Ibexa DXP adds an administration UI for exporting content to Kaliop/Tano migrations and importing those migrations back into another environment.
The module is primarily intended for content transfer workflows (e.g. moving content/configuration between environments) and is designed to work inside Ibexa Admin UI.
Install the package with:
composer require netgen/ibexa-import-exportThe bundle ships with its own routing file but does not auto-import it. Add it
to your application's routing configuration (typically config/routes.yaml or
an Ibexa Admin UI routes file):
ibexa.import_export:
resource: '@NetgenIbexaImportExportBundle/Resources/config/routing.yaml'After clearing the cache the module routes become available and the Import/Export menu item appears under Admin.
Licensed under GPLv2
After installation, the module appears in Ibexa Admin UI under the Admin menu as Import/Export.
The UI provides:
- Export
- Export a single content item or a subtree into a Kaliop/Tano migration YAML.
- The generated migration is saved into the configured migrations directory and can be downloaded.
- Import
- Upload a migration YAML and execute it.
- The import preview checks the file and shows:
- global errors (blocking)
- skipped content items
- skipped fields (per field)
You can configure the bundle under netgen_ibexa_import_export:
netgen_ibexa_import_export:
storage_path: 'public/var/site/storage'
migrations_path: 'var/cache/migrations'
# Optional. If null/empty, PHP binary is auto-detected via Symfony PhpExecutableFinder.
php_binary_path: ~Used for export/import storage handling.
Directory (relative to project root) where generated/uploaded migration files are stored.
Path to the PHP binary used to run console commands (e.g. ../bin/console kaliop:migration:*).
If not configured (null/empty), the bundle will auto-detect the PHP executable.
Access to the Import/Export module is restricted by Ibexa policies.
To access the module, the user’s role must include the following policy:
- Module:
import_export - Function:
access
Users without this policy:
- will not see the Import/Export menu item, and
- will receive an Access Denied exception if they try to access module routes directly.
This bundle registers the policy definition automatically (so it appears in the Role editor).
This bundle logs on a dedicated Monolog channel: netgen_ibexa_import_export.
Note: this assumes your application uses symfony/monolog-bundle (standard in most Symfony apps).
If you don’t use Monolog, the bundle falls back to a NullLogger (logs are dropped).
In your application, configure a handler for the channel in config/packages/monolog.yaml:
monolog:
handlers:
netgen_ibexa_import_export:
type: stream
path: '%kernel.logs_dir%/netgen_ibexa_import_export.%kernel.environment%.log'
level: info
channels: ['netgen_ibexa_import_export']After that, bundle logs will be written to e.g. var/log/netgen_ibexa_import_export.dev.log.
If you do not configure a dedicated handler for the channel, logs will either:
- end up in your default handlers (e.g.
var/log/dev.log) if those handlers accept this channel, or - be ignored if none of your handlers are configured to handle this channel.