78 lines
5.6 KiB
Markdown
Executable File
78 lines
5.6 KiB
Markdown
Executable File
# Инструменты автоматизации 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/`.
|