# Open-source Studio

Dashboard Studio предоставляет вариант с открытым исходным кодом (лицензия MPL-2.0) для технических команд, которым требуется настройка фронтенда сверх стандартной конфигурации. Изменяйте UI, интегрируйте с существующими приложениями или реализуйте собственные системы дизайна, сохраняя полный набор аналитических возможностей.

### Сценарии использования

Распространённые сценарии, когда подход с открытым исходным кодом может быть полезен:

* Интеграция фирменного стиля и системы дизайна
* Специализированные отраслевые UI-сценарии
* Встраиваемая аналитика в проприетарные приложения
* Реализации white-label для партнёров

### Предварительные требования

| Компонент              | Требование                                                        |
| ---------------------- | ----------------------------------------------------------------- |
| **Доступ к IoT Query** | Активный экземпляр с действительными учётными данными базы данных |
| **Аутентификация**     | JWT-токен от Navixy Authentication Gateway                        |
| **Среда разработки**   | Node.js 18+, npm, Git                                             |
| **Технические навыки** | React, TypeScript, PostgreSQL, современная веб-разработка         |

{% hint style="info" %}
См. [App Connect](/docs/navixy-api/user-api/backend-api/resources/commons/user/applications/app-connect.md) в нашей документации для разработчиков, где приведены подробности реализации аутентификации.
{% endhint %}

## Компоненты с открытым исходным кодом

Реализация Dashboard Studio с открытым исходным кодом состоит из трёх основных компонентов:

### Репозиторий GitHub

**Расположение:** <https://github.com/SquareGPS/navixy-iot-query-dashboard>

Репозиторий содержит полное React-фронтенд-приложение, серверные сервисы Node.js, конфигурационные файлы и подробную документацию. Клонируйте репозиторий для локальной разработки или чтобы изучить архитектуру перед внедрением.

### Пакет npm

Упрощённый способ распространения для интеграции в JavaScript-проекты. Пакет отражает кодовую базу GitHub и использует стандартный рабочий процесс установки npm. См. репозиторий [README](https://github.com/SquareGPS/navixy-iot-query-dashboard?tab=readme-ov-file#navixy-iot-query-dashboard) для получения инструкций по установке и версионированию.

### Шлюз аутентификации

Генерация JWT-токена через шлюз аутентификации Navixy. Серверная часть прозрачно обрабатывает управление сессиями. См. [App Connect](/docs/navixy-api/user-api/backend-api/resources/commons/user/applications/app-connect.md) в нашей документации для разработчиков, где приведены подробности реализации.

## Начало работы

**Шаги настройки:**

1. Изучите репозиторий [README](https://github.com/SquareGPS/navixy-iot-query-dashboard)
2. Убедитесь, что у вас есть активный доступ к IoT Query
3. Установите Node.js 18+ и npm
4. Следуйте руководству [Быстрый старт](https://github.com/SquareGPS/navixy-iot-query-dashboard) в репозитории для локального развёртывания
5. Изучите [документацию по архитектуре](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/ARCHITECTURE.md) перед настройкой

### Документация в репозитории

Репозиторий включает подробные руководства по работе с кодовой базой:

| Документ                                                                                                      | Содержимое                                                                 |
| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [**ARCHITECTURE.md**](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/ARCHITECTURE.md) | Системный дизайн, структура компонентов, поток данных                      |
| [**DEVELOPMENT.md**](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/DEVELOPMENT.md)   | Локальная настройка, стандарты кодирования, тестирование, рабочие процессы |
| [**API.md**](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/API.md)                   | Серверные конечные точки, форматы запросов/ответов, аутентификация         |
| [**DEPLOYMENT.md**](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/DEPLOYMENT.md)     | Промышленное размещение для различных сред                                 |

Все файлы документации находятся в папке [`/docs`](https://github.com/SquareGPS/navixy-iot-query-dashboard/tree/main/docs) репозитория. Кодовая база полностью использует TypeScript для обеспечения типобезопасности и понятных интерфейсов компонентов.

### Возможности настройки

Реализация с открытым исходным кодом предоставляет полный доступ к фронтенду для внесения изменений:

{% columns %}
{% column %}
**UI и дизайн**

* Библиотека компонентов (цвета, типографика, отступы, UI-паттерны)
* Интеграция собственной системы дизайна
* Изменение темы

**Редактор дашбордов**

* Пользовательские алгоритмы компоновки
* Альтернативные способы размещения панелей
* Упрощённые рабочие процессы для определённых групп пользователей
  {% endcolumn %}

{% column %}
**Визуализации**

* Замените существующие компоненты графиков на собственные
* Добавьте новые типы визуализаций
* Измените поведение рендеринга графиков

**Интеграция**

* Реализация единого входа
* Общая навигация с существующими приложениями
* Встраиваемые аналитические представления
  {% endcolumn %}
  {% endcolumns %}

Изучите [`ARCHITECTURE.md`](https://github.com/SquareGPS/navixy-iot-query-dashboard/blob/main/docs/ARCHITECTURE.md) файл в репозитории перед внесением значительных изменений, чтобы понять взаимосвязи компонентов и необходимые изменения.

### Полное соответствие возможностям стандартной версии

Dashboard Studio с открытым исходным кодом полностью соответствует по функциональности версии, размещённой в Navixy:

| Функция                                                  | Open-source | Стандартная |
| -------------------------------------------------------- | ----------- | ----------- |
| Редактор дашбордов (drag-and-drop, панели, строки)       | ✓           | ✓           |
| Выполнение SQL (безопасность, тайм-ауты, кэширование)    | ✓           | ✓           |
| Визуализации (столбчатая, круговая, таблица, показатель) | ✓           | ✓           |
| Организация меню (разделы, изменение порядка)            | ✓           | ✓           |
| Обновления и новые функции                               | ✓           | ✓           |

Репозиторий регулярно получает обновления, синхронизированные с релизами размещённой версии. Новые типы визуализаций, возможности редактора и улучшения производительности появляются в обеих моделях развёртывания одновременно.

### Модель поддержки и обслуживания

| Ответственность                      | Ваша команда | Navixy |
| ------------------------------------ | ------------ | ------ |
| Основные обновления Dashboard Studio |              | ✓      |
| Патчи безопасности                   |              | ✓      |
| Совместимость с API IoT Query        |              | ✓      |
| Обновления документации              |              | ✓      |
| Поддержка пользовательского кода     | ✓            |        |
| Инфраструктура развёртывания         | ✓            |        |
| Синхронизация с upstream             | ✓            |        |
| Тестирование после обновлений        | ✓            |        |

Отслеживайте в репозитории релизы, содержащие исправления ошибок, патчи безопасности и новые функции. Перед развёртыванием в production проверяйте свои доработки после обновлений.

{% hint style="info" %}

#### Поддержка и помощь

По вопросам технической поддержки и помощи по IoT Query обращайтесь в нашу службу поддержки по адресу <iotquery@navixy.com>.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/analytics/ru/dashboard-studio/open-source-studio.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
