diff --git a/doc/progress-2026-04-30-archive-upload.md b/doc/progress-2026-04-30-archive-upload.md new file mode 100644 index 0000000..5731655 --- /dev/null +++ b/doc/progress-2026-04-30-archive-upload.md @@ -0,0 +1,36 @@ +# План интеграции загрузки функций из архивов в UI Fission Console + +## Цель +Добавить в web-интерфейс Fission Console возможность загружать функцию в виде архива (zip/tar), аналогично `fission function create --deploy ...`. + +## Основные шаги +1. UI: добавить компонент для выбора и загрузки архива (drag&drop или file input). +2. Backend: реализовать обработку архива, валидацию структуры, запуск линтеров и (опционально) AI-проверку. +3. Интеграция с Fission API: отправка архива через REST (multipart/form-data) для создания/обновления функции. +4. UI: отображение статуса загрузки, ошибок, логов билда. + +## Валидация архива +- Проверка наличия entrypoint-файла (main.py/handler.js и т.д.) +- Проверка структуры (отсутствие мусора, секретов) +- Линтеры (flake8/pylint/go vet и т.д.) +- (Опционально) AI-проверка через облачный LLM + +## Безопасность +- Ограничить размер архива +- Фильтрация запрещённых файлов +- Логирование действий + +## Синхронизация с Terraform/CLI +- Архивы, деплоенные через UI, CLI, Terraform — одинакового формата +- UI всегда отображает актуальный список функций из Fission API + +## Возможные сложности +- Ошибки структуры архива (нет entrypoint) +- Долгая сборка/деплой больших архивов +- Drift при одновременном управлении через Terraform и UI + +## Следующие шаги +- Реализовать UI-компонент для загрузки архива +- Прототип backend-валидации +- Интеграция с Fission API +- Документировать пайплайн и типовые ошибки