/
h0tnanny
/
IotPlatform
Обзор
Документация
Войти
/
h0tnanny
/
IotPlatform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
database/test-data.sql
182 строки
7 KB
h0tnanny
изоляция при помощи isolated-vm
07 фев 2026, 01:48
07 фев 2026, 01:48
5a1137c
Код
Авторство
О чём код?
-- Тестовые данные для проверки работы IoT LowCode Platform -- Очистка существующих данных (если есть) TRUNCATE workflows, equipment CASCADE; -- ========== WORKFLOW 1: Простой workflow с проверкой температуры ========== -- Создаем workflow INSERT INTO workflows (id, name, description, update_interval, is_activated, start_node_id) VALUES ( 'wf-temperature-alert', 'Мониторинг температуры', 'Проверяет температуру и выводит предупреждение если > 30°C', 1000, true, 'node-check-temp' ); -- Добавляем переменные для workflow INSERT INTO workflow_variables (workflow_id, name, description, type, value) VALUES ('wf-temperature-alert', 'temperature', 'Текущая температура', 'Number', '25'), ('wf-temperature-alert', 'threshold', 'Порог температуры', 'Number', '30'), ('wf-temperature-alert', 'alertMessage', 'Сообщение тревоги', 'String', '""'); -- Добавляем узлы workflow INSERT INTO workflow_nodes (id, workflow_id, name, type, config) VALUES -- Узел проверки температуры ('node-check-temp', 'wf-temperature-alert', 'Проверка температуры', 'ConditionNode', '{"fieldName": "temperature", "operator": ">", "compareValue": "threshold", "trueNextId": "node-high-temp", "falseNextId": "node-normal-temp"}'::jsonb), -- Узел для высокой температуры ('node-high-temp', 'wf-temperature-alert', 'Высокая температура', 'ActionNode', '{"code": "variables.alertMessage = \"⚠️ ВНИМАНИЕ: Температура \" + variables.temperature + \"°C превышает норму!\"; console.log(variables.alertMessage);", "nextNodeId": null}'::jsonb), -- Узел для нормальной температуры ('node-normal-temp', 'wf-temperature-alert', 'Нормальная температура', 'ActionNode', '{"code": "variables.alertMessage = \"✓ Температура в норме: \" + variables.temperature + \"°C\"; console.log(variables.alertMessage);", "nextNodeId": null}'::jsonb); -- ========== WORKFLOW 2: Workflow с циклом ========== INSERT INTO workflows (id, name, description, update_interval, is_activated, start_node_id) VALUES ( 'wf-counter-loop', 'Счетчик с циклом', 'Увеличивает счетчик от 0 до 5', 2000, true, 'node-loop-start' ); INSERT INTO workflow_variables (workflow_id, name, description, type, value) VALUES ('wf-counter-loop', 'counter', 'Счетчик', 'Number', '0'), ('wf-counter-loop', 'maxCount', 'Максимальное значение', 'Number', '5'); INSERT INTO workflow_nodes (id, workflow_id, name, type, config) VALUES -- Узел цикла ('node-loop-start', 'wf-counter-loop', 'Цикл While', 'LoopNode', '{"fieldName": "counter", "operator": "<", "compareValue": "maxCount", "bodyNodeId": "node-increment", "exitNodeId": "node-loop-end", "maxIterations": 10}'::jsonb), -- Узел инкремента ('node-increment', 'wf-counter-loop', 'Увеличить счетчик', 'ActionNode', '{"code": "variables.counter = variables.counter + 1; console.log(\"Счетчик: \" + variables.counter);", "nextNodeId": "node-loop-start"}'::jsonb), -- Узел завершения ('node-loop-end', 'wf-counter-loop', 'Завершение цикла', 'ActionNode', '{"code": "console.log(\"✓ Цикл завершен. Финальное значение: \" + variables.counter);", "nextNodeId": null}'::jsonb); -- ========== WORKFLOW 3: Неактивный workflow для проверки ========== INSERT INTO workflows (id, name, description, update_interval, is_activated, start_node_id) VALUES ( 'wf-inactive-test', 'Неактивный workflow', 'Этот workflow не должен выполняться', 1000, false, 'node-test-start' ); INSERT INTO workflow_variables (workflow_id, name, description, type, value) VALUES ('wf-inactive-test', 'testVar', 'Тестовая переменная', 'String', '"inactive"'); INSERT INTO workflow_nodes (id, workflow_id, name, type, config) VALUES ('node-test-start', 'wf-inactive-test', 'Тестовый узел', 'ActionNode', '{"code": "console.log(\"Этот код не должен выполниться\");", "nextNodeId": null}'::jsonb); -- ========== EQUIPMENT 1: HTTP датчик температуры (активный режим) ========== INSERT INTO equipment (id, name, protocol, data_mode, endpoint, poll_interval) VALUES ( 'eq-temp-sensor', 'Датчик температуры #1', 'http', 'active', 'http://sensor.local/api/temperature', 5000 ); INSERT INTO equipment_variables (equipment_id, name, description, type, value) VALUES ('eq-temp-sensor', 'temperature', 'Температура', 'Double', '22.5'), ('eq-temp-sensor', 'humidity', 'Влажность', 'Double', '45.3'), ('eq-temp-sensor', 'status', 'Статус датчика', 'String', '"online"'); -- ========== EQUIPMENT 2: UDP датчик давления (активный режим) ========== INSERT INTO equipment (id, name, protocol, data_mode, endpoint, poll_interval) VALUES ( 'eq-pressure-sensor', 'Датчик давления', 'udp', 'active', '192.168.1.100:5000', 3000 ); INSERT INTO equipment_variables (equipment_id, name, description, type, value) VALUES ('eq-pressure-sensor', 'pressure', 'Давление (кПа)', 'Number', '101'), ('eq-pressure-sensor', 'altitude', 'Высота (м)', 'Number', '150'), ('eq-pressure-sensor', 'isCalibrated', 'Откалиброван', 'Boolean', 'true'); -- ========== EQUIPMENT 3: Внешний API (пассивный режим) ========== INSERT INTO equipment (id, name, protocol, data_mode, endpoint, poll_interval) VALUES ( 'eq-external-api', 'Внешний API источник', 'http', 'passive', '/datasource/eq-external-api', 0 ); INSERT INTO equipment_variables (equipment_id, name, description, type, value) VALUES ('eq-external-api', 'dataValue', 'Значение данных', 'Number', '0'), ('eq-external-api', 'lastUpdate', 'Последнее обновление', 'String', '"never"'), ('eq-external-api', 'isConnected', 'Подключен', 'Boolean', 'false'); -- Проверка созданных данных SELECT '=== WORKFLOWS ===' as info, COUNT(*) as total, SUM(CASE WHEN is_activated THEN 1 ELSE 0 END) as activated FROM workflows UNION ALL SELECT '=== WORKFLOW NODES ===' as info, COUNT(*) as total, NULL FROM workflow_nodes UNION ALL SELECT '=== WORKFLOW VARIABLES ===' as info, COUNT(*) as total, NULL FROM workflow_variables UNION ALL SELECT '=== EQUIPMENT ===' as info, COUNT(*) as total, SUM(CASE WHEN data_mode = 'active' THEN 1 ELSE 0 END) as active_mode FROM equipment UNION ALL SELECT '=== EQUIPMENT VARIABLES ===' as info, COUNT(*) as total, NULL FROM equipment_variables;