# Инструменты автоматизации Superset (ss-tools) ## Обзор **ss-tools** — это современная платформа для автоматизации и управления экосистемой Apache Superset. Проект перешел от набора CLI-скриптов к полноценному веб-приложению с архитектурой Backend (FastAPI) + Frontend (SvelteKit), обеспечивая удобный интерфейс для сложных операций. ## Основные возможности ### 🚀 Миграция и управление дашбордами - **Dashboard Grid**: Удобный просмотр всех дашбордов во всех окружениях (Dev, Sandbox, Prod) в едином интерфейсе. - **Интеллектуальный маппинг**: Автоматическое и ручное сопоставление датасетов, таблиц и схем при переносе между окружениями. - **Проверка зависимостей**: Валидация наличия всех необходимых компонентов перед миграцией. ### 📦 Резервное копирование - **Планировщик (Scheduler)**: Автоматическое создание резервных копий дашбордов и датасетов по расписанию. - **Хранилище**: Локальное хранение артефактов с возможностью управления через UI. ### 🛠 Git Интеграция - **Version Control**: Возможность версионирования ассетов Superset. - **Git Dashboard**: Управление ветками, коммитами и деплоем изменений напрямую из интерфейса. - **Conflict Resolution**: Встроенные инструменты для разрешения конфликтов в YAML-конфигурациях. ### 🤖 LLM Анализ (AI Plugin) - **Автоматический аудит**: Анализ состояния дашбордов на основе скриншотов и метаданных. - **Генерация документации**: Автоматическое описание датасетов и колонок с помощью LLM (OpenAI, OpenRouter и др.). - **Smart Validation**: Поиск аномалий и ошибок в визуализациях. ### 🔐 Безопасность и администрирование - **Multi-user Auth**: Многопользовательский доступ с ролевой моделью (RBAC). - **Управление подключениями**: Централизованная настройка доступов к различным инстансам Superset. - **Логирование**: Подробная история выполнения всех фоновых задач. ## Технологический стек - **Backend**: Python 3.9+, FastAPI, SQLAlchemy, APScheduler, Pydantic. - **Frontend**: Node.js 18+, SvelteKit, Tailwind CSS. - **Database**: SQLite (для хранения метаданных, задач и настроек доступа). ## Структура проекта - `backend/` — Серверная часть, API и логика плагинов. - `frontend/` — Клиентская часть (SvelteKit приложение). - `specs/` — Спецификации функций и планы реализации. - `docs/` — Дополнительная документация по маппингу и разработке плагинов. ## Быстрый старт ### Требования - Python 3.9+ - Node.js 18+ - Настроенный доступ к API Superset ### Запуск Для автоматической настройки окружений и запуска обоих серверов (Backend & Frontend) используйте скрипт: ```bash ./run.sh ``` *Скрипт создаст виртуальное окружение Python, установит зависимости `pip` и `npm`, и запустит сервисы.* Опции: - `--skip-install`: Пропустить установку зависимостей. - `--help`: Показать справку. Переменные окружения: - `BACKEND_PORT`: Порт API (по умолчанию 8000). - `FRONTEND_PORT`: Порт UI (по умолчанию 5173). ## Разработка Проект следует строгим правилам разработки: 1. **Semantic Code Generation**: Использование протокола `.ai/standards/semantics.md` для обеспечения надежности кода. 2. **Design by Contract (DbC)**: Определение предусловий и постусловий для ключевых функций. 3. **Constitution**: Соблюдение правил, описанных в конституции проекта в папке `.specify/`. ### Полезные команды - **Backend**: `cd backend && .venv/bin/python3 -m uvicorn src.app:app --reload` - **Frontend**: `cd frontend && npm run dev` - **Тесты**: `cd backend && .venv/bin/pytest` ## Контакты и вклад Для добавления новых функций или исправления ошибок, пожалуйста, ознакомьтесь с `docs/plugin_dev.md` и создайте соответствующую спецификацию в `specs/`.