Сохранение исходников — загрузка только бинарным телом
Уточняем контракт эндпоинта POST /v1/apps/:id/sources — сохранения исходников приложения. Теперь загрузка принимает только сырые байты архива в теле запроса. multipart/form-data больше не поддерживается и возвращает понятную ошибку 400 INVALID_CONTENT_TYPE с подсказкой, как нужно слать.
Что передавать. Само тело запроса — байты архива (например, через curl с флагом --data-binary). Заголовок Content-Type указывает формат: application/gzip, application/x-tar, application/zip или application/octet-stream. Метаданные передаются не через поля формы и не через query-параметры, а через заголовки: X-Tags (теги через запятую), X-Note (комментарий к версии), X-Filename (оригинальное имя файла).
Для пользователей MCP. Если вы работаете через MCP-пакет mcp-vibecode-api, инструмент save_sources делает всё сам: упаковывает дерево файлов в tar.gz и отправляет в правильном формате. Обновление клиента не требуется.
Что делать со старыми скриптами. Если у вас есть клиент, который ходил multipart/form-data с полями формы — обновите его на бинарную загрузку с заголовками X-*. Сам ответ ошибки содержит hint с примером корректного curl-запроса, чтобы быстро понять, что менять.
Документация по приложениям и исходникам: https://vibecode.bitrix24.tech/docs/apps