mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
POST /api/admin/backups/upload stores a backup file as a new copy, the copy whose id the published restore takes, and it refuses a file for reasons an operator has to be able to look up: a key this server does not hold (backup.key.missing, with the key ids), an owner account that does not exist here, a newer schema, a copy too large to store (backup.upload.too_large). It was exempted from the contract as console plumbing while its two siblings were published for exactly that kind of refusal. It is registered with the three bodies it reads (raw JSON, raw gzip, a small multipart form) and every status it answers; the summary is the three identity fields plus one integer count per class, so a class the backup format gains later does not break a decoder. The round-trip test calls it through the contract now.
3.2 MiB
3.2 MiB