Import and Export

Open Stories and Issues

Conversations should get exported and imported: Currently, Conversations are completely ignored by export/import. This is a problem for backing up conversation-centric Spaces such as SI Playtesting.
During XML Import, a child of a non-Model will cause import to break: This is hard to set up nowadays, but if you manage to have a child Instance of an Instance (not a Model), the resulting XML winds up confused. The parent Instance gets used as a Model node, without a matching Model record, and the Importer goes boom.
Export as CSV is broken in the new UI: Nothing remarkable here, it just isn't implemented yet.
Export as CSV seems to be broken: From a Model, go to Advanced..., and click on "Export all Instances of Foo as a CSV file". This is failing, apparently because it is going to a page that no longer exists.
Export Space should show up as a file, not a new window: Seriously, this can't be hard. What's the trick to making the Export button work properly?
Export/import shouldn't create bogus Person records: When you export a Space and import it again, you get all the Person records as Members of the Space. But that's broken: they aren't actually Members, and they don't have all their contents, so those records are actually dead.
I can import a MySQL DB that contains images: That is, it has a column consisting of binary blobs, which are actually, say, JPEGs. The system should auto-detect this, turn it into a Photo Property, and upload the photos to our storage area.
I should be able to export / import a Space's *history*: Currently, we only export / import a snapshot of the Space. But it would be even better to be able to export the full history, and recreate that.
I should be able to import an XML file: In principle, this is straightforward if we have a DTD. We may want to require that for XML import, at least for the time being.
Importing a saved space loses _createTime and overwrites _modTime: Export a Space. Import it to a new Space. The imported things have no _createTime, and their _modTime is set to the time of Import.
Importing the Playtest Space usually fails: This is very non-deterministic, but trying to import the SI Playtesting Space (one of the two largest Spaces in existence) fails most of the time. But not always.
Re-exporting a previous import should preserve previous OldOIDs: Currently, OldOID will only work through one export/import cycle. This can probably be improved, though.
References do not show by default in imported things: When something is a pointed to Object, its initial display text should include is refs.
Roles and Permissions don't carry over when a Space is Exported then Imported: Export a Space where some folks have custom roles, and some Things have permissions granted to specific individuals. Then Import it.
The pre-populated users of the space (which are some sort of stub, IIRC) all have their previous Roles, and are correctly associated with Thing-specific permissions they held previously. However, when the original user is invited to the space, it creates a new user record in addition to the pre-populated one, with the following effects:
  • The user appears twice in the Sharing > Members tab
  • The newly created user does not have its previous Roles
  • The newly created user is not referenced in any permissions that had previously been granted specifically to them
It's possible this is an un-bug if there's something specific about the new invite that I needed to do and didn't, but ownership did seem to transfer correctly - Things which were created by someone in the original space registered as matching _creator with that person in the new space.
When I export a Space with User Values, my personal values are being exported: Moreover, they are apparently being imported as non-user-values at import time.
When I Export and Import a Space, I should get the full History: Huge change, but we should completely rewrite the usual export/import protocol and format, to be History-based.
When importing a Space, or using an App, OIDs in QL expressions should get translated: Currently, in either of these scenarios, text and QL expressions are just copied uncritically. But they might contain OID stages, which are now almost guaranteed to be broken, because OIDs get remapped during import.
XML Export / Import isn't currently working: This is almost certainly because of the rework to the new History approach.

Closed Stories and Issues

_creator isn't included when exporting/importing a Space: Probably nothing subtle here -- I believe we simply aren't exporting it, and aren't looking for it during import.
Date fields not showing correctly in ui: See Aaron's movement date.
Export as CSV link should only show for Models: From the Space Root, go to Advanced.... Notice that there is an "Export all Instances of Space Name as a CSV file". That's obviously non-sensical -- this link should only be visible for Models.
I can export a Space, and re-import it into another Querki Instance: As the Owner, I should be able to get, eg, a faithful JSON representation of the entire Space. I should be able to turn that into a full copy of that Space later.
I should be able to fetch Querki data via a simple JSON API: This is a very simplistic API, but may be enough for a bunch of use cases.
I should be able to turn a Querki value into JSON: Needed for the Arisia Use Case.
Import should support gzip db files: Since dump files compress well, we should support that.
In Import, if I give my new Space an already-used name, it hangs: Not sure why, but it clearly shouldn't happen.
Preserve OID mappings during import, and redirect failed OIDs?: This is a suggestion from Eric, to work around the problem of hardcoded OIDs both within the copied Space and elsewhere.