Skip to content

Определения ​

RepositoryRegistry ​

RepositoryRegistry - представление Pepeunit о внешнем Git репозитории, например, из GitLab или GitHub. Данная сущность содержит в себе полную копию репозитория и синхронизирует своё состояние с внешним репозиторием. На основе данной сущности создаются Repo.

Repo ​

Repo - внутренняя сущность Pepeunit, соединяющая RepositoryRegistry и Unit, позволяющая управлять пулом Unit. Можно настроить обновления сразу для всех связанных Unit и в ручную или автоматически их обновлять. Основная цель этой сущности - отвязка Unit по логике от RepositoryRegistry.

Unit ​

Unit - представление о физическом IoT устройстве в Pepeunit, данная сущность создаётся на основе Repo и несёт в себе информацию о конкретном физическом IoT устройстве, а также о версии микропрограммы, доступной в Repo.

UnitNode ​

UnitNode - представление о MQTT топике для Pepeunit, данная сущность описывает точку взаимодействия с Unit. UnitNode может быть двух типов: Input и Output. Между UnitNode разных Unit могут быть связи: от одного Output к многим Input.

Instance ​

Instance - представление о развёрнутом инстансе Pepeunit. Текущий инстанс публикует своё состояние по ссылке /pepeunit/api/v1/instances/current: версию, флаги, лимиты, контакты, публичные метрики и результат последних интеграционных тестов. Внешний Instance хранится как запись с этой ссылкой, статусом доверия Trust / Pending / Blocking и последним собранным состоянием соседа. Новые инстансы могут находиться сами при опросе доверенных соседей, но статус доверия им выставляет только Администратор. Подробнее

Operation Task ​

Operation Task - запись о фоновой задаче, которую Пользователь или Администратор запустил вручную. К таким задачам относятся интеграционные тесты, сканирование Instance, обновление RepositoryRegistry и массовое обновление прошивок Unit. Пользователь видит только свои задачи и их статусы Running, Success или Error. Подробнее

Datasource ​

Datasource - источник данных Grafana, из которого Grafana получает данные для дальнейшей визуализации. Backend реализует REST запрос для InfinityAPI из коробки для каждой отдельной организации. Такой запрос с использованием headers и params позволяет получать данные, накопленные с помощью механизмов DataPipe.

Visualization ​

Visualization, панели - способ отображения данных Grafana. Каждая отдельная визуализация может содержать несколько Datasource одного или нескольких типов. В каждую визуализацию можно связать несколько UnitNode с настроенным DataPipe. При сборке визуализаций следите, чтобы формат данных был одинаковым.

Dashboard ​

Dashboard - набор Visualization в Grafana, собранных на одной панели для удобного мониторинга и анализа данных.

schema_example.json ​

schema_example.json - файл схемы, описывающий MQTT топики, нужные Unit. Данный файл создаётся Разработчиком Unit и помещается в каждую версию Repo. Благодаря данному файлу Pepeunit создаёт UnitNode сущности, отвечающие за взаимодействие с Unit и регламентирующие политики доступа до топиков Unit. Подробнее

schema.json ​

schema.json - готовый файл схемы для Unit, генерируемый Pepeunit. Содержит в себе ссылки на UnitNode и базовые топики для взаимодействия с Pepeunit. Подробнее

env_example.json ​

env_example.json- файл, описывающий переменные окружения, нужные для корректной работы Unit. Он создаётся Разработчиком Unit и помещается в каждую версию Repo. На основе данного файла и ввода Пользователя, Pepeunit может сгенерировать env.json файл для Unit. Подробнее

env.json ​

env.json- секретный файл, содержащий переменные окружения, нужные для корректной работы Unit. Именно этот файл отличает ваш Unit от других Unit, созданных из одного и того же Repo.

Создаётся владельцем Unit совместно с Pepeunit и хранится в шифрованном виде внутри сущности Unit. Подробнее

pepeunit.toml ​

pepeunit.toml - стандартизированный информационный блок Unit, включающий в себя исчерпывающую информацию о Unit. Помещается в корень Git репозитория и выполняет функцию машиночитаемого описания Unit для Pepeunit. Ближайший аналог в мире разработки - pyproject.toml. Подробнее

readme.md ​

readme.md или README.md - файл документации внутри репозитория Git, по усмотрению создателя репозитория содержит базовую информацию о репозитории, особенностях работы, настройке или любую другую информацию, которую автор счёл нужной. В Pepeunit для заполнения readme.md используется генератор на основе pepeunit.toml. Подробнее

.gitignore ​

.gitignore - файл, содержащий перечисление файлов и директорий, которые Git должен игнорировать. Поддерживает паттерны для облегчения чистки файлов. Подробнее

.pepeignore ​

