fdcbe32dfa7e83f3e48d635f9ccfdd40df68a7f4
Инструменты автоматизации 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) используйте скрипт:
./run.sh
Скрипт создаст виртуальное окружение Python, установит зависимости pip и npm, и запустит сервисы.
Опции:
--skip-install: Пропустить установку зависимостей.--help: Показать справку.
Переменные окружения:
BACKEND_PORT: Порт API (по умолчанию 8000).FRONTEND_PORT: Порт UI (по умолчанию 5173).
Разработка
Проект следует строгим правилам разработки:
- Semantic Code Generation: Использование протокола
.ai/standards/semantics.mdдля обеспечения надежности кода. - Design by Contract (DbC): Определение предусловий и постусловий для ключевых функций.
- 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/.
Description
Languages
JavaScript
53.8%
Python
31.3%
Svelte
8.4%
Shell
6.3%
TypeScript
0.1%