vrack-core
v1.1.2
Published
Base VRack classes
Readme
Внимание! VRack считается устаревшим. Сейчас актуальная версия - VRack2
Данный репозиторий остаётся только для хранения устаревшего кода. Использовать его в новых проектах категорически не рекомендуется.
vrack-core
Основные классы работы VRack
Изменения
1.1.1
- Исправлена утечка памяти при использовании функции
requestвнутри дашборда (для обращения к системным вызовам)
1.1.0
- Была добавлена команда
DashboardDevicePushдля отправки данных в порт любого устройства - Теперь у устройств появилась возможность выполнять команды вышестоящего
Master. Это позволяет полноценно взаимодействовать разным дашборда между собой, не создавая дополнительных линий связи в виде сокетов. Так же, эта возможность позволяет систематизировать обслуживание VRack - например генерация нового дашборда и его включени или генерация новых ключей доступа.
0.4.0
- Теперь у входов/выходов можно указать режим работы (на данный момент их 2 - STANDART (обычный) и RETURNED (требует/возвращает значение)) пример
- Добавлена система фильтров - теперь в плагине можно назначать обработчиков команд и фильтровать их пособственным правилам (документация будет позже)
- Добавлены фильтры для ключей
- Фильтр команд - теперь можно назначать для ключа только определенные разрешенные команды
- Фильтр дашбордов - теперь можно назначить конкретные дашборды для ключа, остальные дашборды даже не будут отображатся в списке дашбордов
- Захват выхода устройства - теперь можно захватить выход устройства и получить с него debug информацию
- Обновление документации API и устройств. Отделена документация для работы с конкретным дашбордом
- Была переработана система ошибок, теперь ошибки будет обрабатывать проще из-за более строгой типизации (но все равно еще требует работы по стандартизации)
- Зависомость vrack-util перенесена в vrack-core, в скором времени vrack-util будет удален
- Была перестроена вся структура файлов. Теперь более наглядно видно, что является вспомогательным классом, что плагином.
- Рефакторинг кода для работы с командами, было удалено много кода, теперь ошибки будут приходить в более целостном виде
0.3.2
- Документация для API
- Много мелких фиксов при работе с API
- Теперь ключи доступа имеют название и описание
- Поддержка разрешенных подсетей для ключей доступа
- Теперь в канал action устройства отсылается информация
0.3.0
В этой версии было поломано немного обратной совместимости, и добавлены новые функции
- Немного переработана валидация, теперь ошибки будут более адекватными
- Теперь при использовании
dashboard.terminate()илиdevice.terminate()в случае еслиactionуказанinit,processилиpreprocess- дашборд не будет перезапущен автоматически. (раньше работало только дляinit) - Более строгое отношение к путям "action", теперь все пути будут форматироватся в "lowcase" а значит старые хаки с "actionName" больше работать не будут, только "action.name"
- Более недопускается использование примитивов в качестве аргумента для "action" только объекты
- Теперь можно использовать встроенную базовую валидацию "action" в устройствах:
const VRack = require("vrack-core");
const Rule = VRack.Rule;
module.exports = class extends VRack.Device {
actions = {
test: [new Rule("validstring").required().isString()],
};
actionTest(data) {
return data.validstring;
}
};- Необходимо указывать в списке "actions" все "action" устройства
- Старое определение устройств более не поддерживается (необходимо наследование от
vrack-core.Device) - Список
paramIDSтеперь не используется, и должен быть удален со всех устройств - Теперь можно отключить часть ненужного функционала через параметр устройства
settings
module.exports = class extends VRack.Device {
// ...
settings = {
message: false, // Отключение сообщений типа terminal, notify, error, alert, event
shares: false, // Отключение share данных
storage: false, // Отключение функции save() для устройства
};
// ...
};- Настройки устройства
settingsбудут передаваться клиенту внутри структуры дашборда. Это позволит отделить такие простые устройства какMixerустройства от активных. Так же упростит работу с устройствами которые не имеютsharesданные. Необязательным параметром можно передатьmessageTypes: ['terminal', 'notify', 'error', 'alert', 'event']для фильтрации конкретных типов сообщений. - Параметры
settingsустройства можно переопределить в конфиругации дашборда
{
"id": "Mix",
"type": "metric.Mixer",
"params": {},
"settings": {
"shares": false
}
},