Публикуйте байты, а не обещания
Почему ai_stp проверяет архив до подтверждения и сохраняет единственную неизменяемую нагрузку для каждой версии X.Y.
- artifact
- digest
- publishing
Метаданные могут описать артефакт, но не заменяют его. ai_stp сначала принимает и проверяет байты архива и только потом разрешает сделать публикацию публичной.
Загрузка является проверкой
Сервер читает архив в строгом лимите размера, отклоняет опасную структуру, вычисляет digest и сравнивает его с планом публикации. В неизменяемое объектное хранилище попадают только совпавшие байты.
Подтверждение зависит от хранилища
При подтверждении сервер снова убеждается, что запланированный объект существует и имеет ожидаемые размер и digest. Одной строки в базе недостаточно: публичные метаданные не могут опережать обещанные байты.
Одна X.Y — одна нагрузка
После публикации другой архив не может занять ту же идентичность X.Y. Потребитель скачивает ровно проверенные байты и сверяет digest, не доверяя изменяемому имени файла или описанию.