37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# План интеграции загрузки функций из архивов в 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
|
||
- Документировать пайплайн и типовые ошибки
|