collective.exportimport icon indicating copy to clipboard operation
collective.exportimport copied to clipboard

[proposal] unified export format

Open djay opened this issue 2 years ago • 5 comments

problem

  • Currently have to use several different forms to do both export and then import
  • You also have to know the right order to do the import when you have multiple export json

proposed solution

User will go to the site setup and click on export and get a UI something like

-------------------------------------------------------------
| Warning: multiple exports selected. Download will be tar.gz |
-------------------------------------------------------------

# Exports
[x] Content
[x] File/Images
[  ] Users
[  ] Content Tree
[  ] Relations
[  ] Translations
[  ] Local Roles
[  ] Default Page Mapping
[  ] Object Positions in Parent
[  ] Comments


# Content Export

{query widget}
Type: Page
Path: /news depth:1
Path: /other-news depth:1
Creation date: > 1/1/20018

Selected content (21 items)
--------------------------------
| /news/item1
| /news/item2
| /other-news/big-news
--------------------------------

# File/Images Export

(o) url/path
(  ) binary in tar.gz 
(  ) base64 encoded in json

[Download] [Save to Server] [Dry Run] [Cancel]

Features this adds

  • tar.gz if multiple exports selected
    • still keeps json as multiple files
    • Would enable things to be put in the right orde
    • still memory efficient as tar can be streamed.
  • somehow take every exporter and merging into one UI.
    • Adapter to get schema?

Alternatives considered

  • still have seperate views?
  • use a single json format that contains the others
    • can still stream it and webserver might do gzip compression automatically anyway
    • can still choose to include blobs for small sites using base64 encoding.
    • con: might be harder for the user to inject or change blobs without writing code?

djay avatar Oct 30 '21 10:10 djay