Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portable ZIP Export Format #5260

Open
wants to merge 34 commits into
base: development
Choose a base branch
from
Open

Portable ZIP Export Format #5260

wants to merge 34 commits into from

Conversation

ssddanbrown
Copy link
Member

@ssddanbrown ssddanbrown commented Oct 13, 2024

Todo

  • Finish up format document
  • ZIP Build Logic
    • Testing
  • Export UI additions
  • Export Endpoints
    • Testing
  • Import role permission
    • Test view/route access control (ensure permission required)
  • Import UI
    • Disable button and show loading on import
  • Import Validator Logic
    • Validate no duplicate ids across types.
    • Display of validation results
    • Extract text to translations
  • Import logic
    • Test file handling & DB roll-back on import error.
    • Image extension handling
    • Test main import handling logic
  • Bring text into translations
  • Other testing
    • Test whole process with external (s3) storage
    • Deep test of cross content references.
  • New activities?

Notes

Originally planned to add API endpoints as part of this, but think it's better to delay in case further changes/development need to be made.

Doc Updates

  • Requirements change - ZIP extension now required.
  • Probably worth a documentation page to cover details. Refer to format docs for advanced users.

@ssddanbrown ssddanbrown added this to the Next Feature Release milestone Oct 13, 2024
@ssddanbrown ssddanbrown self-assigned this Oct 13, 2024
Also updated new route/view to new non-book-specific flow.
Also fixed down migration of old export permissions migration.
Added syles for non-custom, non-image file inputs.
Started planning out back-end handling.
Testing covers main UI access, and main non-successfull import actions.
Started planning stored import model.
Extracted some text to language files.
Split attachment service storage work out so it can be shared.
Reduced import data will now be stored on the import itself, instead of
storing a set of totals.
Added file creation reverting and DB rollback on error.
Added error display on failed import.
Extracted likely shown import form/error text to translation files.
Fixed image size handling, and lack of attachment reference replacements
during testing.
Images were missing their extension after import since it was
(potentially) not part of the import data.
This adds validation via mime sniffing (to match normal image upload
checks) and also uses the same logic to sniff out a correct extension.

Added tests to cover.
Also fixed some existing tests around zip functionality.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

1 participant