env_example.json
Какое функциональное назначение у env_example.json?
Данный файл - это контракт между Разработчиком Unit и Pepeunit:
- Разработчик Unit гарантирует, что он реализует в функционале Unit все или часть стандартных переменных Pepeunit, позволяющих взаимодействовать с Pepeunit
- Pepeunit гарантирует возможность Пользователей установить переменные указанные Разработчиком Unit
- Pepeunit гарантирует, что автоматически установит стандартные переменные указанные в файле при первом сохранении
envсо стороны Пользователя.
Структура
{
"WIFI_SSID": "ssid",
"WIFI_PASS": "password",
"PWM_FAN_PIN": 0,
"DS18B20_PIN_NUM": 4,
"REGULATOR_OPERATING_RANGE": 1000,
"PUBLISH_SEND_INTERVAL": 1,
"TEMP_MIN": 30,
"TEMP_MAX": 60,
"DUTY_MIN": 8192,
"DUTY_MAX": 65535,
"PU_DOMAIN": "unit.example.com",
"PU_HTTP_TYPE": "https",
"PU_APP_PREFIX": "/pepeunit",
"PU_API_ACTUAL_PREFIX": "/api/v1",
"PU_MQTT_HOST": "emqx.example.com",
"PU_MQTT_PORT": 1883,
"PU_MQTT_PING_INTERVAL": 30,
"PU_AUTH_TOKEN": "jwt_token",
"PU_SECRET_KEY": "32_bit_secret_key",
"PU_ENCRYPT_KEY": "32_bit_encrypt_key",
"PU_STATE_SEND_INTERVAL": 300,
"PU_MIN_LOG_LEVEL": "Debug",
"PU_MAX_LOG_LENGTH": 64
}Переменные можно разделить на две категории: стандартные переменные и переменные окружения разработчика
Стандартные переменные Pepeunit
Pepeunit резервирует следующий набор переменных окружения Unit:
| Переменная | Генерируемое значение в env.json | Зачем нужна? |
|---|---|---|
PU_DOMAIN | PU_DOMAIN из Backend ENV | Доменное имя или ip адрес инстанса Pepeunit |
PU_HTTP_TYPE | PU_SECURE из Backend ENV | Тип соединения https/http с доменным именем или ip адресом Backend в формате https/http |
PU_APP_PREFIX | PU_APP_PREFIX из Backend ENV | Префикс Backend |
PU_API_ACTUAL_PREFIX | PU_API_V1_PREFIX из Backend ENV | Префикс актуальной версии API для Backend. Полностью соответствует последней версии API |
PU_MQTT_HOST | PU_MQTT_HOST из Backend ENV | Доменное имя или ip - адрес инстанса EMQX |
PU_MQTT_PORT | PU_MQTT_PORT из Backend ENV | Порт для взаимодействия с EMQX, по умолчанию 1883 |
PU_MQTT_PING_INTERVAL | 30 | Частота MQTT пинга в секундах, 30 секунд для всех |
PU_AUTH_TOKEN | jwt токен | Вечный токен доступа Unit к инстансу Pepeunit. Данный токен позволяет пройти авторизацию на подписку и публикацию у топиков EMQX, устанавливается Backend автоматически. |
PU_SECRET_KEY | 32 байтовый ключ в формате base64 | Уникальный для каждого Unit. Удобно использовать для подписи или генерации jwt. Устанавливается Backend автоматически |
PU_ENCRYPT_KEY | 32 байтовый ключ в формате base64 | Уникальный для каждого Unit. Удобно использовать для шифрования методом aes-gcm-256. Устанавливается Backend автоматически |
PU_STATE_SEND_INTERVAL | PU_STATE_SEND_INTERVAL из Backend ENV | Частота отправки состояния в стандартный топик состояния |
PU_MIN_LOG_LEVEL | Debug | Минимальный уровень лога, который будет отправляться по MQTT и сохраняться в файл log.json. Если установить например Warning, то Debug и Info отправляться не будут |
PU_MAX_LOG_LENGTH | 64 | Максимальное число строк в файле log.json, удаляются строки из начала файла, сохраняются в конец. |
PU_COMMIT_VERSION | Hash коммита | Отображает текущую таргет версию Unit. Имеет уникальный функционал, её нельзя изменить вручную в меню изменения env.json, она будет игнорироваться при сохранении |
Переменные окружения Разработчика Unit
Разработчик Unit может создавать любые переменные окружения, которые отличаются по названию от стандартных. При этом значения, указанные в переменных, будут отображаться как значения по умолчанию в интерфейсе Пользователей.
DANGER
Так как Пользователь в итоге будет заполнять переменные вручную, всегда нужно заполнить pepeunit.toml и readme.md, чтобы Пользователь мог понять, за что отвечает каждая переменная
DANGER
Заполнение env.json Пользователем происходит на основе: Механизма генерации ENV