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.

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 - компилируемый язык программирования со статической типизацией, хорошо подходящий для высокой нагрузки.

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 использует его для конвейеров данных.