.pepeignore - аналогичный по синтаксису .gitignore файл Git репозиториев у Unit, но позволяющий удалить все указанные в нём файлы и директории из репозитория в момент генерации архива с программой для Интерпретируемых Unit. Подробнее

LICENSE ​

LICENSE - файл лицензии, устанавливается в корень репозитория Git, регламентирует юридический аспект использования репозитория. Репозитории Pepeunit публикуются под лицензией AGPL v3; авторы собственных репозиториев выбирают лицензию самостоятельно (см. spdx.org).

Micropython ​

Micropython - простая и эффективная реализация языка программирования Python 3, включающая небольшое подмножество стандартной библиотеки Python и оптимизированная для работы на микроконтроллерах и в ограниченных средах.

Golang ​

Go, Golang - компилируемый язык программирования со статической типизацией, хорошо подходящий для высокой нагрузки.

ESP-IDF ​

ESP-IDF - официальный фреймворк компании Espressif для разработки прошивок на языках C и C++ для микроконтроллеров семейства ESP32.

Fediverse ​

Fediverse - способ организации взаимодействия сервер-сервер, обеспечивающий децентрализованную схему распространения и обработки информации.

IoT ​

Internet of Things - глобальная экосистема взаимосвязанных устройств, где обычные предметы, такие как холодильники, лампочки или автомобили, обретают общие возможности для взаимодействия, благодаря встроенным сенсорам, чипам и интернет-подключению, самостоятельно обмениваясь данными для упрощения жизни человека.

Framework ​

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

В отличие от библиотеки, фреймворк диктует правила организации кода и вызывает пользовательский код по своему усмотрению.

Git ​

Git - бесплатная распределенная система контроля версий с открытым исходным кодом, предназначенная для быстрой и эффективной работы с проектами, от небольших до очень крупных.

Interpretable ​

Interpretable - семейство языков программирования, в которых код исполняется интерпретатором (часто через байткод/JIT), без обязательной предварительной компиляции в отдельный исполняемый файл.

Compilable ​

Compilable - семейство языков программирования, где код перед исполнением компилируется в машинный код или байткод, после чего исполняется напрямую или через виртуальную машину/JIT.

Git Commit ​

Commit или Коммит - зафиксированное во времени состояние кода или иной байтовой структуры в системе контроля версий Git. Каждый коммит имеет свой уникальный идентификатор и обычно имеет description - текстовое описание изменений, которые в него входят.

Git Tag ​

Tag или Тег - специальное обозначение коммита. Обычно, тег присваивается стабильным-релизным коммитам какой-либо программы и характеризуют её версию.

Git Branch ​

Branch или Ветка - набор коммитов, расположенных в хронологическом порядке в системе контроля версии Git.

GitLab ​

GitLab - веб-инструмент жизненного цикла Git репозиториев от компании GitLab Inc. В данной документации под GitLab подразумевается не только gitlab.com, но и любой другой инстанс GitLab CE или GitLab EE

GitHub ​

GitHub - хостинг Git репозиториев от компании GitHub, Inc..

SQL ​

SQL (Structured Query Language) — декларативный язык программирования для создания, изменения и управления базами данных.

API ​

Application Programming Interface - набор правил взаимодействия, предоставляемый программами и описывающий взаимодействие с ними. Обычно, описывается набором контрактов, или договоров. Например, Backend Pepeunit предоставляет: REST, GQL, MQTT.

REST ​

REST API - архитектурный стиль, описывающий взаимодействие программы с клиентами через HTTP запросы. Pepeunit Backend использует пакет Pydantic и спецификацию OpenAPI для предоставления REST API.

GQL ​

GraphQL API - язык запросов и серверная среда с открытым исходным кодом, использующая HTTP(S) для запросов. Pepeunit Backend использует пакет strawberry-graphql для предоставления GraphQL API.

MQTT ​

MQTT - лёгкий сетевой протокол, работающий поверх TCP/IP, ориентированный на обмен сообщениями по модели издатель-подписчик. Pepeunit Backend использует пакет fastapi-mqtt как клиент для взаимодействия c EMQX.

Telegram ​

Telegram - популярный мессенджер, имеющий функционал Telegram Bot.

Telegram Bot ​

Telegram Bot API - открытый API для взаимодействия с внешними по отношению к Telegram сервисами, например: Pepeunit. Для интеграции с Telegram Bot API Pepeunit использует пакет AioGram как клиент. Telegram Bot API позволяет Backend верифицировать Пользователей. Управление ботами происходит через Bot Father.

YML ​

YML или YAML - человекочитаемый формат данных, используемый для сериализации и конфигурации. Данный формат широко применяется в автоматизации и конвейерах для описания этапов и их параметров. Pepeunit использует его для конвейеров данных.