mealie-recipes / mealie

Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and mealie will automatically import the relevant data or add a family recipe with the UI editor
https://docs.mealie.io
GNU Affero General Public License v3.0
5.62k stars 613 forks source link

feat: Handle Safari-mangled backup ZIPs and improve backup UI #3674

Closed michael-genson closed 1 month ago

michael-genson commented 1 month ago

What type of PR is this?

(REQUIRED)

What this PR does / why we need it:

(REQUIRED)

We've had several instances like this where Safari mangles the ZIP file structure, breaking our backups. This PR adds some logic to detect when this happens and work around it.

The UI is also very unhelpful when backups fail, so this PR fixes some state issues and flashes an alert to check server logs when a backup fails.

Which issue(s) this PR fixes:

(REQUIRED)

No open issues, several closed ones where the solution was just to fix the ZIP structure

Testing

(fill-in or delete this section)

I added a mangled zip file test before implementing the workaround, confirmed it failed, and now it passes