Files
rust-xmpp/CHANGELOG-0.7.8.md
wt b30fc524d8 - Offline CLI `upload-migrate OLD_CONFIG NEW_CONFIG --component HOST
[--execute]`: dry run по умолчанию, local ↔ S3 и S3 ↔ S3 без удаления
  source.
- Последовательное копирование с проверкой размера и полным SHA-256
  readback
  destination; конфликтующий объект не перезаписывается. Временный диск
  —
  максимум один переносимый файл дополнительно к постоянному
  destination.
- Durable migration journal позволяет продолжить прерванную операцию с
  теми
  же конфигурациями. Незавершённый или повреждённый journal блокирует
  startup;
  backend identity меняется только после проверки всех файлов.
- Native `uploads`/`upload_stats`, slots и JWT сохраняются;
  поддерживаются
  native локальные файлы без Rust completion sidecar. Миграция требует
  остановки RustXMPP и Prosody, использующих общий `data_path`.
- Multipart intent сохраняется до создания удалённого upload. Recovery
  находит потерянный UploadId через paginated listing и очищает только
  точный
  key принадлежащего slot. При сохранных metadata cleanup не зависит от
  lifecycle; lifecycle остаётся дополнительной защитой, а не гарантией.
- Перед completion сохраняется durable marker. Неопределённый результат
  completion при отсутствии подтверждённого объекта помещает только этот
  slot в quarantine: PUT 409, retention не удаляет его, maintenance
  повторяет
  сверку. Startup продолжается; сохраняется single-use семантика.
- Добавлены network regressions миграции и расширены проверки multipart
  recovery, потерянных ответов, отмены запросов и конфликтов
  destination.

Настройка, команды миграции, recovery и ограничения отката:
[docs/HTTP-UPLOAD.md](docs/HTTP-UPLOAD.md).

Команды, результаты и границы подтверждения, включая qualification
реального
object store и 10 GiB:
[docs/VALIDATION-0.7.9.md](docs/VALIDATION-0.7.9.md).

Итог: 265 тестов, нагрузка 500 TLS клиентов и native reference —
успешно.
Реальные 10 GiB через MinIO (описанный test adapter), 1280parts и полный
SHA-256
пройдены; подробности — [VALIDATION-0.7.9](docs/VALIDATION-0.7.9.md).
2026-10-20 17:06:14 +07:00

2.3 KiB
Raw Permalink Blame History

0.7.8

  • Несколько XEP-0363 http_file_share components на общих HTTP listeners: маршрутизация по Host и mount, отдельные discovery/IQ slots, квоты и tokens.
  • Разные HTTP hosts могут использовать одинаковые mounts; один host — разные непересекающиеся paths. Неоднозначные одинаковые/вложенные mounts отвергаются при startup с именами components и конфликтующими путями.
  • Upload dispatcher компонуется с WebSocket, BOSH и http_altconnect без объединения конфликтующих fallback routers.
  • Сохранён local backend; добавлен S3-compatible gateway с SigV4, path-style addressing, HTTPS и loopback HTTP для изолированных тестов. Credentials можно получать через поля *_env.
  • Multipart передача частями 8 MiB, максимум восемь активных S3 uploads на component, проверка stream size, single-use PUT, abort при ошибке/отмене и recovery сохранённых multipart records перед открытием listeners.
  • Native XMPP metadata остаются локальными; backend identity guard запрещает скрытую смену хранилища при существующих slots. Rotation S3 credentials не меняет identity backend.
  • Добавлены network regressions для нескольких components и независимый локальный S3 protocol fixture с повторной проверкой SigV4. Fixture не подтверждает совместимость с production AWS S3 или MinIO.

Настройка, lifecycle AbortIncompleteMultipartUpload, recovery и ограничения: docs/HTTP-UPLOAD.md.

Реальная передача 10 GiB по HTTPS с local backend проверена: полный PUT/GET, совпадение SHA-256, Range за 4 GiB и выборочное измерение памяти. Полная регрессия, нагрузка 500 TLS клиентов и native reference tests пройдены. Результаты: docs/VALIDATION-0.7.8.md.