Skip to content

OpenImport 1.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 09:18
· 36 commits to main since this release
24ac1e0

OpenImport 1.4.0 — import and export for Magento 2 and Mage-OS. Free, MIT, built on Magento's own import engine.

Install: composer require iranimij/openimport && bin/magento module:enable Iranimij_Base Iranimij_OpenImport && bin/magento setup:upgrade

Documentation: https://iranimij.github.io/openimport/

Connectors: every file source and destination of the paid import modules (plan 1.3–1.6, release 1.4).

Added

  • Saved connections (System › Data Transfer › OpenImport Connections): SFTP and FTP logins with Test connection, shared
    by profiles as source or export destination; secrets encrypted and never shown again; a connection in use cannot be
    deleted; profile files name the connection instead of carrying a login. New ACL resource Manage connections. See
    Saved connections.
  • Amazon S3 and S3-compatible storage (Cloudflare R2, Wasabi, MinIO, Garage, ...) as import source and export
    destination, through a saved S3 connection: own Signature Version 4 client (no SDK), folders as key prefixes, all
    matching files, move after success; every request through the URL guard. Tested against AWS's published signature
    examples and an S3-compatible server in CI.
  • Google Drive and Google Sheets with a login, as import source and export destination: a service account (JSON key,
    signed JWT) or a Google account (Sign in with Google: your own OAuth client, state and PKCE, refresh token stored
    encrypted). Folders by link, id or path, Sheets read as Excel files, exports replace a file of the same name or
    become a Google Sheet, moves into processed, deletes go to the bin.
  • Dropbox and OneDrive / SharePoint as import source and export destination, through Sign in with Dropbox /
    Sign in with Microsoft with the shop's own app (state, PKCE, refresh token stored encrypted). SharePoint document
    libraries by site address; uploads in 10 MB parts on OneDrive.
  • REST APIs as import source and export destination: saved REST connection (header token, Basic, OAuth 2 client
    credentials), paging by page numbers, offsets, cursors, next addresses or the Link header, records path, a page
    limit that stops instead of importing a partial list, retries after 429/503 with Retry-After; exports send the
    file or JSON batches.
  • Archives: a .zip, .gz, .tar or .tar.gz file from any source is unpacked and the file inside is read
    (File inside the archive: a name or pattern, else the first CSV, Excel, ODS, JSON or XML file); exports can be
    packed as ZIP, gzip or tar.gz (Compress). Zip-slip-safe (fixed file name), size counted while unpacking (1 GB),
    nested and password-protected archives refused. See Archives.
  • OpenDocument spreadsheets (.ods, LibreOffice Calc) as import format (typed values, repeated cells and rows,
    sheet by name or position, streamed) and export format (own writer, bold header row). Detected by the file's
    mimetype entry when the name says nothing.
  • XSLT: XSLT before reading (XML) turns a supplier's XML into records before the reader sees it, XSLT after
    writing (XML)
    reshapes an XML export before delivery. libxslt runs with no file, network or PHP access
    (document(), xsl:include, xsl:import refused), no DOCTYPE, a 64 MB file limit; stylesheets are checked at
    save. See File formats.

Fixed

  • openimport:secrets:reencrypt now also encrypts the secrets of export destinations again, and goes on when one
    profile cannot be saved.
  • Uninstalling removes the openimport_image table too.