Last active 1725213315 Unlisted

https://github.com/jokob-sk/NetAlertX/issues/766

plugins.json Raw
1{
2 "data":[
3 {
4 "code_name":"arp_scan",
5 "unique_prefix":"ARPSCAN",
6 "execution_order":"Layer_2",
7 "plugin_type":"device_scanner",
8 "enabled":true,
9 "data_source":"script",
10 "mapped_to_table":"CurrentScan",
11 "data_filters":[
12 {
13 "compare_column":"Object_PrimaryID",
14 "compare_operator":"==",
15 "compare_field_id":"txtMacFilter",
16 "compare_js_template":"'{value}'.toString()",
17 "compare_use_quotes":true
18 }
19 ],
20 "show_ui":true,
21 "localized":[
22 "display_name",
23 "description",
24 "icon"
25 ],
26 "display_name":[
27 {
28 "language_code":"en_us",
29 "string":"Arp-Scan (Network scan)"
30 },
31 {
32 "language_code":"es_es",
33 "string":"Arp-Scan (Escaneo de red)"
34 },
35 {
36 "language_code":"de_de",
37 "string":"ARP-Scan (Netzwerkscan)"
38 }
39 ],
40 "icon":[
41 {
42 "language_code":"en_us",
43 "string":"<i class=\"fa-solid fa-search\"><\/i>"
44 },
45 {
46 "language_code":"es_es",
47 "string":"<i class=\"fa-solid fa-search\"><\/i>"
48 },
49 {
50 "language_code":"de_de",
51 "string":"<i class=\"fa-solid fa-search\"><\/i>"
52 }
53 ],
54 "description":[
55 {
56 "language_code":"en_us",
57 "string":"This plugin is to execute an arp-scan on the local network"
58 },
59 {
60 "language_code":"es_es",
61 "string":"Este plugin es para ejecutar un escaneo arp en la red local."
62 },
63 {
64 "language_code":"de_de",
65 "string":"Dieses Plugin wird genutzt, um einen ARP-Scan auf dem lokalen Netzwerk durchzuführen"
66 }
67 ],
68 "params":[
69 {
70 "name":"subnets",
71 "type":"setting",
72 "value":"SCAN_SUBNETS",
73 "base64":true
74 }
75 ],
76 "settings":[
77 {
78 "function":"RUN",
79 "type":{
80 "dataType":"string",
81 "elements":[
82 {
83 "elementType":"select",
84 "elementOptions":[
85
86 ],
87 "transformers":[
88
89 ]
90 }
91 ]
92 },
93 "default_value":"disabled",
94 "options":[
95 "disabled",
96 "once",
97 "schedule",
98 "always_after_scan",
99 "on_new_device"
100 ],
101 "localized":[
102 "name",
103 "description"
104 ],
105 "events":[
106 "run"
107 ],
108 "name":[
109 {
110 "language_code":"en_us",
111 "string":"When to run"
112 },
113 {
114 "language_code":"es_es",
115 "string":"Cuando ejecutar"
116 },
117 {
118 "language_code":"de_de",
119 "string":"Wann ausführen"
120 }
121 ],
122 "description":[
123 {
124 "language_code":"en_us",
125 "string":"Specify when your Network-discovery scan will run. Typical setting would be <code>schedule<\/code> and then you specify a cron-like schedule in the <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD<\/code>setting<\/a>. ⚠ Use the same schedule if you have multiple <i class=\"fa-solid fa-magnifying-glass-plus\"><\/i> Device scanners enabled. <br/><br/> Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS<\/code> setting<\/a>."
126 },
127 {
128 "language_code":"es_es",
129 "string":"Especifique cuándo se ejecutará su análisis de descubrimiento de red. La configuración típica sería <code>schedule<\/code> y luego se especifica una programación similar a cron en la configuración <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD<\/code><\/a> "
130 },
131 {
132 "language_code":"de_de",
133 "string":"Auswählen wann der Netzwerkscan laufen soll. Typischerweise wird <code>schedule<\/code> ausgewählt und ein cron-Intervall in der <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD<\/code>Einstellung<\/a> gesetzt."
134 }
135 ],
136 "value":"schedule"
137 },
138 {
139 "function":"CMD",
140 "type":{
141 "dataType":"string",
142 "elements":[
143 {
144 "elementType":"input",
145 "elementOptions":[
146 {
147 "readonly":"true"
148 }
149 ],
150 "transformers":[
151
152 ]
153 }
154 ]
155 },
156 "default_value":"python3 /app/front/plugins/arp_scan/script.py userSubnets={subnets}",
157 "options":[
158
159 ],
160 "localized":[
161 "name",
162 "description"
163 ],
164 "name":[
165 {
166 "language_code":"en_us",
167 "string":"Command"
168 },
169 {
170 "language_code":"es_es",
171 "string":"Comando"
172 },
173 {
174 "language_code":"de_de",
175 "string":"Befehl"
176 }
177 ],
178 "description":[
179 {
180 "language_code":"en_us",
181 "string":"Command to run. This should not be changed"
182 },
183 {
184 "language_code":"es_es",
185 "string":"Comando para ejecutar. Esto no debe ser cambiado"
186 },
187 {
188 "language_code":"de_de",
189 "string":"Auszuführender Befehl. Dieser sollte nicht geändert werden"
190 }
191 ],
192 "value":"python3 /app/front/plugins/arp_scan/script.py userSubnets={subnets}"
193 },
194 {
195 "function":"RUN_TIMEOUT",
196 "type":{
197 "dataType":"integer",
198 "elements":[
199 {
200 "elementType":"input",
201 "elementOptions":[
202 {
203 "type":"number"
204 }
205 ],
206 "transformers":[
207
208 ]
209 }
210 ]
211 },
212 "default_value":300,
213 "options":[
214
215 ],
216 "localized":[
217 "name",
218 "description"
219 ],
220 "name":[
221 {
222 "language_code":"en_us",
223 "string":"Run timeout"
224 },
225 {
226 "language_code":"es_es",
227 "string":"Tiempo límite de ejecución"
228 },
229 {
230 "language_code":"de_de",
231 "string":"Zeitlimit"
232 }
233 ],
234 "description":[
235 {
236 "language_code":"en_us",
237 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
238 },
239 {
240 "language_code":"es_es",
241 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, se cancela el script."
242 },
243 {
244 "language_code":"de_de",
245 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
246 }
247 ],
248 "value":300
249 },
250 {
251 "function":"RUN_SCHD",
252 "type":{
253 "dataType":"string",
254 "elements":[
255 {
256 "elementType":"input",
257 "elementOptions":[
258
259 ],
260 "transformers":[
261
262 ]
263 }
264 ]
265 },
266 "default_value":"*/5 * * * *",
267 "options":[
268
269 ],
270 "localized":[
271 "name",
272 "description"
273 ],
274 "name":[
275 {
276 "language_code":"en_us",
277 "string":"Schedule"
278 },
279 {
280 "language_code":"es_es",
281 "string":"Schedule"
282 },
283 {
284 "language_code":"de_de",
285 "string":"Zeitplan"
286 }
287 ],
288 "description":[
289 {
290 "language_code":"en_us",
291 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>*/3 * * * *<\/code> will run the scan every 3 minutes. Will be run NEXT time the time passes. <br/> It's recommended to use the same schedule interval for all plugins responsible for discovering new devices."
292 },
293 {
294 "language_code":"es_es",
295 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>*/3 * * * *<\/code> ejecutará el escaneo cada 3 minutos. Se ejecutará la PRÓXIMA vez que pase el tiempo. <br/> Se recomienda utilizar el mismo intervalo de programación para todos los complementos que analizan su red."
296 },
297 {
298 "language_code":"de_de",
299 "string":"Nur aktiv, wenn <code>schedule<\/code> in der <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN<\/code> Einstellung<\/a> ausgewählt wurde. Sichergehen, dass das Intervall in einem korrekten cron-ähnlichen Format angegeben wurde (z.B. auf <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a> testen). <code>*/3 * * * *<\/code> würde den Scan alle 3 Minuten starten. Wird erst beim NÄCHSTEN Intervall ausgeführt. <br/>Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Geräten suchen, auf den gleichen Wert zu setzen."
300 }
301 ],
302 "value":"*/5 * * * *"
303 },
304 {
305 "function":"WATCH",
306 "type":{
307 "dataType":"array",
308 "elements":[
309 {
310 "elementType":"select",
311 "elementOptions":[
312 {
313 "multiple":"true"
314 }
315 ],
316 "transformers":[
317
318 ]
319 }
320 ]
321 },
322 "default_value":[
323 "Watched_Value1",
324 "Watched_Value2"
325 ],
326 "options":[
327 "Watched_Value1",
328 "Watched_Value2",
329 "Watched_Value3",
330 "Watched_Value4"
331 ],
332 "localized":[
333 "name",
334 "description"
335 ],
336 "name":[
337 {
338 "language_code":"en_us",
339 "string":"Watched"
340 },
341 {
342 "language_code":"es_es",
343 "string":"Watched"
344 },
345 {
346 "language_code":"de_de",
347 "string":"Überwacht"
348 }
349 ],
350 "description":[
351 {
352 "language_code":"en_us",
353 "string":"Send a notification if selected values change. Use <code>CTRL + Click<\/code> to select/deselect. <ul> <li><code>Watched_Value1<\/code> is IP<\/li><li><code>Watched_Value2<\/code> is Vendor<\/li><li><code>Watched_Value3<\/code> is Interface <\/li><li><code>Watched_Value4<\/code> is N/A <\/li><\/ul>"
354 },
355 {
356 "language_code":"es_es",
357 "string":"Envía una notificación si los valores seleccionados cambian. Utilice <code>CTRL + clic<\/code> para seleccionar/deseleccionar. <ul> <li><code>Valor_observado1<\/code> es IP<\/li><li><code>Valor_observado2<\/code> es Proveedor<\/li><li><code>Valor_observado3<\/code> es Interfaz <\/li><li><code>Valor_observado4<\/code> es N/A <\/li><\/ul>"
358 },
359 {
360 "language_code":"de_de",
361 "string":"Sende eine Benachrichtigung, wenn ein ausgwählter Wert sich ändert. <code>STRG + klicken<\/code> zum aus-/abwählen. <ul> <li><code>Watched_Value1<\/code> ist die IP<\/li><li><code>Watched_Value2<\/code> ist der Hersteller<\/li><li><code>Watched_Value3<\/code> ist das Interface <\/li><li><code>Watched_Value4<\/code> ist nicht in Verwendung <\/li><\/ul>"
362 }
363 ],
364 "value":[
365 "Watched_Value1",
366 "Watched_Value2"
367 ]
368 },
369 {
370 "function":"REPORT_ON",
371 "type":{
372 "dataType":"array",
373 "elements":[
374 {
375 "elementType":"select",
376 "elementOptions":[
377 {
378 "multiple":"true"
379 }
380 ],
381 "transformers":[
382
383 ]
384 }
385 ]
386 },
387 "default_value":[
388 "new"
389 ],
390 "options":[
391 "new",
392 "watched-changed",
393 "watched-not-changed",
394 "missing-in-last-scan"
395 ],
396 "localized":[
397 "name",
398 "description"
399 ],
400 "name":[
401 {
402 "language_code":"en_us",
403 "string":"Report on"
404 },
405 {
406 "language_code":"es_es",
407 "string":"Informar sobre"
408 },
409 {
410 "language_code":"de_de",
411 "string":"Benachrichtige wenn"
412 }
413 ],
414 "description":[
415 {
416 "language_code":"en_us",
417 "string":"When should notification be sent out."
418 },
419 {
420 "language_code":"es_es",
421 "string":"Cuándo debe enviarse una notificación."
422 },
423 {
424 "language_code":"de_de",
425 "string":"Wann Benachrichtigungen gesendet werden sollen."
426 }
427 ],
428 "value":[
429 "new"
430 ]
431 },
432 {
433 "function":"ARGS",
434 "type":{
435 "dataType":"string",
436 "elements":[
437 {
438 "elementType":"input",
439 "elementOptions":[
440
441 ],
442 "transformers":[
443
444 ]
445 }
446 ]
447 },
448 "default_value":"sudo arp-scan --ignoredups --retry=6",
449 "options":[
450
451 ],
452 "localized":[
453 "name",
454 "description"
455 ],
456 "name":[
457 {
458 "language_code":"en_us",
459 "string":"Arguments"
460 }
461 ],
462 "description":[
463 {
464 "language_code":"en_us",
465 "string":"Arguments to run arps-scan with. Recommended and tested only with the setting: <br/> <code>sudo arp-scan --ignoredups --retry=6<\/code>."
466 }
467 ],
468 "value":"sudo arp-scan --ignoredups --retry=6"
469 }
470 ],
471 "database_column_definitions":[
472 {
473 "column":"Object_PrimaryID",
474 "mapped_to_column":"cur_MAC",
475 "css_classes":"col-sm-2",
476 "show":true,
477 "type":"device_name_mac",
478 "default_value":"",
479 "options":[
480
481 ],
482 "localized":[
483 "name"
484 ],
485 "name":[
486 {
487 "language_code":"en_us",
488 "string":"MAC"
489 },
490 {
491 "language_code":"es_es",
492 "string":"MAC"
493 },
494 {
495 "language_code":"de_de",
496 "string":"MAC"
497 }
498 ]
499 },
500 {
501 "column":"Watched_Value1",
502 "mapped_to_column":"cur_IP",
503 "css_classes":"col-sm-2",
504 "show":true,
505 "type":"device_ip",
506 "default_value":"",
507 "options":[
508
509 ],
510 "localized":[
511 "name"
512 ],
513 "name":[
514 {
515 "language_code":"en_us",
516 "string":"IP"
517 },
518 {
519 "language_code":"es_es",
520 "string":"IP"
521 },
522 {
523 "language_code":"de_de",
524 "string":"IP"
525 }
526 ]
527 },
528 {
529 "column":"Watched_Value2",
530 "mapped_to_column":"cur_Vendor",
531 "css_classes":"col-sm-2",
532 "show":true,
533 "type":"label",
534 "default_value":"",
535 "options":[
536
537 ],
538 "localized":[
539 "name"
540 ],
541 "name":[
542 {
543 "language_code":"en_us",
544 "string":"Vendor"
545 },
546 {
547 "language_code":"es_es",
548 "string":"Proveedor"
549 },
550 {
551 "language_code":"de_de",
552 "string":"Hersteller"
553 }
554 ]
555 },
556 {
557 "column":"Dummy",
558 "mapped_to_column":"cur_ScanMethod",
559 "mapped_to_column_data":{
560 "value":"arp-scan"
561 },
562 "css_classes":"col-sm-2",
563 "show":true,
564 "type":"label",
565 "default_value":"",
566 "options":[
567
568 ],
569 "localized":[
570 "name"
571 ],
572 "name":[
573 {
574 "language_code":"en_us",
575 "string":"Scan method"
576 },
577 {
578 "language_code":"es_es",
579 "string":"Método de escaneo"
580 },
581 {
582 "language_code":"de_de",
583 "string":"Scanmethode"
584 }
585 ]
586 },
587 {
588 "column":"DateTimeCreated",
589 "css_classes":"col-sm-2",
590 "show":true,
591 "type":"label",
592 "default_value":"",
593 "options":[
594
595 ],
596 "localized":[
597 "name"
598 ],
599 "name":[
600 {
601 "language_code":"en_us",
602 "string":"Created"
603 },
604 {
605 "language_code":"es_es",
606 "string":"Creado"
607 },
608 {
609 "language_code":"de_de",
610 "string":"Erstellt"
611 }
612 ]
613 },
614 {
615 "column":"DateTimeChanged",
616 "css_classes":"col-sm-2",
617 "show":true,
618 "type":"label",
619 "default_value":"",
620 "options":[
621
622 ],
623 "localized":[
624 "name"
625 ],
626 "name":[
627 {
628 "language_code":"en_us",
629 "string":"Changed"
630 },
631 {
632 "language_code":"es_es",
633 "string":"Cambiado"
634 },
635 {
636 "language_code":"de_de",
637 "string":"Geändert"
638 }
639 ]
640 },
641 {
642 "column":"Status",
643 "css_classes":"col-sm-1",
644 "show":true,
645 "type":"replace",
646 "default_value":"",
647 "options":[
648 {
649 "equals":"watched-not-changed",
650 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
651 },
652 {
653 "equals":"watched-changed",
654 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
655 },
656 {
657 "equals":"new",
658 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
659 },
660 {
661 "equals":"missing-in-last-scan",
662 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
663 }
664 ],
665 "localized":[
666 "name"
667 ],
668 "name":[
669 {
670 "language_code":"en_us",
671 "string":"Status"
672 },
673 {
674 "language_code":"es_es",
675 "string":"Estado"
676 },
677 {
678 "language_code":"de_de",
679 "string":"Status"
680 }
681 ]
682 }
683 ]
684 },
685 {
686 "code_name":"internet_ip",
687 "unique_prefix":"INTRNT",
688 "plugin_type":"device_scanner",
689 "execution_order":"Layer_3",
690 "enabled":true,
691 "mapped_to_table":"CurrentScan",
692 "data_filters":[
693 {
694 "compare_column":"Object_PrimaryID",
695 "compare_operator":"==",
696 "compare_field_id":"txtMacFilter",
697 "compare_js_template":"'{value}'.toString()",
698 "compare_use_quotes":true
699 }
700 ],
701 "data_source":"script",
702 "show_ui":true,
703 "localized":[
704 "display_name",
705 "description",
706 "icon"
707 ],
708 "display_name":[
709 {
710 "language_code":"en_us",
711 "string":"Internet check"
712 },
713 {
714 "language_code":"en_us",
715 "string":"Internet-Check"
716 }
717 ],
718 "icon":[
719 {
720 "language_code":"en_us",
721 "string":"<i class=\"fa-solid fa-globe\"><\/i>"
722 },
723 {
724 "language_code":"de_de",
725 "string":"<i class=\"fa-solid fa-globe\"><\/i>"
726 }
727 ],
728 "description":[
729 {
730 "language_code":"en_us",
731 "string":"A plugin to check your internet connectivity and IP."
732 },
733 {
734 "language_code":"de_de",
735 "string":"Ein Plugin zur Prüfung der Internetverbindung und externen IP."
736 }
737 ],
738 "params":[
739 {
740 "name":"prev_ip",
741 "type":"sql",
742 "value":"SELECT dev_LastIP FROM Devices WHERE dev_MAC = 'Internet' "
743 },
744 {
745 "name":"INTRNT_DIG_GET_IP_ARG",
746 "type":"setting",
747 "value":"INTRNT_DIG_GET_IP_ARG",
748 "base64":true
749 }
750 ],
751 "settings":[
752 {
753 "function":"RUN",
754 "events":[
755 "run"
756 ],
757 "type":{
758 "dataType":"string",
759 "elements":[
760 {
761 "elementType":"select",
762 "elementOptions":[
763
764 ],
765 "transformers":[
766
767 ]
768 }
769 ]
770 },
771 "default_value":"disabled",
772 "options":[
773 "disabled",
774 "once",
775 "schedule",
776 "always_after_scan"
777 ],
778 "localized":[
779 "name",
780 "description"
781 ],
782 "name":[
783 {
784 "language_code":"en_us",
785 "string":"When to run"
786 },
787 {
788 "language_code":"es_es",
789 "string":"Cuándo ejecutar"
790 },
791 {
792 "language_code":"de_de",
793 "string":"Wann ausführen"
794 }
795 ],
796 "description":[
797 {
798 "language_code":"en_us",
799 "string":"When the plugin should run. An hourly or daily <code>SCHEDULE<\/code> is a good option."
800 },
801 {
802 "language_code":"de_de",
803 "string":"Wann das Plugin ausgeführt werden soll. Eine stündliche oder tägliche <code>SCHEDULE<\/code> wird empfohlen."
804 }
805 ],
806 "value":"schedule"
807 },
808 {
809 "function":"CMD",
810 "type":{
811 "dataType":"string",
812 "elements":[
813 {
814 "elementType":"input",
815 "elementOptions":[
816 {
817 "readonly":"true"
818 }
819 ],
820 "transformers":[
821
822 ]
823 }
824 ]
825 },
826 "default_value":"python3 /app/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}",
827 "options":[
828
829 ],
830 "localized":[
831 "name",
832 "description"
833 ],
834 "name":[
835 {
836 "language_code":"en_us",
837 "string":"Command"
838 },
839 {
840 "language_code":"es_es",
841 "string":"Comando"
842 },
843 {
844 "language_code":"de_de",
845 "string":"Befehl"
846 }
847 ],
848 "description":[
849 {
850 "language_code":"en_us",
851 "string":"Command to run. This can not be changed"
852 },
853 {
854 "language_code":"es_es",
855 "string":"Comando a ejecutar. Esto no se puede cambiar"
856 },
857 {
858 "language_code":"de_de",
859 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
860 }
861 ],
862 "value":"python3 /app/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}"
863 },
864 {
865 "function":"DIG_GET_IP_ARG",
866 "type":{
867 "dataType":"string",
868 "elements":[
869 {
870 "elementType":"input",
871 "elementOptions":[
872
873 ],
874 "transformers":[
875
876 ]
877 }
878 ]
879 },
880 "default_value":"-4 myip.opendns.com @resolver1.opendns.com",
881 "options":[
882
883 ],
884 "localized":[
885 "name",
886 "description"
887 ],
888 "name":[
889 {
890 "language_code":"en_us",
891 "string":"Internet IP discovery"
892 },
893 {
894 "language_code":"es_es",
895 "string":"Descubrir de IP de Internet"
896 },
897 {
898 "language_code":"de_de",
899 "string":"Erkennung externer IP (\"Internet IP\")"
900 }
901 ],
902 "description":[
903 {
904 "language_code":"en_us",
905 "string":"Change the <a href=\"https://linux.die.net/man/1/dig\" target=\"_blank\">dig utility<\/a> arguments if you have issues resolving your Internet IP. Arguments are added at the end of the following command: <code>dig +short <\/code>. Tested with: <br/> <ul> <li><code>@ns1.google.com -t txt o-o.myaddr.l.google.com<\/code><\/li><li> <code>-4 myip.opendns.com @resolver1.opendns.com<\/code><\/li><\/ul>"
906 },
907 {
908 "language_code":"es_es",
909 "string":"Cambie los argumentos de la <a href=\"https://linux.die.net/man/1/dig\" target=\"_blank\">utilidad de dig<\/a> si tiene problemas para resolver su IP de Internet. Los argumentos se agregan al final del siguiente comando: <code>dig +short <\/code>."
910 },
911 {
912 "language_code":"de_de",
913 "string":"Ändere die Argumente des <a href=\"https://linux.die.net/man/1/dig\" target=\"_blank\">dig Dienstprogramms<\/a>, wenn Probleme beim Auflösen der externen IP auftreten. Argumente werden an das Ende des folgenden Befehls angehängt: <code>dig +short <\/code>."
914 }
915 ],
916 "value":"-4 myip.opendns.com @resolver1.opendns.com"
917 },
918 {
919 "function":"RUN_SCHD",
920 "type":{
921 "dataType":"string",
922 "elements":[
923 {
924 "elementType":"input",
925 "elementOptions":[
926
927 ],
928 "transformers":[
929
930 ]
931 }
932 ]
933 },
934 "default_value":"*/5 * * * *",
935 "options":[
936
937 ],
938 "localized":[
939 "name",
940 "description"
941 ],
942 "name":[
943 {
944 "language_code":"en_us",
945 "string":"Schedule"
946 },
947 {
948 "language_code":"es_es",
949 "string":"Schedule"
950 },
951 {
952 "language_code":"de_de",
953 "string":"Zeitplan"
954 }
955 ],
956 "description":[
957 {
958 "language_code":"en_us",
959 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#INTRNT_RUN\"><code>INTRNT_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes. It's recommended to use the same schedule interval for all plugins responsible for discovering new devices."
960 },
961 {
962 "language_code":"es_es",
963 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#INTRNT_RUN\"><code>INTRNT_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
964 },
965 {
966 "language_code":"de_de",
967 "string":"Nur aktiv, wenn <code>schedule<\/code> in der <a href=\"#INTRNT_RUN\"><code>INTRNT_RUN<\/code>Einstellung<\/a> ausgewählt wurde. Sichergehen, dass das Intervall in einem korrekten cron-ähnlichen Format angegeben wurde (z.B. auf <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a> testen). <code>0 4 * * *<\/code> würde den Scan täglich um 4 Uhr in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\">oben ausgewählten <code>TIMEZONE<\/code><\/a> starten. Wird erst beim NÄCHSTEN Intervall ausgeführt. <br/>Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Geräten suchen, auf den gleichen Wert zu setzen."
968 }
969 ],
970 "value":"*/5 * * * *"
971 },
972 {
973 "function":"RUN_TIMEOUT",
974 "type":{
975 "dataType":"integer",
976 "elements":[
977 {
978 "elementType":"input",
979 "elementOptions":[
980 {
981 "type":"number"
982 }
983 ],
984 "transformers":[
985
986 ]
987 }
988 ]
989 },
990 "default_value":30,
991 "options":[
992
993 ],
994 "localized":[
995 "name",
996 "description"
997 ],
998 "name":[
999 {
1000 "language_code":"en_us",
1001 "string":"Run timeout"
1002 },
1003 {
1004 "language_code":"es_es",
1005 "string":"Tiempo límite de ejecución"
1006 },
1007 {
1008 "language_code":"de_de",
1009 "string":"Zeitlimit"
1010 }
1011 ],
1012 "description":[
1013 {
1014 "language_code":"en_us",
1015 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
1016 },
1017 {
1018 "language_code":"es_es",
1019 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
1020 },
1021 {
1022 "language_code":"de_de",
1023 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
1024 }
1025 ],
1026 "value":30
1027 },
1028 {
1029 "function":"RETRIES",
1030 "type":{
1031 "dataType":"integer",
1032 "elements":[
1033 {
1034 "elementType":"input",
1035 "elementOptions":[
1036 {
1037 "type":"number"
1038 }
1039 ],
1040 "transformers":[
1041
1042 ]
1043 }
1044 ]
1045 },
1046 "default_value":3,
1047 "options":[
1048
1049 ],
1050 "localized":[
1051 "name",
1052 "description"
1053 ],
1054 "name":[
1055 {
1056 "language_code":"en_us",
1057 "string":"Retries"
1058 }
1059 ],
1060 "description":[
1061 {
1062 "language_code":"en_us",
1063 "string":"Number of retries before Internet is marked as unreachable. Exponential backoff strategy is used between tries (1s - 1st retry, 2s - 2nd retry, etc)."
1064 }
1065 ],
1066 "value":3
1067 },
1068 {
1069 "function":"WATCH",
1070 "type":{
1071 "dataType":"array",
1072 "elements":[
1073 {
1074 "elementType":"select",
1075 "elementOptions":[
1076 {
1077 "multiple":"true"
1078 }
1079 ],
1080 "transformers":[
1081
1082 ]
1083 }
1084 ]
1085 },
1086 "default_value":[
1087 "Watched_Value1"
1088 ],
1089 "options":[
1090 "Watched_Value1",
1091 "Watched_Value2",
1092 "Watched_Value3",
1093 "Watched_Value4"
1094 ],
1095 "localized":[
1096 "name",
1097 "description"
1098 ],
1099 "name":[
1100 {
1101 "language_code":"en_us",
1102 "string":"Watched"
1103 },
1104 {
1105 "language_code":"es_es",
1106 "string":"Visto"
1107 },
1108 {
1109 "language_code":"de_de",
1110 "string":"Überwacht"
1111 }
1112 ],
1113 "description":[
1114 {
1115 "language_code":"en_us",
1116 "string":"Send a notification if selected values change. Use <code>CTRL + Click<\/code> to select/deselect. <ul> <li><code>Watched_Value1<\/code> is Previous IP (not recommended)<\/li><li><code>Watched_Value2<\/code> unused<\/li><li><code>Watched_Value3<\/code> unused <\/li><li><code>Watched_Value4<\/code> type <\/li><\/ul>"
1117 },
1118 {
1119 "language_code":"de_de",
1120 "string":"Sende eine Benachrichtigung, wenn ein ausgwählter Wert sich ändert. <code>STRG + klicken<\/code> zum aus-/abwählen. <ul> <li><code>Watched_Value1<\/code> ist die Vorige IP (nicht empfohlen)<\/li><li><code>Watched_Value2<\/code> ist nicht in Verwendung<\/li><li><code>Watched_Value3<\/code> ist nicht in Verwendung <\/li><li><code>Watched_Value4<\/code> ist nicht in Verwendung <\/li><\/ul>"
1121 }
1122 ],
1123 "value":[
1124 "Watched_Value1"
1125 ]
1126 },
1127 {
1128 "function":"REPORT_ON",
1129 "type":{
1130 "dataType":"array",
1131 "elements":[
1132 {
1133 "elementType":"select",
1134 "elementOptions":[
1135 {
1136 "multiple":"true"
1137 }
1138 ],
1139 "transformers":[
1140
1141 ]
1142 }
1143 ]
1144 },
1145 "default_value":[
1146 "new",
1147 "watched-changed"
1148 ],
1149 "options":[
1150 "new",
1151 "watched-changed",
1152 "watched-not-changed",
1153 "missing-in-last-scan"
1154 ],
1155 "localized":[
1156 "name",
1157 "description"
1158 ],
1159 "name":[
1160 {
1161 "language_code":"en_us",
1162 "string":"Report on"
1163 },
1164 {
1165 "language_code":"es_es",
1166 "string":"Informar sobre"
1167 },
1168 {
1169 "language_code":"de_de",
1170 "string":"Benachrichtige wenn"
1171 }
1172 ],
1173 "description":[
1174 {
1175 "language_code":"en_us",
1176 "string":"Send a notification only on these statuses. <code>new<\/code> means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. <code>watched-changed<\/code> means that selected <code>Watched_ValueN<\/code> columns changed."
1177 },
1178 {
1179 "language_code":"es_es",
1180 "string":"Envíe una notificación solo en estos estados. <code>new<\/code> significa que se descubrió un nuevo objeto único (una combinación única de PrimaryId y SecondaryId). <code>watched-changed<\/code> significa que las columnas <code>Watched_ValueN<\/code> seleccionadas cambiaron."
1181 },
1182 {
1183 "language_code":"de_de",
1184 "string":"Benachrichtige nur bei diesen Status. <code>new<\/code> bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. <code>watched-changed<\/code> bedeutet eine ausgewählte <code>Watched_ValueN<\/code>-Spalte hat sich geändert."
1185 }
1186 ],
1187 "value":[
1188 "new",
1189 "watched-changed"
1190 ]
1191 }
1192 ],
1193 "database_column_definitions":[
1194 {
1195 "column":"Object_PrimaryID",
1196 "mapped_to_column":"cur_MAC",
1197 "css_classes":"col-sm-2",
1198 "show":true,
1199 "type":"device_name_mac",
1200 "default_value":"",
1201 "options":[
1202
1203 ],
1204 "localized":[
1205 "name"
1206 ],
1207 "name":[
1208 {
1209 "language_code":"en_us",
1210 "string":"MAC"
1211 },
1212 {
1213 "language_code":"es_es",
1214 "string":"MAC"
1215 },
1216 {
1217 "language_code":"de_de",
1218 "string":"MAC"
1219 }
1220 ]
1221 },
1222 {
1223 "column":"Object_SecondaryID",
1224 "mapped_to_column":"cur_IP",
1225 "css_classes":"col-sm-2",
1226 "show":true,
1227 "type":"device_ip",
1228 "default_value":"",
1229 "options":[
1230
1231 ],
1232 "localized":[
1233 "name"
1234 ],
1235 "name":[
1236 {
1237 "language_code":"en_us",
1238 "string":"IP"
1239 },
1240 {
1241 "language_code":"es_es",
1242 "string":"IP"
1243 },
1244 {
1245 "language_code":"de_de",
1246 "string":"IP"
1247 }
1248 ]
1249 },
1250 {
1251 "column":"Watched_Value1",
1252 "css_classes":"col-sm-2",
1253 "show":true,
1254 "type":"label",
1255 "default_value":"",
1256 "options":[
1257
1258 ],
1259 "localized":[
1260 "name"
1261 ],
1262 "name":[
1263 {
1264 "language_code":"en_us",
1265 "string":"Extra"
1266 },
1267 {
1268 "language_code":"de_de",
1269 "string":"Extra"
1270 }
1271 ]
1272 },
1273 {
1274 "column":"Watched_Value2",
1275 "css_classes":"col-sm-2",
1276 "show":true,
1277 "type":"textarea_readonly",
1278 "default_value":"",
1279 "options":[
1280
1281 ],
1282 "localized":[
1283 "name"
1284 ],
1285 "name":[
1286 {
1287 "language_code":"en_us",
1288 "string":"Response"
1289 }
1290 ]
1291 },
1292 {
1293 "column":"Watched_Value3",
1294 "css_classes":"col-sm-2",
1295 "show":true,
1296 "type":"label",
1297 "default_value":"",
1298 "options":[
1299
1300 ],
1301 "localized":[
1302 "name"
1303 ],
1304 "name":[
1305 {
1306 "language_code":"en_us",
1307 "string":"Retries needed"
1308 }
1309 ]
1310 },
1311 {
1312 "column":"Watched_Value4",
1313 "mapped_to_column":"cur_Type",
1314 "css_classes":"col-sm-2",
1315 "show":false,
1316 "type":"label",
1317 "default_value":"",
1318 "options":[
1319
1320 ],
1321 "localized":[
1322 "name"
1323 ],
1324 "name":[
1325 {
1326 "language_code":"en_us",
1327 "string":"Type"
1328 }
1329 ]
1330 },
1331 {
1332 "column":"Dummy",
1333 "mapped_to_column":"cur_ScanMethod",
1334 "mapped_to_column_data":{
1335 "value":"INTRNT"
1336 },
1337 "css_classes":"col-sm-2",
1338 "show":true,
1339 "type":"label",
1340 "default_value":"",
1341 "options":[
1342
1343 ],
1344 "localized":[
1345 "name"
1346 ],
1347 "name":[
1348 {
1349 "language_code":"en_us",
1350 "string":"Scan method"
1351 },
1352 {
1353 "language_code":"es_es",
1354 "string":"Método de escaneo"
1355 },
1356 {
1357 "language_code":"de_de",
1358 "string":"Scanmethode"
1359 }
1360 ]
1361 },
1362 {
1363 "column":"DateTimeCreated",
1364 "css_classes":"col-sm-2",
1365 "show":true,
1366 "type":"label",
1367 "default_value":"",
1368 "options":[
1369
1370 ],
1371 "localized":[
1372 "name"
1373 ],
1374 "name":[
1375 {
1376 "language_code":"en_us",
1377 "string":"Created"
1378 },
1379 {
1380 "language_code":"es_es",
1381 "string":"Creado"
1382 },
1383 {
1384 "language_code":"de_de",
1385 "string":"Erstellt"
1386 }
1387 ]
1388 },
1389 {
1390 "column":"DateTimeChanged",
1391 "mapped_to_column":"cur_DateTime",
1392 "css_classes":"col-sm-2",
1393 "show":true,
1394 "type":"label",
1395 "default_value":"",
1396 "options":[
1397
1398 ],
1399 "localized":[
1400 "name"
1401 ],
1402 "name":[
1403 {
1404 "language_code":"en_us",
1405 "string":"Changed"
1406 },
1407 {
1408 "language_code":"es_es",
1409 "string":"Cambiado"
1410 },
1411 {
1412 "language_code":"de_de",
1413 "string":"Geändert"
1414 }
1415 ]
1416 },
1417 {
1418 "column":"Status",
1419 "css_classes":"col-sm-1",
1420 "show":true,
1421 "type":"replace",
1422 "default_value":"",
1423 "options":[
1424 {
1425 "equals":"watched-not-changed",
1426 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
1427 },
1428 {
1429 "equals":"watched-changed",
1430 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
1431 },
1432 {
1433 "equals":"new",
1434 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
1435 },
1436 {
1437 "equals":"missing-in-last-scan",
1438 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
1439 }
1440 ],
1441 "localized":[
1442 "name"
1443 ],
1444 "name":[
1445 {
1446 "language_code":"en_us",
1447 "string":"Status"
1448 },
1449 {
1450 "language_code":"es_es",
1451 "string":"Estado"
1452 },
1453 {
1454 "language_code":"de_de",
1455 "string":"Status"
1456 }
1457 ]
1458 }
1459 ]
1460 },
1461 {
1462 "code_name":"nslookup_scan",
1463 "unique_prefix":"NSLOOKUP",
1464 "plugin_type":"other",
1465 "execution_order":"Layer_4",
1466 "enabled":true,
1467 "data_source":"script",
1468 "show_ui":true,
1469 "localized":[
1470 "display_name",
1471 "description",
1472 "icon"
1473 ],
1474 "display_name":[
1475 {
1476 "language_code":"en_us",
1477 "string":"NSLOOKUP (Name discovery)"
1478 }
1479 ],
1480 "icon":[
1481 {
1482 "language_code":"en_us",
1483 "string":"<i class=\"fa-solid fa-search\"><\/i>"
1484 }
1485 ],
1486 "description":[
1487 {
1488 "language_code":"en_us",
1489 "string":"A plugin to discover device names."
1490 }
1491 ],
1492 "params":[
1493 {
1494 "name":"ips",
1495 "type":"sql",
1496 "value":"SELECT dev_LastIP from DEVICES order by dev_MAC",
1497 "timeoutMultiplier":true
1498 }
1499 ],
1500 "settings":[
1501 {
1502 "function":"RUN",
1503 "events":[
1504 "run"
1505 ],
1506 "type":{
1507 "dataType":"string",
1508 "elements":[
1509 {
1510 "elementType":"select",
1511 "elementOptions":[
1512
1513 ],
1514 "transformers":[
1515
1516 ]
1517 }
1518 ]
1519 },
1520 "default_value":"disabled",
1521 "options":[
1522 "disabled",
1523 "before_name_updates",
1524 "on_new_device",
1525 "once",
1526 "schedule",
1527 "always_after_scan"
1528 ],
1529 "localized":[
1530 "name",
1531 "description"
1532 ],
1533 "name":[
1534 {
1535 "language_code":"en_us",
1536 "string":"When to run"
1537 },
1538 {
1539 "language_code":"es_es",
1540 "string":"Cuándo ejecutar"
1541 },
1542 {
1543 "language_code":"de_de",
1544 "string":"Wann laufen"
1545 }
1546 ],
1547 "description":[
1548 {
1549 "language_code":"en_us",
1550 "string":"When the plugin should be executed. If enabled this will execute the scan until there are no <code>(unknown)<\/code> or <code>(name not found)<\/code> devices. Setting this to <code>on_new_device<\/code> or a daily <code>schedule<\/code> is recommended.<br/><br/> Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS<\/code> setting<\/a>."
1551 }
1552 ],
1553 "value":"before_name_updates"
1554 },
1555 {
1556 "function":"CMD",
1557 "type":{
1558 "dataType":"string",
1559 "elements":[
1560 {
1561 "elementType":"input",
1562 "elementOptions":[
1563 {
1564 "readonly":"true"
1565 }
1566 ],
1567 "transformers":[
1568
1569 ]
1570 }
1571 ]
1572 },
1573 "default_value":"python3 /app/front/plugins/nslookup_scan/nslookup.py",
1574 "options":[
1575
1576 ],
1577 "localized":[
1578 "name",
1579 "description"
1580 ],
1581 "name":[
1582 {
1583 "language_code":"en_us",
1584 "string":"Command"
1585 },
1586 {
1587 "language_code":"es_es",
1588 "string":"Comando"
1589 },
1590 {
1591 "language_code":"de_de",
1592 "string":"Befehl"
1593 }
1594 ],
1595 "description":[
1596 {
1597 "language_code":"en_us",
1598 "string":"Command to run. This can not be changed"
1599 },
1600 {
1601 "language_code":"es_es",
1602 "string":"Comando a ejecutar. Esto no se puede cambiar"
1603 },
1604 {
1605 "language_code":"de_de",
1606 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
1607 }
1608 ],
1609 "value":"python3 /app/front/plugins/nslookup_scan/nslookup.py"
1610 },
1611 {
1612 "function":"RUN_SCHD",
1613 "type":{
1614 "dataType":"string",
1615 "elements":[
1616 {
1617 "elementType":"input",
1618 "elementOptions":[
1619
1620 ],
1621 "transformers":[
1622
1623 ]
1624 }
1625 ]
1626 },
1627 "default_value":"*/30 * * * *",
1628 "options":[
1629
1630 ],
1631 "localized":[
1632 "name",
1633 "description"
1634 ],
1635 "name":[
1636 {
1637 "language_code":"en_us",
1638 "string":"Schedule"
1639 },
1640 {
1641 "language_code":"es_es",
1642 "string":"Schedule"
1643 },
1644 {
1645 "language_code":"de_de",
1646 "string":"Schedule"
1647 }
1648 ],
1649 "description":[
1650 {
1651 "language_code":"en_us",
1652 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#NSLOOKUP_RUN\"><code>NSLOOKUP_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
1653 },
1654 {
1655 "language_code":"es_es",
1656 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#NSLOOKUP_RUN\"><code>NSLOOKUP_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
1657 },
1658 {
1659 "language_code":"de_de",
1660 "string":"Nur aktiviert, wenn Sie <code>schedule<\/code> in der <a href=\"#NSLOOKUP_RUN\"><code>NSLOOKUP_RUN<\/code>-Einstellung<\/a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Wenn Sie beispielsweise <code>0 4 * * *<\/code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ ausgeführt. Code> den Sie oben festgelegt haben<\/a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
1661 }
1662 ],
1663 "value":"*/30 * * * *"
1664 },
1665 {
1666 "function":"RUN_TIMEOUT",
1667 "type":{
1668 "dataType":"integer",
1669 "elements":[
1670 {
1671 "elementType":"input",
1672 "elementOptions":[
1673 {
1674 "type":"number"
1675 }
1676 ],
1677 "transformers":[
1678
1679 ]
1680 }
1681 ]
1682 },
1683 "default_value":10,
1684 "options":[
1685
1686 ],
1687 "localized":[
1688 "name",
1689 "description"
1690 ],
1691 "name":[
1692 {
1693 "language_code":"en_us",
1694 "string":"Run timeout"
1695 },
1696 {
1697 "language_code":"es_es",
1698 "string":"Tiempo límite de ejecución"
1699 },
1700 {
1701 "language_code":"de_de",
1702 "string":"Zeitüberschreitung"
1703 }
1704 ],
1705 "description":[
1706 {
1707 "language_code":"en_us",
1708 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
1709 },
1710 {
1711 "language_code":"es_es",
1712 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
1713 },
1714 {
1715 "language_code":"de_de",
1716 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
1717 }
1718 ],
1719 "value":10
1720 }
1721 ],
1722 "database_column_definitions":[
1723 {
1724 "column":"Object_PrimaryID",
1725 "css_classes":"col-sm-2",
1726 "show":true,
1727 "type":"device_name_mac",
1728 "default_value":"",
1729 "options":[
1730
1731 ],
1732 "localized":[
1733 "name"
1734 ],
1735 "name":[
1736 {
1737 "language_code":"en_us",
1738 "string":"MAC"
1739 },
1740 {
1741 "language_code":"es_es",
1742 "string":"MAC"
1743 }
1744 ]
1745 },
1746 {
1747 "column":"Object_SecondaryID",
1748 "css_classes":"col-sm-2",
1749 "show":true,
1750 "type":"label",
1751 "default_value":"",
1752 "options":[
1753
1754 ],
1755 "localized":[
1756 "name"
1757 ],
1758 "name":[
1759 {
1760 "language_code":"en_us",
1761 "string":"IP"
1762 },
1763 {
1764 "language_code":"es_es",
1765 "string":"IP"
1766 }
1767 ]
1768 },
1769 {
1770 "column":"Watched_Value1",
1771 "css_classes":"col-sm-2",
1772 "show":true,
1773 "type":"label",
1774 "default_value":"",
1775 "options":[
1776
1777 ],
1778 "localized":[
1779 "name"
1780 ],
1781 "name":[
1782 {
1783 "language_code":"en_us",
1784 "string":"Server"
1785 }
1786 ]
1787 },
1788 {
1789 "column":"Watched_Value2",
1790 "css_classes":"col-sm-2",
1791 "show":true,
1792 "type":"label",
1793 "default_value":"",
1794 "options":[
1795
1796 ],
1797 "localized":[
1798 "name"
1799 ],
1800 "name":[
1801 {
1802 "language_code":"en_us",
1803 "string":"Name"
1804 }
1805 ]
1806 },
1807 {
1808 "column":"DateTimeCreated",
1809 "css_classes":"col-sm-2",
1810 "show":true,
1811 "type":"label",
1812 "default_value":"",
1813 "options":[
1814
1815 ],
1816 "localized":[
1817 "name"
1818 ],
1819 "name":[
1820 {
1821 "language_code":"en_us",
1822 "string":"Created"
1823 },
1824 {
1825 "language_code":"es_es",
1826 "string":"Creado"
1827 }
1828 ]
1829 },
1830 {
1831 "column":"DateTimeChanged",
1832 "css_classes":"col-sm-2",
1833 "show":true,
1834 "type":"label",
1835 "default_value":"",
1836 "options":[
1837
1838 ],
1839 "localized":[
1840 "name"
1841 ],
1842 "name":[
1843 {
1844 "language_code":"en_us",
1845 "string":"Changed"
1846 },
1847 {
1848 "language_code":"es_es",
1849 "string":"Cambiado"
1850 }
1851 ]
1852 },
1853 {
1854 "column":"Status",
1855 "css_classes":"col-sm-1",
1856 "show":true,
1857 "type":"replace",
1858 "default_value":"",
1859 "options":[
1860 {
1861 "equals":"watched-not-changed",
1862 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
1863 },
1864 {
1865 "equals":"watched-changed",
1866 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
1867 },
1868 {
1869 "equals":"new",
1870 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
1871 },
1872 {
1873 "equals":"missing-in-last-scan",
1874 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
1875 }
1876 ],
1877 "localized":[
1878 "name"
1879 ],
1880 "name":[
1881 {
1882 "language_code":"en_us",
1883 "string":"Status"
1884 },
1885 {
1886 "language_code":"es_es",
1887 "string":"Estado"
1888 }
1889 ]
1890 }
1891 ]
1892 },
1893 {
1894 "code_name":"_publisher_email",
1895 "unique_prefix":"SMTP",
1896 "plugin_type":"publisher",
1897 "enabled":true,
1898 "data_source":"script",
1899 "show_ui":true,
1900 "localized":[
1901 "display_name",
1902 "description",
1903 "icon"
1904 ],
1905 "display_name":[
1906 {
1907 "language_code":"en_us",
1908 "string":"Email publisher (SMTP)"
1909 },
1910 {
1911 "language_code":"es_es",
1912 "string":"Habilitar email (SMTP)"
1913 }
1914 ],
1915 "icon":[
1916 {
1917 "language_code":"en_us",
1918 "string":"<i class=\"fa-solid fa-at\"><\/i>"
1919 }
1920 ],
1921 "description":[
1922 {
1923 "language_code":"en_us",
1924 "string":"A plugin to publish a notification via Email (SMTP) gateway."
1925 }
1926 ],
1927 "params":[
1928
1929 ],
1930 "database_column_definitions":[
1931 {
1932 "column":"Index",
1933 "css_classes":"col-sm-2",
1934 "show":false,
1935 "type":"label",
1936 "default_value":"",
1937 "options":[
1938
1939 ],
1940 "localized":[
1941 "name"
1942 ],
1943 "name":[
1944 {
1945 "language_code":"en_us",
1946 "string":"N/A"
1947 },
1948 {
1949 "language_code":"es_es",
1950 "string":"N/A"
1951 }
1952 ]
1953 },
1954 {
1955 "column":"Plugin",
1956 "css_classes":"col-sm-2",
1957 "show":false,
1958 "type":"label",
1959 "default_value":"",
1960 "options":[
1961
1962 ],
1963 "localized":[
1964 "name"
1965 ],
1966 "name":[
1967 {
1968 "language_code":"en_us",
1969 "string":"N/A"
1970 },
1971 {
1972 "language_code":"es_es",
1973 "string":"N/A"
1974 }
1975 ]
1976 },
1977 {
1978 "column":"Object_PrimaryID",
1979 "css_classes":"col-sm-2",
1980 "show":false,
1981 "type":"url",
1982 "default_value":"",
1983 "options":[
1984
1985 ],
1986 "localized":[
1987 "name"
1988 ],
1989 "name":[
1990 {
1991 "language_code":"en_us",
1992 "string":"N/A"
1993 }
1994 ]
1995 },
1996 {
1997 "column":"Object_SecondaryID",
1998 "css_classes":"col-sm-2",
1999 "show":false,
2000 "type":"label",
2001 "default_value":"",
2002 "options":[
2003
2004 ],
2005 "localized":[
2006 "name"
2007 ],
2008 "name":[
2009 {
2010 "language_code":"en_us",
2011 "string":"N/A"
2012 },
2013 {
2014 "language_code":"es_es",
2015 "string":"N/A"
2016 }
2017 ]
2018 },
2019 {
2020 "column":"DateTimeCreated",
2021 "css_classes":"col-sm-2",
2022 "show":true,
2023 "type":"label",
2024 "default_value":"",
2025 "options":[
2026
2027 ],
2028 "localized":[
2029 "name"
2030 ],
2031 "name":[
2032 {
2033 "language_code":"en_us",
2034 "string":"Sent when"
2035 }
2036 ]
2037 },
2038 {
2039 "column":"DateTimeChanged",
2040 "css_classes":"col-sm-2",
2041 "show":false,
2042 "type":"label",
2043 "default_value":"",
2044 "options":[
2045
2046 ],
2047 "localized":[
2048 "name"
2049 ],
2050 "name":[
2051 {
2052 "language_code":"en_us",
2053 "string":"Changed"
2054 },
2055 {
2056 "language_code":"es_es",
2057 "string":"Cambiado"
2058 }
2059 ]
2060 },
2061 {
2062 "column":"Watched_Value1",
2063 "css_classes":"col-sm-2",
2064 "show":true,
2065 "type":"eval",
2066 "default_value":"",
2067 "options":[
2068 {
2069 "type":"eval",
2070 "param":"`<a href='/report.php?guid=${value}'>${value}<\/a>`"
2071 }
2072 ],
2073 "localized":[
2074 "name"
2075 ],
2076 "name":[
2077 {
2078 "language_code":"en_us",
2079 "string":"Notification GUID"
2080 }
2081 ]
2082 },
2083 {
2084 "column":"Watched_Value2",
2085 "css_classes":"col-sm-8",
2086 "show":true,
2087 "type":"textarea_readonly",
2088 "default_value":"",
2089 "options":[
2090
2091 ],
2092 "localized":[
2093 "name"
2094 ],
2095 "name":[
2096 {
2097 "language_code":"en_us",
2098 "string":"Result"
2099 }
2100 ]
2101 },
2102 {
2103 "column":"Watched_Value3",
2104 "css_classes":"col-sm-2",
2105 "show":false,
2106 "type":"label",
2107 "default_value":"",
2108 "options":[
2109
2110 ],
2111 "localized":[
2112 "name"
2113 ],
2114 "name":[
2115 {
2116 "language_code":"en_us",
2117 "string":"N/A"
2118 },
2119 {
2120 "language_code":"es_es",
2121 "string":"N/A"
2122 }
2123 ]
2124 },
2125 {
2126 "column":"Watched_Value4",
2127 "css_classes":"col-sm-2",
2128 "show":false,
2129 "type":"label",
2130 "default_value":"",
2131 "options":[
2132
2133 ],
2134 "localized":[
2135 "name"
2136 ],
2137 "name":[
2138 {
2139 "language_code":"en_us",
2140 "string":"N/A"
2141 },
2142 {
2143 "language_code":"es_es",
2144 "string":"N/A"
2145 }
2146 ]
2147 },
2148 {
2149 "column":"UserData",
2150 "css_classes":"col-sm-2",
2151 "show":false,
2152 "type":"textbox_save",
2153 "default_value":"",
2154 "options":[
2155
2156 ],
2157 "localized":[
2158 "name"
2159 ],
2160 "name":[
2161 {
2162 "language_code":"en_us",
2163 "string":"Comments"
2164 },
2165 {
2166 "language_code":"es_es",
2167 "string":"Comentarios"
2168 }
2169 ]
2170 },
2171 {
2172 "column":"Status",
2173 "css_classes":"col-sm-1",
2174 "show":false,
2175 "type":"replace",
2176 "default_value":"",
2177 "options":[
2178 {
2179 "equals":"watched-not-changed",
2180 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
2181 },
2182 {
2183 "equals":"watched-changed",
2184 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
2185 },
2186 {
2187 "equals":"new",
2188 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
2189 },
2190 {
2191 "equals":"missing-in-last-scan",
2192 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
2193 }
2194 ],
2195 "localized":[
2196 "name"
2197 ],
2198 "name":[
2199 {
2200 "language_code":"en_us",
2201 "string":"Status"
2202 },
2203 {
2204 "language_code":"es_es",
2205 "string":"Estado"
2206 }
2207 ]
2208 },
2209 {
2210 "column":"Extra",
2211 "css_classes":"col-sm-3",
2212 "show":false,
2213 "type":"label",
2214 "default_value":"",
2215 "options":[
2216
2217 ],
2218 "localized":[
2219 "name"
2220 ],
2221 "name":[
2222 {
2223 "language_code":"en_us",
2224 "string":"Extra"
2225 },
2226 {
2227 "language_code":"es_es",
2228 "string":"Extra"
2229 }
2230 ]
2231 }
2232 ],
2233 "settings":[
2234 {
2235 "function":"RUN",
2236 "events":[
2237 "test"
2238 ],
2239 "type":{
2240 "dataType":"string",
2241 "elements":[
2242 {
2243 "elementType":"select",
2244 "elementOptions":[
2245
2246 ],
2247 "transformers":[
2248
2249 ]
2250 }
2251 ]
2252 },
2253 "default_value":"disabled",
2254 "options":[
2255 "disabled",
2256 "on_notification"
2257 ],
2258 "localized":[
2259 "name",
2260 "description"
2261 ],
2262 "name":[
2263 {
2264 "language_code":"en_us",
2265 "string":"When to run"
2266 },
2267 {
2268 "language_code":"es_es",
2269 "string":"Cuando ejecuta"
2270 }
2271 ],
2272 "description":[
2273 {
2274 "language_code":"en_us",
2275 "string":"Enable sending notifications via the Email (SMTP) gateway."
2276 },
2277 {
2278 "language_code":"es_es",
2279 "string":"Si está habilitado, se envía un correo electrónico con una lista de cambios a los que se ha suscrito. Complete también todas las configuraciones restantes relacionadas con la configuración de SMTP a continuación"
2280 }
2281 ],
2282 "value":"disabled"
2283 },
2284 {
2285 "function":"CMD",
2286 "type":{
2287 "dataType":"string",
2288 "elements":[
2289 {
2290 "elementType":"input",
2291 "elementOptions":[
2292 {
2293 "readonly":"true"
2294 }
2295 ],
2296 "transformers":[
2297
2298 ]
2299 }
2300 ]
2301 },
2302 "default_value":"python3 /app/front/plugins/_publisher_email/email_smtp.py",
2303 "options":[
2304
2305 ],
2306 "localized":[
2307 "name",
2308 "description"
2309 ],
2310 "name":[
2311 {
2312 "language_code":"en_us",
2313 "string":"Command"
2314 },
2315 {
2316 "language_code":"es_es",
2317 "string":"Comando"
2318 }
2319 ],
2320 "description":[
2321 {
2322 "language_code":"en_us",
2323 "string":"Command to run"
2324 },
2325 {
2326 "language_code":"es_es",
2327 "string":"Comando a ejecutar"
2328 }
2329 ],
2330 "value":"python3 /app/front/plugins/_publisher_email/email_smtp.py"
2331 },
2332 {
2333 "function":"RUN_TIMEOUT",
2334 "type":{
2335 "dataType":"integer",
2336 "elements":[
2337 {
2338 "elementType":"input",
2339 "elementOptions":[
2340 {
2341 "type":"number"
2342 }
2343 ],
2344 "transformers":[
2345
2346 ]
2347 }
2348 ]
2349 },
2350 "default_value":20,
2351 "options":[
2352
2353 ],
2354 "localized":[
2355 "name",
2356 "description"
2357 ],
2358 "name":[
2359 {
2360 "language_code":"en_us",
2361 "string":"Run timeout"
2362 },
2363 {
2364 "language_code":"es_es",
2365 "string":"Tiempo de espera de ejecución"
2366 },
2367 {
2368 "language_code":"de_de",
2369 "string":"Wartezeit"
2370 }
2371 ],
2372 "description":[
2373 {
2374 "language_code":"en_us",
2375 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
2376 },
2377 {
2378 "language_code":"es_es",
2379 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
2380 }
2381 ],
2382 "value":20
2383 },
2384 {
2385 "function":"SERVER",
2386 "type":{
2387 "dataType":"string",
2388 "elements":[
2389 {
2390 "elementType":"input",
2391 "elementOptions":[
2392
2393 ],
2394 "transformers":[
2395
2396 ]
2397 }
2398 ]
2399 },
2400 "default_value":"",
2401 "options":[
2402
2403 ],
2404 "localized":[
2405 "name",
2406 "description"
2407 ],
2408 "name":[
2409 {
2410 "language_code":"en_us",
2411 "string":"SMTP server URL"
2412 },
2413 {
2414 "language_code":"es_es",
2415 "string":"URL del servidor SMTP"
2416 }
2417 ],
2418 "description":[
2419 {
2420 "language_code":"en_us",
2421 "string":"The SMTP server host URL. For example <code>smtp-relay.sendinblue.com<\/code>. To use Gmail as an SMTP server <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SMTP.md\">follow this guide<\/a>"
2422 },
2423 {
2424 "language_code":"es_es",
2425 "string":"La URL del host del servidor SMTP. Por ejemplo, <code>smtp-relay.sendinblue.com<\/code>. Para utilizar Gmail como servidor SMTP <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SMTP.md\">siga esta guía<\/a >"
2426 }
2427 ],
2428 "value":"smtp.gmail.com"
2429 },
2430 {
2431 "function":"PORT",
2432 "type":{
2433 "dataType":"integer",
2434 "elements":[
2435 {
2436 "elementType":"input",
2437 "elementOptions":[
2438 {
2439 "type":"number"
2440 }
2441 ],
2442 "transformers":[
2443
2444 ]
2445 }
2446 ]
2447 },
2448 "default_value":587,
2449 "options":[
2450
2451 ],
2452 "localized":[
2453 "name",
2454 "description"
2455 ],
2456 "name":[
2457 {
2458 "language_code":"en_us",
2459 "string":"SMTP server PORT"
2460 },
2461 {
2462 "language_code":"es_es",
2463 "string":"Puerto del servidor SMTP"
2464 }
2465 ],
2466 "description":[
2467 {
2468 "language_code":"en_us",
2469 "string":"Port number used for the SMTP connection. Set to <code>0<\/code> if you do not want to use a port when connecting to the SMTP server."
2470 },
2471 {
2472 "language_code":"es_es",
2473 "string":"Número de puerto utilizado para la conexión SMTP. Establézcalo en <code>0<\/code> si no desea utilizar un puerto al conectarse al servidor SMTP."
2474 }
2475 ],
2476 "value":587
2477 },
2478 {
2479 "function":"SKIP_LOGIN",
2480 "type":{
2481 "dataType":"boolean",
2482 "elements":[
2483 {
2484 "elementType":"input",
2485 "elementOptions":[
2486 {
2487 "type":"checkbox"
2488 }
2489 ],
2490 "transformers":[
2491
2492 ]
2493 }
2494 ]
2495 },
2496 "default_value":false,
2497 "options":[
2498
2499 ],
2500 "localized":[
2501 "name",
2502 "description"
2503 ],
2504 "name":[
2505 {
2506 "language_code":"en_us",
2507 "string":"Skip authentication"
2508 },
2509 {
2510 "language_code":"es_es",
2511 "string":"Omitir autenticación"
2512 }
2513 ],
2514 "description":[
2515 {
2516 "language_code":"en_us",
2517 "string":"Do not use authentication when connecting to the SMTP server."
2518 },
2519 {
2520 "language_code":"es_es",
2521 "string":"No utilice la autenticación cuando se conecte al servidor SMTP."
2522 }
2523 ],
2524 "value":false
2525 },
2526 {
2527 "function":"USER",
2528 "type":{
2529 "dataType":"string",
2530 "elements":[
2531 {
2532 "elementType":"input",
2533 "elementOptions":[
2534
2535 ],
2536 "transformers":[
2537
2538 ]
2539 }
2540 ]
2541 },
2542 "default_value":"",
2543 "options":[
2544
2545 ],
2546 "localized":[
2547 "name",
2548 "description"
2549 ],
2550 "name":[
2551 {
2552 "language_code":"en_us",
2553 "string":"SMTP user"
2554 },
2555 {
2556 "language_code":"es_es",
2557 "string":"Nombre de usuario SMTP"
2558 }
2559 ],
2560 "description":[
2561 {
2562 "language_code":"en_us",
2563 "string":"The user name used to login into the SMTP server (sometimes a full email address)."
2564 },
2565 {
2566 "language_code":"es_es",
2567 "string":"El nombre de usuario utilizado para iniciar sesión en el servidor SMTP (a veces, una dirección de correo electrónico completa)."
2568 }
2569 ],
2570 "value":"[email protected]"
2571 },
2572 {
2573 "function":"PASS",
2574 "type":{
2575 "dataType":"string",
2576 "elements":[
2577 {
2578 "elementType":"input",
2579 "elementOptions":[
2580 {
2581 "type":"password"
2582 }
2583 ],
2584 "transformers":[
2585
2586 ]
2587 }
2588 ]
2589 },
2590 "default_value":"",
2591 "options":[
2592
2593 ],
2594 "localized":[
2595 "name",
2596 "description"
2597 ],
2598 "name":[
2599 {
2600 "language_code":"en_us",
2601 "string":"SMTP password"
2602 },
2603 {
2604 "language_code":"es_es",
2605 "string":"Contraseña de SMTP"
2606 }
2607 ],
2608 "description":[
2609 {
2610 "language_code":"en_us",
2611 "string":"The SMTP server password."
2612 },
2613 {
2614 "language_code":"es_es",
2615 "string":"La contraseña del servidor SMTP."
2616 }
2617 ],
2618 "value":"password"
2619 },
2620 {
2621 "function":"SKIP_TLS",
2622 "type":{
2623 "dataType":"boolean",
2624 "elements":[
2625 {
2626 "elementType":"input",
2627 "elementOptions":[
2628 {
2629 "type":"checkbox"
2630 }
2631 ],
2632 "transformers":[
2633
2634 ]
2635 }
2636 ]
2637 },
2638 "default_value":false,
2639 "options":[
2640
2641 ],
2642 "localized":[
2643 "name",
2644 "description"
2645 ],
2646 "name":[
2647 {
2648 "language_code":"en_us",
2649 "string":"Do not use TLS"
2650 },
2651 {
2652 "language_code":"es_es",
2653 "string":"No usar TLS"
2654 }
2655 ],
2656 "description":[
2657 {
2658 "language_code":"en_us",
2659 "string":"Disable TLS when connecting to your SMTP server."
2660 },
2661 {
2662 "language_code":"es_es",
2663 "string":"Deshabilite TLS cuando se conecte a su servidor SMTP."
2664 }
2665 ],
2666 "value":false
2667 },
2668 {
2669 "function":"FORCE_SSL",
2670 "type":{
2671 "dataType":"boolean",
2672 "elements":[
2673 {
2674 "elementType":"input",
2675 "elementOptions":[
2676 {
2677 "type":"checkbox"
2678 }
2679 ],
2680 "transformers":[
2681
2682 ]
2683 }
2684 ]
2685 },
2686 "default_value":false,
2687 "options":[
2688
2689 ],
2690 "localized":[
2691 "name",
2692 "description"
2693 ],
2694 "name":[
2695 {
2696 "language_code":"en_us",
2697 "string":"Force SSL"
2698 },
2699 {
2700 "language_code":"es_es",
2701 "string":"Forzar SSL"
2702 }
2703 ],
2704 "description":[
2705 {
2706 "language_code":"en_us",
2707 "string":"Force SSL when connecting to your SMTP server."
2708 },
2709 {
2710 "language_code":"es_es",
2711 "string":"Forzar SSL al conectarse a su servidor SMTP"
2712 }
2713 ],
2714 "value":false
2715 },
2716 {
2717 "function":"REPORT_TO",
2718 "type":{
2719 "dataType":"string",
2720 "elements":[
2721 {
2722 "elementType":"input",
2723 "elementOptions":[
2724
2725 ],
2726 "transformers":[
2727
2728 ]
2729 }
2730 ]
2731 },
2732 "default_value":"[email protected]",
2733 "options":[
2734
2735 ],
2736 "localized":[
2737 "name",
2738 "description"
2739 ],
2740 "name":[
2741 {
2742 "language_code":"en_us",
2743 "string":"Send email to"
2744 },
2745 {
2746 "language_code":"es_es",
2747 "string":"Enviar el email a"
2748 }
2749 ],
2750 "description":[
2751 {
2752 "language_code":"en_us",
2753 "string":"Email address to which the notification will be send to."
2754 },
2755 {
2756 "language_code":"es_es",
2757 "string":"Dirección de correo electrónico a la que se enviará la notificación."
2758 }
2759 ],
2760 "value":"[email protected]"
2761 },
2762 {
2763 "function":"REPORT_FROM",
2764 "type":{
2765 "dataType":"string",
2766 "elements":[
2767 {
2768 "elementType":"input",
2769 "elementOptions":[
2770
2771 ],
2772 "transformers":[
2773
2774 ]
2775 }
2776 ]
2777 },
2778 "default_value":"NetAlertX <[email protected]>",
2779 "options":[
2780
2781 ],
2782 "localized":[
2783 "name",
2784 "description"
2785 ],
2786 "name":[
2787 {
2788 "language_code":"en_us",
2789 "string":"Email subject"
2790 },
2791 {
2792 "language_code":"es_es",
2793 "string":"Asunto del email"
2794 }
2795 ],
2796 "description":[
2797 {
2798 "language_code":"en_us",
2799 "string":"Notification email subject line. Some SMTP servers need this to be an email."
2800 },
2801 {
2802 "language_code":"es_es",
2803 "string":"Asunto del correo electrónico de notificación."
2804 }
2805 ],
2806 "value":"NetAlertX <[email protected]>"
2807 }
2808 ]
2809 },
2810 {
2811 "code_name":"csv_backup",
2812 "unique_prefix":"CSVBCKP",
2813 "plugin_type":"system",
2814 "enabled":true,
2815 "data_source":"script",
2816 "show_ui":false,
2817 "localized":[
2818 "display_name",
2819 "description",
2820 "icon"
2821 ],
2822 "display_name":[
2823 {
2824 "language_code":"en_us",
2825 "string":"CSV backup"
2826 },
2827 {
2828 "language_code":"es_es",
2829 "string":"Backup CSV"
2830 },
2831 {
2832 "language_code":"de_de",
2833 "string":"CSV-Sicherung"
2834 }
2835 ],
2836 "icon":[
2837 {
2838 "language_code":"en_us",
2839 "string":"<i class=\"fa-solid fa-save\"><\/i>"
2840 }
2841 ],
2842 "description":[
2843 {
2844 "language_code":"en_us",
2845 "string":"A plugin to auto-generate devices.csv backups."
2846 },
2847 {
2848 "language_code":"es_es",
2849 "string":"Un Plugin para generar automáticamente copias de seguridad de devices.csv."
2850 },
2851 {
2852 "language_code":"de_de",
2853 "string":"Ein Plugin zum automatischen Generieren von devices.csv-Backups."
2854 }
2855 ],
2856 "params":[
2857 {
2858 "name":"overwrite",
2859 "type":"setting",
2860 "value":"CSVBCKP_overwrite"
2861 },
2862 {
2863 "name":"location",
2864 "type":"setting",
2865 "value":"CSVBCKP_location"
2866 }
2867 ],
2868 "settings":[
2869 {
2870 "function":"RUN",
2871 "events":[
2872 "run"
2873 ],
2874 "type":{
2875 "dataType":"string",
2876 "elements":[
2877 {
2878 "elementType":"select",
2879 "elementOptions":[
2880
2881 ],
2882 "transformers":[
2883
2884 ]
2885 }
2886 ]
2887 },
2888 "default_value":"schedule",
2889 "options":[
2890 "disabled",
2891 "once",
2892 "schedule",
2893 "always_after_scan",
2894 "on_new_device"
2895 ],
2896 "localized":[
2897 "name",
2898 "description"
2899 ],
2900 "name":[
2901 {
2902 "language_code":"en_us",
2903 "string":"When to run"
2904 },
2905 {
2906 "language_code":"es_es",
2907 "string":"Cuándo ejecutar"
2908 },
2909 {
2910 "language_code":"de_de",
2911 "string":"Wann laufen"
2912 }
2913 ],
2914 "description":[
2915 {
2916 "language_code":"en_us",
2917 "string":"When the backup should be created. A daily or weekly <code>SCHEDULE<\/code> is a good option."
2918 },
2919 {
2920 "language_code":"es_es",
2921 "string":"Cuándo se debe crear la copia de seguridad. Un <code>SCHEDULE<\/code> diario o semanal es una buena opción."
2922 },
2923 {
2924 "language_code":"de_de",
2925 "string":"Wann das Backup erstellt werden soll. Ein täglicher oder wöchentlicher <code>SCHEDULE<\/code> ist eine gute Option."
2926 }
2927 ],
2928 "value":"schedule"
2929 },
2930 {
2931 "function":"CMD",
2932 "type":{
2933 "dataType":"string",
2934 "elements":[
2935 {
2936 "elementType":"input",
2937 "elementOptions":[
2938 {
2939 "readonly":"true"
2940 }
2941 ],
2942 "transformers":[
2943
2944 ]
2945 }
2946 ]
2947 },
2948 "default_value":"python3 /app/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}",
2949 "options":[
2950
2951 ],
2952 "localized":[
2953 "name",
2954 "description"
2955 ],
2956 "name":[
2957 {
2958 "language_code":"en_us",
2959 "string":"Command"
2960 },
2961 {
2962 "language_code":"es_es",
2963 "string":"Comando"
2964 },
2965 {
2966 "language_code":"de_de",
2967 "string":"Befehl"
2968 }
2969 ],
2970 "description":[
2971 {
2972 "language_code":"en_us",
2973 "string":"Command to run. This can not be changed"
2974 },
2975 {
2976 "language_code":"es_es",
2977 "string":"Comando a ejecutar. Esto no se puede cambiar"
2978 },
2979 {
2980 "language_code":"de_de",
2981 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
2982 }
2983 ],
2984 "value":"python3 /app/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}"
2985 },
2986 {
2987 "function":"RUN_SCHD",
2988 "type":{
2989 "dataType":"string",
2990 "elements":[
2991 {
2992 "elementType":"input",
2993 "elementOptions":[
2994
2995 ],
2996 "transformers":[
2997
2998 ]
2999 }
3000 ]
3001 },
3002 "default_value":"0 2 * * 3",
3003 "options":[
3004
3005 ],
3006 "localized":[
3007 "name",
3008 "description"
3009 ],
3010 "name":[
3011 {
3012 "language_code":"en_us",
3013 "string":"Schedule"
3014 },
3015 {
3016 "language_code":"es_es",
3017 "string":"Schedule"
3018 },
3019 {
3020 "language_code":"de_de",
3021 "string":"Schedule"
3022 }
3023 ],
3024 "description":[
3025 {
3026 "language_code":"en_us",
3027 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#CSVBCKP_RUN\"><code>CSVBCKP_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
3028 },
3029 {
3030 "language_code":"es_es",
3031 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#CSVBCKP_RUN\"><code>CSVBCKP_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
3032 },
3033 {
3034 "language_code":"de_de",
3035 "string":"Nur aktiviert, wenn Sie <code>schedule<\/code> in der <a href=\"#CSVBCKP_RUN\"><code>CSVBCKP_RUN<\/code>-Einstellung<\/a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Wenn Sie beispielsweise <code>0 4 * * *<\/code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ ausgeführt. Code> den Sie oben festgelegt haben<\/a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
3036 }
3037 ],
3038 "value":"0 2 * * 3"
3039 },
3040 {
3041 "function":"RUN_TIMEOUT",
3042 "type":{
3043 "dataType":"integer",
3044 "elements":[
3045 {
3046 "elementType":"input",
3047 "elementOptions":[
3048 {
3049 "type":"number"
3050 }
3051 ],
3052 "transformers":[
3053
3054 ]
3055 }
3056 ]
3057 },
3058 "default_value":30,
3059 "options":[
3060
3061 ],
3062 "localized":[
3063 "name",
3064 "description"
3065 ],
3066 "name":[
3067 {
3068 "language_code":"en_us",
3069 "string":"Run timeout"
3070 },
3071 {
3072 "language_code":"es_es",
3073 "string":"Tiempo límite de ejecución"
3074 },
3075 {
3076 "language_code":"de_de",
3077 "string":"Zeitüberschreitung"
3078 }
3079 ],
3080 "description":[
3081 {
3082 "language_code":"en_us",
3083 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
3084 },
3085 {
3086 "language_code":"es_es",
3087 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
3088 },
3089 {
3090 "language_code":"de_de",
3091 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
3092 }
3093 ],
3094 "value":30
3095 },
3096 {
3097 "function":"overwrite",
3098 "type":{
3099 "dataType":"boolean",
3100 "elements":[
3101 {
3102 "elementType":"input",
3103 "elementOptions":[
3104 {
3105 "type":"checkbox"
3106 }
3107 ],
3108 "transformers":[
3109
3110 ]
3111 }
3112 ]
3113 },
3114 "default_value":false,
3115 "options":[
3116
3117 ],
3118 "localized":[
3119 "name",
3120 "description"
3121 ],
3122 "name":[
3123 {
3124 "language_code":"en_us",
3125 "string":"Overwrite file"
3126 },
3127 {
3128 "language_code":"es_es",
3129 "string":"Sobrescribir archivo"
3130 },
3131 {
3132 "language_code":"de_de",
3133 "string":"Datei überschreiben"
3134 }
3135 ],
3136 "description":[
3137 {
3138 "language_code":"en_us",
3139 "string":"If the <code>devices.csv<\/code> file should be always overwritten. If disabled, the date and time is added to the name."
3140 },
3141 {
3142 "language_code":"es_es",
3143 "string":"Si el archivo <code>devices.csv<\/code> siempre debe sobrescribirse. Si está deshabilitado, la fecha y la hora se agregan al nombre."
3144 },
3145 {
3146 "language_code":"de_de",
3147 "string":"Wenn die Datei <code>devices.csv<\/code> immer überschrieben werden soll. Wenn deaktiviert, werden dem Namen Datum und Uhrzeit hinzugefügt."
3148 }
3149 ],
3150 "value":false
3151 },
3152 {
3153 "function":"location",
3154 "type":{
3155 "dataType":"string",
3156 "elements":[
3157 {
3158 "elementType":"input",
3159 "elementOptions":[
3160
3161 ],
3162 "transformers":[
3163
3164 ]
3165 }
3166 ]
3167 },
3168 "default_value":"/app/config",
3169 "options":[
3170
3171 ],
3172 "localized":[
3173 "name",
3174 "description"
3175 ],
3176 "name":[
3177 {
3178 "language_code":"en_us",
3179 "string":"File location"
3180 },
3181 {
3182 "language_code":"es_es",
3183 "string":"Ubicación del archivo"
3184 },
3185 {
3186 "language_code":"de_de",
3187 "string":"Speicherort"
3188 }
3189 ],
3190 "description":[
3191 {
3192 "language_code":"en_us",
3193 "string":"Where the <code>devices.csv<\/code> file should be saved. For example <code>/app/config<\/code>."
3194 },
3195 {
3196 "language_code":"es_es",
3197 "string":"Donde se debe guardar el archivo <code>devices.csv<\/code>. Por ejemplo <code>/app/config<\/code>."
3198 },
3199 {
3200 "language_code":"de_de",
3201 "string":"Wo die Datei <code>devices.csv<\/code> gespeichert werden soll. Zum Beispiel <code>/app/config<\/code>."
3202 }
3203 ],
3204 "value":"/app/config"
3205 }
3206 ],
3207 "database_column_definitions":[
3208
3209 ]
3210 },
3211 {
3212 "code_name":"db_cleanup",
3213 "unique_prefix":"DBCLNP",
3214 "plugin_type":"system",
3215 "enabled":true,
3216 "data_source":"script",
3217 "show_ui":false,
3218 "localized":[
3219 "display_name",
3220 "description",
3221 "icon"
3222 ],
3223 "display_name":[
3224 {
3225 "language_code":"en_us",
3226 "string":"DB cleanup"
3227 }
3228 ],
3229 "icon":[
3230 {
3231 "language_code":"en_us",
3232 "string":"<i class=\"fa-solid fa-broom\"><\/i>"
3233 }
3234 ],
3235 "description":[
3236 {
3237 "language_code":"en_us",
3238 "string":"A plugin to schedule database cleanup & upkeep tasks."
3239 }
3240 ],
3241 "params":[
3242 {
3243 "name":"pluginskeephistory",
3244 "type":"setting",
3245 "value":"PLUGINS_KEEP_HIST"
3246 },
3247 {
3248 "name":"daystokeepevents",
3249 "type":"setting",
3250 "value":"DAYS_TO_KEEP_EVENTS"
3251 },
3252 {
3253 "name":"hourstokeepnewdevice",
3254 "type":"setting",
3255 "value":"HRS_TO_KEEP_NEWDEV"
3256 }
3257 ],
3258 "settings":[
3259 {
3260 "function":"RUN",
3261 "events":[
3262 "run"
3263 ],
3264 "type":{
3265 "dataType":"string",
3266 "elements":[
3267 {
3268 "elementType":"select",
3269 "elementOptions":[
3270
3271 ],
3272 "transformers":[
3273
3274 ]
3275 }
3276 ]
3277 },
3278 "default_value":"schedule",
3279 "options":[
3280 "disabled",
3281 "once",
3282 "schedule",
3283 "always_after_scan"
3284 ],
3285 "localized":[
3286 "name",
3287 "description"
3288 ],
3289 "name":[
3290 {
3291 "language_code":"en_us",
3292 "string":"When to run"
3293 },
3294 {
3295 "language_code":"es_es",
3296 "string":"Cuándo ejecutar"
3297 },
3298 {
3299 "language_code":"de_de",
3300 "string":"Wann laufen"
3301 }
3302 ],
3303 "description":[
3304 {
3305 "language_code":"en_us",
3306 "string":"When the cleanup should be performed. An hourly or daily <code>SCHEDULE<\/code> is a good option."
3307 }
3308 ],
3309 "value":"schedule"
3310 },
3311 {
3312 "function":"CMD",
3313 "type":{
3314 "dataType":"string",
3315 "elements":[
3316 {
3317 "elementType":"input",
3318 "elementOptions":[
3319 {
3320 "readonly":"true"
3321 }
3322 ],
3323 "transformers":[
3324
3325 ]
3326 }
3327 ]
3328 },
3329 "default_value":"python3 /app/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}",
3330 "options":[
3331
3332 ],
3333 "localized":[
3334 "name",
3335 "description"
3336 ],
3337 "name":[
3338 {
3339 "language_code":"en_us",
3340 "string":"Command"
3341 },
3342 {
3343 "language_code":"es_es",
3344 "string":"Comando"
3345 },
3346 {
3347 "language_code":"de_de",
3348 "string":"Befehl"
3349 }
3350 ],
3351 "description":[
3352 {
3353 "language_code":"en_us",
3354 "string":"Command to run. This can not be changed"
3355 },
3356 {
3357 "language_code":"es_es",
3358 "string":"Comando a ejecutar. Esto no se puede cambiar"
3359 },
3360 {
3361 "language_code":"de_de",
3362 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
3363 }
3364 ],
3365 "value":"python3 /app/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}"
3366 },
3367 {
3368 "function":"RUN_SCHD",
3369 "type":{
3370 "dataType":"string",
3371 "elements":[
3372 {
3373 "elementType":"input",
3374 "elementOptions":[
3375
3376 ],
3377 "transformers":[
3378
3379 ]
3380 }
3381 ]
3382 },
3383 "default_value":"*/30 * * * *",
3384 "options":[
3385
3386 ],
3387 "localized":[
3388 "name",
3389 "description"
3390 ],
3391 "name":[
3392 {
3393 "language_code":"en_us",
3394 "string":"Schedule"
3395 },
3396 {
3397 "language_code":"es_es",
3398 "string":"Schedule"
3399 },
3400 {
3401 "language_code":"de_de",
3402 "string":"Schedule"
3403 }
3404 ],
3405 "description":[
3406 {
3407 "language_code":"en_us",
3408 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#DBCLNP_RUN\"><code>DBCLNP_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
3409 },
3410 {
3411 "language_code":"es_es",
3412 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#DBCLNP_RUN\"><code>DBCLNP_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
3413 },
3414 {
3415 "language_code":"de_de",
3416 "string":"Nur aktiviert, wenn Sie <code>schedule<\/code> in der <a href=\"#DBCLNP_RUN\"><code>DBCLNP_RUN<\/code>-Einstellung<\/a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Wenn Sie beispielsweise <code>0 4 * * *<\/code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ ausgeführt. Code> den Sie oben festgelegt haben<\/a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
3417 }
3418 ],
3419 "value":"*/30 * * * *"
3420 },
3421 {
3422 "function":"RUN_TIMEOUT",
3423 "type":{
3424 "dataType":"integer",
3425 "elements":[
3426 {
3427 "elementType":"input",
3428 "elementOptions":[
3429 {
3430 "type":"number"
3431 }
3432 ],
3433 "transformers":[
3434
3435 ]
3436 }
3437 ]
3438 },
3439 "default_value":30,
3440 "options":[
3441
3442 ],
3443 "localized":[
3444 "name",
3445 "description"
3446 ],
3447 "name":[
3448 {
3449 "language_code":"en_us",
3450 "string":"Run timeout"
3451 },
3452 {
3453 "language_code":"es_es",
3454 "string":"Tiempo límite de ejecución"
3455 },
3456 {
3457 "language_code":"de_de",
3458 "string":"Zeitüberschreitung"
3459 }
3460 ],
3461 "description":[
3462 {
3463 "language_code":"en_us",
3464 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
3465 },
3466 {
3467 "language_code":"es_es",
3468 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
3469 },
3470 {
3471 "language_code":"de_de",
3472 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
3473 }
3474 ],
3475 "value":30
3476 },
3477 {
3478 "function":"NOTIFI_HIST",
3479 "type":{
3480 "dataType":"integer",
3481 "elements":[
3482 {
3483 "elementType":"input",
3484 "elementOptions":[
3485 {
3486 "type":"number"
3487 }
3488 ],
3489 "transformers":[
3490
3491 ]
3492 }
3493 ]
3494 },
3495 "default_value":100,
3496 "options":[
3497
3498 ],
3499 "localized":[
3500 "name",
3501 "description"
3502 ],
3503 "name":[
3504 {
3505 "language_code":"en_us",
3506 "string":"Notifications History"
3507 }
3508 ],
3509 "description":[
3510 {
3511 "language_code":"en_us",
3512 "string":"How many historical entries of Notifications should be kept. This influences how many entries are also available in the Report section in the UI"
3513 }
3514 ],
3515 "value":100
3516 }
3517 ],
3518 "database_column_definitions":[
3519
3520 ]
3521 },
3522 {
3523 "code_name":"maintenance",
3524 "unique_prefix":"MAINT",
3525 "plugin_type":"system",
3526 "enabled":true,
3527 "data_source":"script",
3528 "show_ui":false,
3529 "localized":[
3530 "display_name",
3531 "description",
3532 "icon"
3533 ],
3534 "display_name":[
3535 {
3536 "language_code":"en_us",
3537 "string":"Maintenance"
3538 }
3539 ],
3540 "icon":[
3541 {
3542 "language_code":"en_us",
3543 "string":"<i class=\"fa-solid fa-wrench\"><\/i>"
3544 }
3545 ],
3546 "description":[
3547 {
3548 "language_code":"en_us",
3549 "string":"A plugin for maintenance tasks."
3550 }
3551 ],
3552 "params":[
3553
3554 ],
3555 "settings":[
3556 {
3557 "function":"RUN",
3558 "events":[
3559 "run"
3560 ],
3561 "type":{
3562 "dataType":"string",
3563 "elements":[
3564 {
3565 "elementType":"select",
3566 "elementOptions":[
3567
3568 ],
3569 "transformers":[
3570
3571 ]
3572 }
3573 ]
3574 },
3575 "default_value":"schedule",
3576 "options":[
3577 "disabled",
3578 "once",
3579 "schedule",
3580 "always_after_scan",
3581 "on_new_device"
3582 ],
3583 "localized":[
3584 "name",
3585 "description"
3586 ],
3587 "name":[
3588 {
3589 "language_code":"en_us",
3590 "string":"When to run"
3591 },
3592 {
3593 "language_code":"es_es",
3594 "string":"Cuándo ejecutar"
3595 },
3596 {
3597 "language_code":"de_de",
3598 "string":"Wann laufen"
3599 }
3600 ],
3601 "description":[
3602 {
3603 "language_code":"en_us",
3604 "string":"When the maintenance tasks should run. A daily or weekly <code>SCHEDULE<\/code> is a good option."
3605 }
3606 ],
3607 "value":"schedule"
3608 },
3609 {
3610 "function":"CMD",
3611 "type":{
3612 "dataType":"string",
3613 "elements":[
3614 {
3615 "elementType":"input",
3616 "elementOptions":[
3617 {
3618 "readonly":"true"
3619 }
3620 ],
3621 "transformers":[
3622
3623 ]
3624 }
3625 ]
3626 },
3627 "default_value":"python3 /app/front/plugins/maintenance/maintenance.py",
3628 "options":[
3629
3630 ],
3631 "localized":[
3632 "name",
3633 "description"
3634 ],
3635 "name":[
3636 {
3637 "language_code":"en_us",
3638 "string":"Command"
3639 },
3640 {
3641 "language_code":"es_es",
3642 "string":"Comando"
3643 },
3644 {
3645 "language_code":"de_de",
3646 "string":"Befehl"
3647 }
3648 ],
3649 "description":[
3650 {
3651 "language_code":"en_us",
3652 "string":"Command to run. This can not be changed"
3653 },
3654 {
3655 "language_code":"es_es",
3656 "string":"Comando a ejecutar. Esto no se puede cambiar"
3657 },
3658 {
3659 "language_code":"de_de",
3660 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
3661 }
3662 ],
3663 "value":"python3 /app/front/plugins/maintenance/maintenance.py"
3664 },
3665 {
3666 "function":"RUN_SCHD",
3667 "type":{
3668 "dataType":"string",
3669 "elements":[
3670 {
3671 "elementType":"input",
3672 "elementOptions":[
3673
3674 ],
3675 "transformers":[
3676
3677 ]
3678 }
3679 ]
3680 },
3681 "default_value":"0 2 * * *",
3682 "options":[
3683
3684 ],
3685 "localized":[
3686 "name",
3687 "description"
3688 ],
3689 "name":[
3690 {
3691 "language_code":"en_us",
3692 "string":"Schedule"
3693 },
3694 {
3695 "language_code":"es_es",
3696 "string":"Schedule"
3697 },
3698 {
3699 "language_code":"de_de",
3700 "string":"Schedule"
3701 }
3702 ],
3703 "description":[
3704 {
3705 "language_code":"en_us",
3706 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#MAINT_RUN\"><code>MAINT_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
3707 },
3708 {
3709 "language_code":"es_es",
3710 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#MAINT_RUN\"><code>MAINT_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
3711 },
3712 {
3713 "language_code":"de_de",
3714 "string":"Nur aktiviert, wenn Sie <code>schedule<\/code> in der <a href=\"#CSVBCKP_RUN\"><code>CSVBCKP_RUN<\/code>-Einstellung<\/a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Wenn Sie beispielsweise <code>0 4 * * *<\/code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ ausgeführt. Code> den Sie oben festgelegt haben<\/a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
3715 }
3716 ],
3717 "value":"0 2 * * *"
3718 },
3719 {
3720 "function":"RUN_TIMEOUT",
3721 "type":{
3722 "dataType":"integer",
3723 "elements":[
3724 {
3725 "elementType":"input",
3726 "elementOptions":[
3727 {
3728 "type":"number"
3729 }
3730 ],
3731 "transformers":[
3732
3733 ]
3734 }
3735 ]
3736 },
3737 "default_value":30,
3738 "options":[
3739
3740 ],
3741 "localized":[
3742 "name",
3743 "description"
3744 ],
3745 "name":[
3746 {
3747 "language_code":"en_us",
3748 "string":"Run timeout"
3749 },
3750 {
3751 "language_code":"es_es",
3752 "string":"Tiempo límite de ejecución"
3753 },
3754 {
3755 "language_code":"de_de",
3756 "string":"Zeitüberschreitung"
3757 }
3758 ],
3759 "description":[
3760 {
3761 "language_code":"en_us",
3762 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
3763 },
3764 {
3765 "language_code":"es_es",
3766 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
3767 },
3768 {
3769 "language_code":"de_de",
3770 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
3771 }
3772 ],
3773 "value":30
3774 },
3775 {
3776 "function":"LOG_LENGTH",
3777 "type":{
3778 "dataType":"integer",
3779 "elements":[
3780 {
3781 "elementType":"input",
3782 "elementOptions":[
3783 {
3784 "type":"number"
3785 }
3786 ],
3787 "transformers":[
3788
3789 ]
3790 }
3791 ]
3792 },
3793 "default_value":250000,
3794 "options":[
3795
3796 ],
3797 "localized":[
3798 "name",
3799 "description"
3800 ],
3801 "name":[
3802 {
3803 "language_code":"en_us",
3804 "string":"Log length"
3805 }
3806 ],
3807 "description":[
3808 {
3809 "language_code":"en_us",
3810 "string":"How many last <code>app.log<\/code> lines to keep. If <code>LOG_LEVEL<\/code> is set to <code>debug<\/code> the app generates about 10000 lines per hour, so when debugging an issue the recommended setting should cover the bug occurence timeframe. For example for a bug with a 3 day periodical appearence the value <code>1000000<\/code> should be sufficient. Setting this value to <code>1000000<\/code> generates approximatelly a 50MB <code>app.log<\/code> file. Set to <code>0<\/code> to disable log purging."
3811 }
3812 ],
3813 "value":250000
3814 }
3815 ],
3816 "database_column_definitions":[
3817
3818 ]
3819 },
3820 {
3821 "code_name":"newdev_template",
3822 "template_type":"database-entry",
3823 "unique_prefix":"NEWDEV",
3824 "plugin_type":"system",
3825 "enabled":true,
3826 "data_source":"template",
3827 "show_ui":false,
3828 "localized":[
3829 "display_name",
3830 "description",
3831 "icon"
3832 ],
3833 "display_name":[
3834 {
3835 "language_code":"en_us",
3836 "string":"New Devices"
3837 }
3838 ],
3839 "description":[
3840 {
3841 "language_code":"en_us",
3842 "string":"The template used for new devices."
3843 }
3844 ],
3845 "icon":[
3846 {
3847 "language_code":"en_us",
3848 "string":"<i class=\"fa fa-plus\"><\/i>"
3849 }
3850 ],
3851 "settings":[
3852 {
3853 "function":"ignored_MACs",
3854 "type":{
3855 "dataType":"array",
3856 "elements":[
3857 {
3858 "elementType":"input",
3859 "elementOptions":[
3860 {
3861 "placeholder":"Enter value"
3862 },
3863 {
3864 "suffix":"_in"
3865 },
3866 {
3867 "cssClasses":"col-sm-10"
3868 },
3869 {
3870 "prefillValue":null
3871 }
3872 ],
3873 "transformers":[
3874
3875 ]
3876 },
3877 {
3878 "elementType":"button",
3879 "elementOptions":[
3880 {
3881 "sourceSuffixes":[
3882 "_in"
3883 ]
3884 },
3885 {
3886 "separator":""
3887 },
3888 {
3889 "cssClasses":"col-xs-12"
3890 },
3891 {
3892 "onClick":"addList(this, false)"
3893 },
3894 {
3895 "getStringKey":"Gen_Add"
3896 }
3897 ],
3898 "transformers":[
3899
3900 ]
3901 },
3902 {
3903 "elementType":"button",
3904 "elementOptions":[
3905 {
3906 "sourceSuffixes":[
3907
3908 ]
3909 },
3910 {
3911 "separator":""
3912 },
3913 {
3914 "cssClasses":"col-xs-6"
3915 },
3916 {
3917 "onClick":"removeAllOptions(this)"
3918 },
3919 {
3920 "getStringKey":"Gen_Remove_All"
3921 }
3922 ],
3923 "transformers":[
3924
3925 ]
3926 },
3927 {
3928 "elementType":"button",
3929 "elementOptions":[
3930 {
3931 "sourceSuffixes":[
3932
3933 ]
3934 },
3935 {
3936 "separator":""
3937 },
3938 {
3939 "cssClasses":"col-xs-6"
3940 },
3941 {
3942 "onClick":"removeFromList(this)"
3943 },
3944 {
3945 "getStringKey":"Gen_Remove_Last"
3946 }
3947 ],
3948 "transformers":[
3949
3950 ]
3951 },
3952 {
3953 "elementType":"select",
3954 "elementOptions":[
3955 {
3956 "multiple":"true"
3957 },
3958 {
3959 "readonly":"true"
3960 },
3961 {
3962 "editable":"true"
3963 }
3964 ],
3965 "transformers":[
3966
3967 ]
3968 }
3969 ]
3970 },
3971 "default_value":[
3972
3973 ],
3974 "options":[
3975
3976 ],
3977 "localized":[
3978 "name",
3979 "description"
3980 ],
3981 "name":[
3982 {
3983 "language_code":"en_us",
3984 "string":"Ignored MACs"
3985 }
3986 ],
3987 "description":[
3988 {
3989 "language_code":"en_us",
3990 "string":"List of MACs to ignore. Use <code>%<\/code> as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications. <br/><br/>For example <code>02:42:ac:%<\/code> to filter out docker containers."
3991 }
3992 ],
3993 "value":[
3994
3995 ]
3996 },
3997 {
3998 "function":"ignored_IPs",
3999 "type":{
4000 "dataType":"array",
4001 "elements":[
4002 {
4003 "elementType":"input",
4004 "elementOptions":[
4005 {
4006 "placeholder":"Enter value"
4007 },
4008 {
4009 "suffix":"_in"
4010 },
4011 {
4012 "cssClasses":"col-sm-10"
4013 },
4014 {
4015 "prefillValue":null
4016 }
4017 ],
4018 "transformers":[
4019
4020 ]
4021 },
4022 {
4023 "elementType":"button",
4024 "elementOptions":[
4025 {
4026 "sourceSuffixes":[
4027 "_in"
4028 ]
4029 },
4030 {
4031 "separator":""
4032 },
4033 {
4034 "cssClasses":"col-xs-12"
4035 },
4036 {
4037 "onClick":"addList(this, false)"
4038 },
4039 {
4040 "getStringKey":"Gen_Add"
4041 }
4042 ],
4043 "transformers":[
4044
4045 ]
4046 },
4047 {
4048 "elementType":"button",
4049 "elementOptions":[
4050 {
4051 "sourceSuffixes":[
4052
4053 ]
4054 },
4055 {
4056 "separator":""
4057 },
4058 {
4059 "cssClasses":"col-xs-6"
4060 },
4061 {
4062 "onClick":"removeAllOptions(this)"
4063 },
4064 {
4065 "getStringKey":"Gen_Remove_All"
4066 }
4067 ],
4068 "transformers":[
4069
4070 ]
4071 },
4072 {
4073 "elementType":"button",
4074 "elementOptions":[
4075 {
4076 "sourceSuffixes":[
4077
4078 ]
4079 },
4080 {
4081 "separator":""
4082 },
4083 {
4084 "cssClasses":"col-xs-6"
4085 },
4086 {
4087 "onClick":"removeFromList(this)"
4088 },
4089 {
4090 "getStringKey":"Gen_Remove_Last"
4091 }
4092 ],
4093 "transformers":[
4094
4095 ]
4096 },
4097 {
4098 "elementType":"select",
4099 "elementOptions":[
4100 {
4101 "multiple":"true"
4102 },
4103 {
4104 "readonly":"true"
4105 },
4106 {
4107 "editable":"true"
4108 }
4109 ],
4110 "transformers":[
4111
4112 ]
4113 }
4114 ]
4115 },
4116 "default_value":[
4117
4118 ],
4119 "options":[
4120
4121 ],
4122 "localized":[
4123 "name",
4124 "description"
4125 ],
4126 "name":[
4127 {
4128 "language_code":"en_us",
4129 "string":"Ignored IPs"
4130 }
4131 ],
4132 "description":[
4133 {
4134 "language_code":"en_us",
4135 "string":"List of IPs to ignore. Use <code>%<\/code> as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications. <br/><br/>For example <code>192.168.3.%<\/code> to filter out an IP range."
4136 }
4137 ],
4138 "value":[
4139
4140 ]
4141 },
4142 {
4143 "function":"NAME_CLEANUP_REGEX",
4144 "type":{
4145 "dataType":"array",
4146 "elements":[
4147 {
4148 "elementType":"input",
4149 "elementOptions":[
4150 {
4151 "placeholder":"Enter value"
4152 },
4153 {
4154 "suffix":"_in"
4155 },
4156 {
4157 "cssClasses":"col-sm-10"
4158 },
4159 {
4160 "prefillValue":null
4161 }
4162 ],
4163 "transformers":[
4164
4165 ]
4166 },
4167 {
4168 "elementType":"button",
4169 "elementOptions":[
4170 {
4171 "sourceSuffixes":[
4172
4173 ]
4174 },
4175 {
4176 "separator":""
4177 },
4178 {
4179 "cssClasses":"col-sm-3"
4180 },
4181 {
4182 "onClick":"removeAllOptions(this)"
4183 },
4184 {
4185 "getStringKey":"Gen_Remove_All"
4186 }
4187 ],
4188 "transformers":[
4189
4190 ]
4191 },
4192 {
4193 "elementType":"button",
4194 "elementOptions":[
4195 {
4196 "sourceSuffixes":[
4197
4198 ]
4199 },
4200 {
4201 "separator":""
4202 },
4203 {
4204 "cssClasses":"col-sm-3"
4205 },
4206 {
4207 "onClick":"removeFromList(this)"
4208 },
4209 {
4210 "getStringKey":"Gen_Remove_Last"
4211 }
4212 ],
4213 "transformers":[
4214
4215 ]
4216 },
4217 {
4218 "elementType":"button",
4219 "elementOptions":[
4220 {
4221 "sourceSuffixes":[
4222 "_in"
4223 ]
4224 },
4225 {
4226 "separator":""
4227 },
4228 {
4229 "cssClasses":"col-sm-2"
4230 },
4231 {
4232 "onClick":"addList(this, false)"
4233 },
4234 {
4235 "getStringKey":"Gen_Add"
4236 }
4237 ],
4238 "transformers":[
4239
4240 ]
4241 },
4242 {
4243 "elementType":"select",
4244 "elementOptions":[
4245 {
4246 "multiple":"true"
4247 },
4248 {
4249 "readonly":"true"
4250 },
4251 {
4252 "editable":"true"
4253 }
4254 ],
4255 "transformers":[
4256 "base64"
4257 ]
4258 }
4259 ]
4260 },
4261 "default_value":[
4262 "XC5fYWlycGxheQ==",
4263 "XC5fdGNw",
4264 "XC5sb2NhbGRvbWFpbg==",
4265 "XC5sb2NhbA==",
4266 "XC5fZXNwaG9tZWxpYg==",
4267 "XC5fZ29vZ2xlY2FzdA==",
4268 "XC5sYW4=",
4269 "XC5ob21l",
4270 "LVthLWZBLUYwLTldezMyfQ==",
4271 "Iy4q"
4272 ],
4273 "options":[
4274
4275 ],
4276 "localized":[
4277 "name",
4278 "description"
4279 ],
4280 "name":[
4281 {
4282 "language_code":"en_us",
4283 "string":"Name Cleanup REGEX"
4284 }
4285 ],
4286 "description":[
4287 {
4288 "language_code":"en_us",
4289 "string":"All the newly discovered device names are clened up by applying the following REGEX expression in this order. All the below are replaced by a blank string."
4290 }
4291 ],
4292 "value":[
4293 "XC5fYWlycGxheQ==",
4294 "XC5fdGNw",
4295 "XC5sb2NhbGRvbWFpbg==",
4296 "XC5sb2NhbA==",
4297 "XC5fZXNwaG9tZWxpYg==",
4298 "XC5fZ29vZ2xlY2FzdA==",
4299 "XC5sYW4=",
4300 "XC5ob21l",
4301 "LVthLWZBLUYwLTldezMyfQ==",
4302 "Iy4q"
4303 ]
4304 },
4305 {
4306 "function":"dev_MAC",
4307 "type":{
4308 "dataType":"string",
4309 "elements":[
4310 {
4311 "elementType":"input",
4312 "elementOptions":[
4313 {
4314 "readonly":"true"
4315 }
4316 ],
4317 "transformers":[
4318
4319 ]
4320 }
4321 ]
4322 },
4323 "maxLength":50,
4324 "default_value":"",
4325 "options":[
4326
4327 ],
4328 "localized":[
4329 "name",
4330 "description"
4331 ],
4332 "name":[
4333 {
4334 "language_code":"en_us",
4335 "string":"Device MAC"
4336 }
4337 ],
4338 "description":[
4339 {
4340 "language_code":"en_us",
4341 "string":"The MAC address of the device. Uneditable - Autodetected."
4342 }
4343 ],
4344 "value":""
4345 },
4346 {
4347 "function":"dev_Name",
4348 "type":{
4349 "dataType":"string",
4350 "elements":[
4351 {
4352 "elementType":"input",
4353 "elementOptions":[
4354 {
4355 "readonly":"true"
4356 }
4357 ],
4358 "transformers":[
4359
4360 ]
4361 }
4362 ]
4363 },
4364 "maxLength":50,
4365 "default_value":"(unknown)",
4366 "options":[
4367
4368 ],
4369 "localized":[
4370 "name",
4371 "description"
4372 ],
4373 "name":[
4374 {
4375 "language_code":"en_us",
4376 "string":"Device Name"
4377 }
4378 ],
4379 "description":[
4380 {
4381 "language_code":"en_us",
4382 "string":"The name of the device. Uneditable as internal functionality is dependent on specific new device names."
4383 }
4384 ],
4385 "value":"(unknown)"
4386 },
4387 {
4388 "function":"dev_Owner",
4389 "type":{
4390 "dataType":"string",
4391 "elements":[
4392 {
4393 "elementType":"select",
4394 "elementOptions":[
4395
4396 ],
4397 "transformers":[
4398
4399 ]
4400 }
4401 ]
4402 },
4403 "maxLength":30,
4404 "default_value":"",
4405 "options":[
4406 "{value}"
4407 ],
4408 "options_params":[
4409 {
4410 "name":"value",
4411 "type":"sql",
4412 "value":"SELECT DISTINCT '' as id, '❌None' as name UNION SELECT dev_Owner as id, dev_Owner as name FROM (SELECT dev_Owner FROM Devices UNION SELECT 'House' ) AS all_devices ORDER BY id;"
4413 }
4414 ],
4415 "localized":[
4416 "name",
4417 "description"
4418 ],
4419 "name":[
4420 {
4421 "language_code":"en_us",
4422 "string":"Device Owner"
4423 }
4424 ],
4425 "description":[
4426 {
4427 "language_code":"en_us",
4428 "string":"The owner of the device."
4429 }
4430 ],
4431 "value":""
4432 },
4433 {
4434 "function":"dev_DeviceType",
4435 "type":{
4436 "dataType":"string",
4437 "elements":[
4438 {
4439 "elementType":"select",
4440 "elementOptions":[
4441
4442 ],
4443 "transformers":[
4444
4445 ]
4446 }
4447 ]
4448 },
4449 "maxLength":30,
4450 "default_value":"",
4451 "options":[
4452 "{value}"
4453 ],
4454 "options_params":[
4455 {
4456 "name":"value",
4457 "type":"sql",
4458 "value":"SELECT DISTINCT 9 as ord, dev_DeviceType as id, dev_DeviceType as name FROM Devices WHERE dev_DeviceType NOT IN ('', 'Smartphone', 'Tablet', 'Laptop', 'Mini PC', 'PC', 'Printer', 'Server', 'Singleboard Computer (SBC)', 'NAS', 'Domotic', 'IP Camera', 'Game Console', 'SmartTV', 'TV Decoder', 'Virtual Assistance', 'Clock', 'House Appliance', 'Phone', 'Radio', 'AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router', 'USB LAN Adapter', 'USB WIFI Adapter') UNION SELECT 0 as ord, '', '❌None' UNION SELECT 1 as ord, '-----', '-- 📱Handhelds --' UNION SELECT 1 as ord, 'Smartphone', 'Smartphone' UNION SELECT 1 as ord, 'Tablet', 'Tablet' UNION SELECT 2 as ord, '-----', '-- 💻Computers --' UNION SELECT 2 as ord, 'Laptop', 'Laptop' UNION SELECT 2 as ord, 'Mini PC', 'Mini PC' UNION SELECT 2 as ord, 'PC', 'PC' UNION SELECT 2 as ord, 'Printer', 'Printer' UNION SELECT 2 as ord, 'Server', 'Server' UNION SELECT 2 as ord, 'Singleboard Computer (SBC)', 'Singleboard Computer (SBC)' UNION SELECT 2 as ord, 'NAS', 'NAS' UNION SELECT 3 as ord, '-----', '-- 🏠Smart home --' UNION SELECT 3 as ord, 'Domotic', 'Domotic' UNION SELECT 3 as ord, 'IP Camera', 'IP Camera' UNION SELECT 3 as ord, 'Game Console', 'Game Console' UNION SELECT 3 as ord, 'SmartTV', 'SmartTV' UNION SELECT 3 as ord, 'TV Decoder', 'TV Decoder' UNION SELECT 3 as ord, 'Virtual Assistance', 'Virtual Assistance' UNION SELECT 4 as ord, '-----', '-- Wired --' UNION SELECT 4 as ord, 'Clock', 'Clock' UNION SELECT 4 as ord, 'House Appliance', 'House Appliance' UNION SELECT 4 as ord, 'Phone', 'Phone' UNION SELECT 4 as ord, 'Radio', 'Radio' UNION SELECT 5 as ord, '-----', '-- 📡Network nodes --' UNION SELECT 5 as ord, 'AP', 'AP' UNION SELECT 5 as ord, 'Gateway', 'Gateway' UNION SELECT 5 as ord, 'Firewall', 'Firewall' UNION SELECT 5 as ord, 'Hypervisor', 'Hypervisor' UNION SELECT 5 as ord, 'Powerline', 'Powerline' UNION SELECT 5 as ord, 'Switch', 'Switch' UNION SELECT 5 as ord, 'WLAN', 'WLAN' UNION SELECT 5 as ord, 'PLC', 'PLC' UNION SELECT 5 as ord, 'Router', 'Router' UNION SELECT 5 as ord, 'USB LAN Adapter', 'USB LAN Adapter' UNION SELECT 5 as ord, 'USB WIFI Adapter', 'USB WIFI Adapter' UNION SELECT 9 as ord, '-----', '-- ⚙Custom --' UNION SELECT 10 as ord, '-----', '-----' UNION SELECT 10 as ord, 'Other', 'Other' ORDER BY 1,2;"
4459 },
4460 {
4461 "name":"uilang",
4462 "type":"setting",
4463 "value":"UI_LANG"
4464 }
4465 ],
4466 "localized":[
4467 "name",
4468 "description"
4469 ],
4470 "name":[
4471 {
4472 "language_code":"en_us",
4473 "string":"Device Type"
4474 }
4475 ],
4476 "description":[
4477 {
4478 "language_code":"en_us",
4479 "string":"The type of the device."
4480 }
4481 ],
4482 "value":""
4483 },
4484 {
4485 "function":"dev_Vendor",
4486 "type":{
4487 "dataType":"string",
4488 "elements":[
4489 {
4490 "elementType":"input",
4491 "elementOptions":[
4492 {
4493 "readonly":"true"
4494 }
4495 ],
4496 "transformers":[
4497
4498 ]
4499 }
4500 ]
4501 },
4502 "maxLength":250,
4503 "default_value":"",
4504 "options":[
4505
4506 ],
4507 "localized":[
4508 "name",
4509 "description"
4510 ],
4511 "name":[
4512 {
4513 "language_code":"en_us",
4514 "string":"Device Vendor"
4515 }
4516 ],
4517 "description":[
4518 {
4519 "language_code":"en_us",
4520 "string":"The vendor of the device. Uneditable - Autodetected."
4521 }
4522 ],
4523 "value":""
4524 },
4525 {
4526 "function":"dev_Favorite",
4527 "type":{
4528 "dataType":"integer",
4529 "elements":[
4530 {
4531 "elementType":"input",
4532 "elementOptions":[
4533 {
4534 "type":"checkbox"
4535 }
4536 ],
4537 "transformers":[
4538
4539 ]
4540 }
4541 ]
4542 },
4543 "default_value":0,
4544 "options":[
4545
4546 ],
4547 "localized":[
4548 "name",
4549 "description"
4550 ],
4551 "name":[
4552 {
4553 "language_code":"en_us",
4554 "string":"Favorite Device"
4555 }
4556 ],
4557 "description":[
4558 {
4559 "language_code":"en_us",
4560 "string":"Indicates whether the device is marked as a favorite."
4561 }
4562 ],
4563 "value":0
4564 },
4565 {
4566 "function":"dev_Group",
4567 "type":{
4568 "dataType":"string",
4569 "elements":[
4570 {
4571 "elementType":"select",
4572 "elementOptions":[
4573
4574 ],
4575 "transformers":[
4576
4577 ]
4578 }
4579 ]
4580 },
4581 "maxLength":10,
4582 "default_value":"",
4583 "options":[
4584 "{value}"
4585 ],
4586 "options_params":[
4587 {
4588 "name":"value",
4589 "type":"sql",
4590 "value":"SELECT DISTINCT '' as id, '❌None' as name UNION SELECT dev_Group as id, dev_Group as name FROM (SELECT dev_Group FROM Devices WHERE dev_Group <> '' UNION SELECT 'Personal' UNION SELECT 'Always on' UNION SELECT 'Friends' UNION SELECT 'Others' ) AS all_devices ORDER BY id;"
4591 }
4592 ],
4593 "localized":[
4594 "name",
4595 "description"
4596 ],
4597 "name":[
4598 {
4599 "language_code":"en_us",
4600 "string":"Device Group"
4601 }
4602 ],
4603 "description":[
4604 {
4605 "language_code":"en_us",
4606 "string":"The group to which the device belongs."
4607 }
4608 ],
4609 "value":""
4610 },
4611 {
4612 "function":"dev_Comments",
4613 "type":{
4614 "dataType":"string",
4615 "elements":[
4616 {
4617 "elementType":"input",
4618 "elementOptions":[
4619
4620 ],
4621 "transformers":[
4622
4623 ]
4624 }
4625 ]
4626 },
4627 "default_value":"",
4628 "options":[
4629
4630 ],
4631 "localized":[
4632 "name",
4633 "description"
4634 ],
4635 "name":[
4636 {
4637 "language_code":"en_us",
4638 "string":"Device Comments"
4639 }
4640 ],
4641 "description":[
4642 {
4643 "language_code":"en_us",
4644 "string":"Additional comments or notes about the device."
4645 }
4646 ],
4647 "value":""
4648 },
4649 {
4650 "function":"dev_FirstConnection",
4651 "type":{
4652 "dataType":"string",
4653 "elements":[
4654 {
4655 "elementType":"input",
4656 "elementOptions":[
4657 {
4658 "readonly":"true"
4659 }
4660 ],
4661 "transformers":[
4662
4663 ]
4664 }
4665 ]
4666 },
4667 "format":"date-time",
4668 "default_value":"",
4669 "options":[
4670
4671 ],
4672 "localized":[
4673 "name",
4674 "description"
4675 ],
4676 "name":[
4677 {
4678 "language_code":"en_us",
4679 "string":"First Connection"
4680 }
4681 ],
4682 "description":[
4683 {
4684 "language_code":"en_us",
4685 "string":"The date and time of the first connection with the device. Uneditable - Autodetected."
4686 }
4687 ],
4688 "value":""
4689 },
4690 {
4691 "function":"dev_LastConnection",
4692 "type":{
4693 "dataType":"string",
4694 "elements":[
4695 {
4696 "elementType":"input",
4697 "elementOptions":[
4698 {
4699 "readonly":"true"
4700 }
4701 ],
4702 "transformers":[
4703
4704 ]
4705 }
4706 ]
4707 },
4708 "format":"date-time",
4709 "default_value":"",
4710 "options":[
4711
4712 ],
4713 "localized":[
4714 "name",
4715 "description"
4716 ],
4717 "name":[
4718 {
4719 "language_code":"en_us",
4720 "string":"Last Connection"
4721 }
4722 ],
4723 "description":[
4724 {
4725 "language_code":"en_us",
4726 "string":"The date and time of the last connection with the device. Uneditable - Autodetected."
4727 }
4728 ],
4729 "value":""
4730 },
4731 {
4732 "function":"dev_LastIP",
4733 "type":{
4734 "dataType":"string",
4735 "elements":[
4736 {
4737 "elementType":"input",
4738 "elementOptions":[
4739 {
4740 "readonly":"true"
4741 }
4742 ],
4743 "transformers":[
4744
4745 ]
4746 }
4747 ]
4748 },
4749 "maxLength":50,
4750 "default_value":"",
4751 "options":[
4752
4753 ],
4754 "localized":[
4755 "name",
4756 "description"
4757 ],
4758 "name":[
4759 {
4760 "language_code":"en_us",
4761 "string":"Last IP"
4762 }
4763 ],
4764 "description":[
4765 {
4766 "language_code":"en_us",
4767 "string":"The last known IP address of the device. Uneditable - Autodetected."
4768 }
4769 ],
4770 "value":""
4771 },
4772 {
4773 "function":"dev_StaticIP",
4774 "type":{
4775 "dataType":"integer",
4776 "elements":[
4777 {
4778 "elementType":"input",
4779 "elementOptions":[
4780 {
4781 "type":"checkbox"
4782 }
4783 ],
4784 "transformers":[
4785
4786 ]
4787 }
4788 ]
4789 },
4790 "default_value":0,
4791 "options":[
4792
4793 ],
4794 "localized":[
4795 "name",
4796 "description"
4797 ],
4798 "name":[
4799 {
4800 "language_code":"en_us",
4801 "string":"Static IP"
4802 }
4803 ],
4804 "description":[
4805 {
4806 "language_code":"en_us",
4807 "string":"Indicates whether the device has a static IP address."
4808 }
4809 ],
4810 "value":0
4811 },
4812 {
4813 "function":"dev_ScanCycle",
4814 "type":{
4815 "dataType":"integer",
4816 "elements":[
4817 {
4818 "elementType":"input",
4819 "elementOptions":[
4820 {
4821 "type":"checkbox"
4822 }
4823 ],
4824 "transformers":[
4825
4826 ]
4827 }
4828 ]
4829 },
4830 "default_value":1,
4831 "options":[
4832
4833 ],
4834 "localized":[
4835 "name",
4836 "description"
4837 ],
4838 "name":[
4839 {
4840 "language_code":"en_us",
4841 "string":"Scan Cycle"
4842 }
4843 ],
4844 "description":[
4845 {
4846 "language_code":"en_us",
4847 "string":"The default value of the <code>Scan device<\/code> dropdown. Enable if newly discovered devices should be scanned."
4848 }
4849 ],
4850 "value":1
4851 },
4852 {
4853 "function":"dev_LogEvents",
4854 "type":{
4855 "dataType":"integer",
4856 "elements":[
4857 {
4858 "elementType":"input",
4859 "elementOptions":[
4860 {
4861 "type":"checkbox"
4862 }
4863 ],
4864 "transformers":[
4865
4866 ]
4867 }
4868 ]
4869 },
4870 "default_value":1,
4871 "options":[
4872
4873 ],
4874 "localized":[
4875 "name",
4876 "description"
4877 ],
4878 "name":[
4879 {
4880 "language_code":"en_us",
4881 "string":"Log Events"
4882 }
4883 ],
4884 "description":[
4885 {
4886 "language_code":"en_us",
4887 "string":"Indicates whether events related to the device shouldbe logged."
4888 }
4889 ],
4890 "value":1
4891 },
4892 {
4893 "function":"dev_AlertEvents",
4894 "type":{
4895 "dataType":"integer",
4896 "elements":[
4897 {
4898 "elementType":"input",
4899 "elementOptions":[
4900 {
4901 "type":"checkbox"
4902 }
4903 ],
4904 "transformers":[
4905
4906 ]
4907 }
4908 ]
4909 },
4910 "default_value":1,
4911 "options":[
4912
4913 ],
4914 "localized":[
4915 "name",
4916 "description"
4917 ],
4918 "name":[
4919 {
4920 "language_code":"en_us",
4921 "string":"Alert Events"
4922 }
4923 ],
4924 "description":[
4925 {
4926 "language_code":"en_us",
4927 "string":"Indicates whether events related to the device should trigger alerts. The default value of the <code>Alert All Events<\/code> checkbox."
4928 }
4929 ],
4930 "value":1
4931 },
4932 {
4933 "function":"dev_AlertDeviceDown",
4934 "type":{
4935 "dataType":"integer",
4936 "elements":[
4937 {
4938 "elementType":"input",
4939 "elementOptions":[
4940 {
4941 "type":"checkbox"
4942 }
4943 ],
4944 "transformers":[
4945
4946 ]
4947 }
4948 ]
4949 },
4950 "default_value":0,
4951 "options":[
4952
4953 ],
4954 "localized":[
4955 "name",
4956 "description"
4957 ],
4958 "name":[
4959 {
4960 "language_code":"en_us",
4961 "string":"Alert Device Down"
4962 }
4963 ],
4964 "description":[
4965 {
4966 "language_code":"en_us",
4967 "string":"Indicates whether an alert should be triggered when the device goes down. The default value of the <code>Alert Down<\/code> checkbox."
4968 }
4969 ],
4970 "value":0
4971 },
4972 {
4973 "function":"dev_SkipRepeated",
4974 "type":{
4975 "dataType":"string",
4976 "elements":[
4977 {
4978 "elementType":"select",
4979 "elementOptions":[
4980
4981 ],
4982 "transformers":[
4983
4984 ]
4985 }
4986 ]
4987 },
4988 "default_value":0,
4989 "options":[
4990 "{value}"
4991 ],
4992 "options_params":[
4993 {
4994 "name":"value",
4995 "type":"sql",
4996 "value":"SELECT '0' as id, '0 (notify all)' as name UNION SELECT '168' as id, '1 week' as name UNION SELECT '24' as id, '1 day' as name UNION SELECT '8' as id, '8 h' as name UNION SELECT '1' as id, '1 h' as name"
4997 }
4998 ],
4999 "localized":[
5000 "name",
5001 "description"
5002 ],
5003 "name":[
5004 {
5005 "language_code":"en_us",
5006 "string":"Skip Repeated (h)"
5007 }
5008 ],
5009 "description":[
5010 {
5011 "language_code":"en_us",
5012 "string":"The default value of the <code>Skip repeated notifications for<\/code> dropdown. Enter number of <b>hours<\/b> for which repeated notifications should be ignored for. If you enter <code>0<\/code> then you get notified on all events."
5013 }
5014 ],
5015 "value":"0"
5016 },
5017 {
5018 "function":"dev_LastNotification",
5019 "type":{
5020 "dataType":"string",
5021 "elements":[
5022 {
5023 "elementType":"input",
5024 "elementOptions":[
5025 {
5026 "readonly":"true"
5027 }
5028 ],
5029 "transformers":[
5030
5031 ]
5032 }
5033 ]
5034 },
5035 "format":"date-time",
5036 "default_value":"",
5037 "options":[
5038
5039 ],
5040 "localized":[
5041 "name",
5042 "description"
5043 ],
5044 "name":[
5045 {
5046 "language_code":"en_us",
5047 "string":"Last Notification"
5048 }
5049 ],
5050 "description":[
5051 {
5052 "language_code":"en_us",
5053 "string":"The date and time of the last notification sent for the device. Uneditable - Autodetected."
5054 }
5055 ],
5056 "value":""
5057 },
5058 {
5059 "function":"dev_PresentLastScan",
5060 "type":{
5061 "dataType":"integer",
5062 "elements":[
5063 {
5064 "elementType":"input",
5065 "elementOptions":[
5066 {
5067 "type":"checkbox"
5068 }
5069 ],
5070 "transformers":[
5071
5072 ]
5073 }
5074 ]
5075 },
5076 "default_value":1,
5077 "options":[
5078
5079 ],
5080 "localized":[
5081 "name",
5082 "description"
5083 ],
5084 "name":[
5085 {
5086 "language_code":"en_us",
5087 "string":"Present Last Scan"
5088 }
5089 ],
5090 "description":[
5091 {
5092 "language_code":"en_us",
5093 "string":"Indicates whether the device should be marked as present after detected in a scan."
5094 }
5095 ],
5096 "value":1
5097 },
5098 {
5099 "function":"dev_NewDevice",
5100 "type":{
5101 "dataType":"integer",
5102 "elements":[
5103 {
5104 "elementType":"input",
5105 "elementOptions":[
5106 {
5107 "type":"checkbox"
5108 }
5109 ],
5110 "transformers":[
5111
5112 ]
5113 }
5114 ]
5115 },
5116 "default_value":1,
5117 "options":[
5118
5119 ],
5120 "localized":[
5121 "name",
5122 "description"
5123 ],
5124 "name":[
5125 {
5126 "language_code":"en_us",
5127 "string":"New Device"
5128 }
5129 ],
5130 "description":[
5131 {
5132 "language_code":"en_us",
5133 "string":"Indicates whether the device is considered a new device. The default value of the <code>New Device<\/code> checkbox. If checked this will show the New status for the device and include it in lists when the New Devices filter is active. Doesn't affect notifications."
5134 }
5135 ],
5136 "value":1
5137 },
5138 {
5139 "function":"dev_Location",
5140 "type":{
5141 "dataType":"string",
5142 "elements":[
5143 {
5144 "elementType":"select",
5145 "elementOptions":[
5146
5147 ],
5148 "transformers":[
5149
5150 ]
5151 }
5152 ]
5153 },
5154 "maxLength":250,
5155 "default_value":"",
5156 "options":[
5157 "{value}"
5158 ],
5159 "options_params":[
5160 {
5161 "name":"value",
5162 "type":"sql",
5163 "value":"SELECT DISTINCT '' as id, '❌None' as name UNION SELECT dev_Location as id, dev_Location as name FROM (SELECT dev_Location FROM Devices where dev_Location not in (null, 'null', '') UNION SELECT 'Bathroom' UNION SELECT 'Bedroom' UNION SELECT 'Dining room' UNION SELECT 'Hall' UNION SELECT 'Kitchen' UNION SELECT 'Laundry' UNION SELECT 'Living room' UNION SELECT 'Study' UNION SELECT 'Attic' UNION SELECT 'Basement' UNION SELECT 'Garage' UNION SELECT 'Back yard' UNION SELECT 'Garden' UNION SELECT 'Terrace') AS all_devices ORDER BY id; "
5164 }
5165 ],
5166 "localized":[
5167 "name",
5168 "description"
5169 ],
5170 "name":[
5171 {
5172 "language_code":"en_us",
5173 "string":"Device Location"
5174 }
5175 ],
5176 "description":[
5177 {
5178 "language_code":"en_us",
5179 "string":"The location of the device."
5180 }
5181 ],
5182 "value":""
5183 },
5184 {
5185 "function":"dev_Archived",
5186 "type":{
5187 "dataType":"integer",
5188 "elements":[
5189 {
5190 "elementType":"input",
5191 "elementOptions":[
5192 {
5193 "type":"checkbox"
5194 }
5195 ],
5196 "transformers":[
5197
5198 ]
5199 }
5200 ]
5201 },
5202 "default_value":0,
5203 "options":[
5204
5205 ],
5206 "localized":[
5207 "name",
5208 "description"
5209 ],
5210 "name":[
5211 {
5212 "language_code":"en_us",
5213 "string":"Archived"
5214 }
5215 ],
5216 "description":[
5217 {
5218 "language_code":"en_us",
5219 "string":"Indicates whether the device is archived. The default value of the <code>Archived<\/code> checkbox."
5220 }
5221 ],
5222 "value":0
5223 },
5224 {
5225 "function":"dev_Network_Node_MAC_ADDR",
5226 "type":{
5227 "dataType":"string",
5228 "elements":[
5229 {
5230 "elementType":"select",
5231 "elementOptions":[
5232
5233 ],
5234 "transformers":[
5235
5236 ]
5237 }
5238 ]
5239 },
5240 "default_value":"",
5241 "options":[
5242 "{value}"
5243 ],
5244 "options_params":[
5245 {
5246 "name":"value",
5247 "type":"sql",
5248 "value":"SELECT '❌None' as name, '' as id UNION SELECT Dev_Name as name, dev_MAC as id FROM Devices WHERE EXISTS (SELECT 1 FROM Settings WHERE Code_Name = 'NETWORK_DEVICE_TYPES' AND LOWER(value) LIKE '%' || LOWER(dev_DeviceType) || '%' AND dev_DeviceType <> '')"
5249 },
5250 {
5251 "name":"target_macs",
5252 "type":"setting",
5253 "value":"KNWN_target_macs"
5254 }
5255 ],
5256 "localized":[
5257 "name",
5258 "description"
5259 ],
5260 "name":[
5261 {
5262 "language_code":"en_us",
5263 "string":"Network Node MAC Address"
5264 }
5265 ],
5266 "description":[
5267 {
5268 "language_code":"en_us",
5269 "string":"The MAC address of the network node."
5270 }
5271 ],
5272 "value":"Internet"
5273 },
5274 {
5275 "function":"dev_Network_Node_port",
5276 "type":{
5277 "dataType":"string",
5278 "elements":[
5279 {
5280 "elementType":"input",
5281 "elementOptions":[
5282 {
5283 "readonly":"true"
5284 }
5285 ],
5286 "transformers":[
5287
5288 ]
5289 }
5290 ]
5291 },
5292 "default_value":0,
5293 "options":[
5294
5295 ],
5296 "localized":[
5297 "name",
5298 "description"
5299 ],
5300 "name":[
5301 {
5302 "language_code":"en_us",
5303 "string":"Network Node Port"
5304 }
5305 ],
5306 "description":[
5307 {
5308 "language_code":"en_us",
5309 "string":"The port number of the network node. Uneditable."
5310 }
5311 ],
5312 "value":"0"
5313 },
5314 {
5315 "function":"dev_Icon",
5316 "type":{
5317 "dataType":"string",
5318 "elements":[
5319 {
5320 "elementType":"select",
5321 "elementOptions":[
5322
5323 ],
5324 "transformers":[
5325
5326 ]
5327 }
5328 ]
5329 },
5330 "default_value":"",
5331 "options":[
5332 "{value}"
5333 ],
5334 "options_params":[
5335 {
5336 "name":"value",
5337 "type":"sql",
5338 "value":"WITH RECURSIVE SettingsIcons AS (SELECT REPLACE(REPLACE(REPLACE(Value, '[', ''), ']', ''), '''', '') AS icon_list FROM Settings WHERE Code_Name = 'UI_ICONS'), SplitIcons AS (SELECT TRIM(SUBSTR(icon_list, 1, INSTR(icon_list || ',', ',') - 1)) AS icon, SUBSTR(icon_list, INSTR(icon_list || ',', ',') + 1) AS remaining_icons FROM SettingsIcons WHERE icon_list <> '' UNION ALL SELECT TRIM(SUBSTR(remaining_icons, 1, INSTR(remaining_icons || ',', ',') - 1)) AS icon, SUBSTR(remaining_icons, INSTR(remaining_icons || ',', ',') + 1) AS remaining_icons FROM SplitIcons WHERE remaining_icons <> '') SELECT DISTINCT * FROM (SELECT icon as name, icon as id FROM SplitIcons UNION SELECT '❌None' AS name, '' AS id UNION SELECT Dev_Icon AS name, Dev_Icon AS id FROM Devices WHERE Dev_Icon <> '') AS combined_results;"
5339 }
5340 ],
5341 "localized":[
5342 "name",
5343 "description"
5344 ],
5345 "name":[
5346 {
5347 "language_code":"en_us",
5348 "string":"Device Icon"
5349 }
5350 ],
5351 "description":[
5352 {
5353 "language_code":"en_us",
5354 "string":"The icon associated with the device. Check the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">documentation on icons<\/a> for more details."
5355 }
5356 ],
5357 "value":"PGkgY2xhc3M9ImZhIGZhLWNvbXB1dGVyIj48L2k+"
5358 }
5359 ],
5360 "required":[
5361 "dev_MAC",
5362 "dev_Name",
5363 "dev_Owner",
5364 "dev_FirstConnection",
5365 "dev_LastConnection",
5366 "dev_LastIP",
5367 "dev_StaticIP",
5368 "dev_ScanCycle",
5369 "dev_LogEvents",
5370 "dev_AlertEvents",
5371 "dev_AlertDeviceDown",
5372 "dev_SkipRepeated",
5373 "dev_LastNotification",
5374 "dev_PresentLastScan",
5375 "dev_NewDevice",
5376 "dev_Location",
5377 "dev_Archived",
5378 "dev_Network_Node_MAC_ADDR",
5379 "dev_Network_Node_port",
5380 "dev_Icon",
5381 "LESS_NAME_CLEANUP"
5382 ],
5383 "additionalProperties":false
5384 },
5385 {
5386 "code_name":"notification_processing",
5387 "unique_prefix":"NTFPRCS",
5388 "plugin_type":"system",
5389 "enabled":true,
5390 "data_source":"script",
5391 "show_ui":false,
5392 "localized":[
5393 "display_name",
5394 "description",
5395 "icon"
5396 ],
5397 "display_name":[
5398 {
5399 "language_code":"en_us",
5400 "string":"Notification Processing"
5401 }
5402 ],
5403 "icon":[
5404 {
5405 "language_code":"en_us",
5406 "string":"<i class=\"fa-solid fa-envelopes-bulk\"><\/i>"
5407 }
5408 ],
5409 "description":[
5410 {
5411 "language_code":"en_us",
5412 "string":"A plugin to for advanced notification processing."
5413 }
5414 ],
5415 "params":[
5416
5417 ],
5418 "settings":[
5419 {
5420 "function":"INCLUDED_SECTIONS",
5421 "type":{
5422 "dataType":"array",
5423 "elements":[
5424 {
5425 "elementType":"select",
5426 "elementOptions":[
5427 {
5428 "multiple":"true"
5429 }
5430 ],
5431 "transformers":[
5432
5433 ]
5434 }
5435 ]
5436 },
5437 "default_value":[
5438 "new_devices",
5439 "down_devices",
5440 "events"
5441 ],
5442 "options":[
5443 "new_devices",
5444 "down_devices",
5445 "down_reconnected",
5446 "events",
5447 "plugins"
5448 ],
5449 "localized":[
5450 "name",
5451 "description"
5452 ],
5453 "name":[
5454 {
5455 "language_code":"en_us",
5456 "string":"Notify on"
5457 },
5458 {
5459 "language_code":"de_de",
5460 "string":"Benachrichtigungen"
5461 },
5462 {
5463 "language_code":"es_es",
5464 "string":"Notificar en"
5465 }
5466 ],
5467 "description":[
5468 {
5469 "language_code":"en_us",
5470 "string":"Specifies which events trigger notifications. Remove the event type(s) you do not want to get notified on. This setting overrides device-specific settings in the UI. (<code>CTRL + Click<\/code> to select/deselect)."
5471 },
5472 {
5473 "language_code":"de_de",
5474 "string":"Spezifiziert, bei welchen Events Benachrichtigungen versendet werden. Entfernen Sie die Eventtypen, bei welchen Sie nicht benachrichtigt werden wollen. Diese Einstellung überschreibt gerätespezifische Einstellungen im UI. (<code>STRG + klicken<\/code> zum aus-/abwählen)."
5475 },
5476 {
5477 "language_code":"es_es",
5478 "string":"Especifica que eventos envían notificaciones. Elimina los tipos de eventos de los que no quieras recibir notificaciones. Este ajuste sobreescribe los ajustes específicos de los dispositivos en la interfaz. (<code>CTRL + Clic<\/code> para seleccionar / deseleccionar)."
5479 }
5480 ],
5481 "value":[
5482 "new_devices",
5483 "down_devices",
5484 "events"
5485 ]
5486 },
5487 {
5488 "function":"alert_down_time",
5489 "type":{
5490 "dataType":"integer",
5491 "elements":[
5492 {
5493 "elementType":"input",
5494 "elementOptions":[
5495 {
5496 "type":"number"
5497 }
5498 ],
5499 "transformers":[
5500
5501 ]
5502 }
5503 ]
5504 },
5505 "default_value":5,
5506 "options":[
5507
5508 ],
5509 "localized":[
5510 "name",
5511 "description"
5512 ],
5513 "name":[
5514 {
5515 "language_code":"en_us",
5516 "string":"Alert Down After"
5517 }
5518 ],
5519 "description":[
5520 {
5521 "language_code":"en_us",
5522 "string":"After how many minutes a device is reported as down and a notification is sent."
5523 }
5524 ],
5525 "value":5
5526 },
5527 {
5528 "function":"new_dev_condition",
5529 "type":{
5530 "dataType":"string",
5531 "elements":[
5532 {
5533 "elementType":"input",
5534 "elementOptions":[
5535
5536 ],
5537 "transformers":[
5538
5539 ]
5540 }
5541 ]
5542 },
5543 "default_value":"",
5544 "options":[
5545
5546 ],
5547 "localized":[
5548 "name",
5549 "description"
5550 ],
5551 "name":[
5552 {
5553 "language_code":"en_us",
5554 "string":"New Devices Filter"
5555 }
5556 ],
5557 "description":[
5558 {
5559 "language_code":"en_us",
5560 "string":"You can specify a SQL where condition to filter out New Devices from notifications. For example <code>AND dev_LastIP NOT LIKE '192.168.3.%'<\/code> will always exlude New Device notifications for all devices with the IP starting with <code>192.168.3.%<\/code>."
5561 }
5562 ],
5563 "value":""
5564 },
5565 {
5566 "function":"event_condition",
5567 "type":{
5568 "dataType":"string",
5569 "elements":[
5570 {
5571 "elementType":"input",
5572 "elementOptions":[
5573
5574 ],
5575 "transformers":[
5576
5577 ]
5578 }
5579 ]
5580 },
5581 "default_value":"",
5582 "options":[
5583
5584 ],
5585 "localized":[
5586 "name",
5587 "description"
5588 ],
5589 "name":[
5590 {
5591 "language_code":"en_us",
5592 "string":"Events Filter"
5593 }
5594 ],
5595 "description":[
5596 {
5597 "language_code":"en_us",
5598 "string":"You can specify a SQL where condition to filter out Events from notifications. For example <code>AND dev_LastIP NOT LIKE '192.168.3.%'<\/code> will always exlude New Device notifications for all devices with the IP starting with <code>192.168.3.%<\/code>."
5599 }
5600 ],
5601 "value":""
5602 }
5603 ],
5604 "database_column_definitions":[
5605
5606 ]
5607 },
5608 {
5609 "code_name":"pholus_scan",
5610 "unique_prefix":"PHOLUS",
5611 "plugin_type":"other",
5612 "enabled":true,
5613 "data_source":"script",
5614 "mapped_to_table":"Pholus_Scan",
5615 "data_filters":[
5616 {
5617 "compare_column":"Object_PrimaryID",
5618 "compare_operator":"==",
5619 "compare_field_id":"txtMacFilter",
5620 "compare_js_template":"'{value}'.toString()",
5621 "compare_use_quotes":true
5622 }
5623 ],
5624 "show_ui":true,
5625 "localized":[
5626 "display_name",
5627 "description",
5628 "icon"
5629 ],
5630 "display_name":[
5631 {
5632 "language_code":"en_us",
5633 "string":"Pholus (Name discovery)"
5634 },
5635 {
5636 "language_code":"es_es",
5637 "string":"Pholus (Descubrimiento de nombre)"
5638 }
5639 ],
5640 "icon":[
5641 {
5642 "language_code":"en_us",
5643 "string":"<i class=\"fa-solid fa-search\"><\/i>"
5644 },
5645 {
5646 "language_code":"es_es",
5647 "string":"<i class=\"fa-solid fa-search\"><\/i>"
5648 }
5649 ],
5650 "description":[
5651 {
5652 "language_code":"en_us",
5653 "string":"This plugin is to execute a Pholus (name discovery) on the local network"
5654 },
5655 {
5656 "language_code":"es_es",
5657 "string":"Este plugin sirve para ejecutar un escaneo Pholus (descubrimiento de nombres) en la red local"
5658 }
5659 ],
5660 "params":[
5661 {
5662 "name":"subnets",
5663 "type":"setting",
5664 "value":"SCAN_SUBNETS",
5665 "base64":true
5666 },
5667 {
5668 "name":"timeout",
5669 "type":"setting",
5670 "value":"PHOLUS_RUN_TIMEOUT"
5671 }
5672 ],
5673 "settings":[
5674 {
5675 "function":"RUN",
5676 "type":{
5677 "dataType":"string",
5678 "elements":[
5679 {
5680 "elementType":"select",
5681 "elementOptions":[
5682
5683 ],
5684 "transformers":[
5685
5686 ]
5687 }
5688 ]
5689 },
5690 "default_value":"disabled",
5691 "options":[
5692 "disabled",
5693 "once",
5694 "schedule",
5695 "always_after_scan",
5696 "on_new_device"
5697 ],
5698 "localized":[
5699 "name",
5700 "description"
5701 ],
5702 "events":[
5703 "run"
5704 ],
5705 "name":[
5706 {
5707 "language_code":"en_us",
5708 "string":"When to run"
5709 },
5710 {
5711 "language_code":"es_es",
5712 "string":"Cuando ejecutar"
5713 }
5714 ],
5715 "description":[
5716 {
5717 "language_code":"en_us",
5718 "string":"<a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/pholus_scan/pholus\" target=\"_blank\" >Pholus<\/a> is a sniffing tool to discover additional information about the devices on the network, including the device name. If enabled this will execute the scan before every network scan cycle until there are no <code>(unknown)<\/code> or <code>(name not found)<\/code> devices. Please be aware it can spam the network with unnecessary traffic. Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS<\/code> setting<\/a>. For a scheduled or one-off scan, check the <a href=\"#PHOLUS_RUN\"><code>PHOLUS_RUN<\/code> setting<\/a>.Specify when your Name-discovery scan will run. Typical setting would be <code>on_new_device<\/code> or <code>schedule<\/code> and then you specify a cron-like schedule in the <a href=\"#PHOLUS_RUN_SCHD\"><code>PHOLUS_RUN_SCHD<\/code>setting<\/a>."
5719 },
5720 {
5721 "language_code":"es_es",
5722 "string":"<a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/pholus_scan/pholus\" target=\"_blank\" >Pholus<\/a> es una herramienta de rastreo para descubrir información adicional sobre los dispositivos en la red, incluido el nombre del dispositivo. Si está habilitado, ejecutará el escaneo antes de cada ciclo de escaneo de red hasta que no haya dispositivos <code>(unknown)<\/code> o <code>(name not found)<\/code>. Tenga en cuenta que puede enviar spam a la red con tráfico innecesario. Depende de la configuración de <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS<\/code><\/a>. Para un análisis programado o único, verifique la configuración de <a href=\"#PHOLUS_RUN\"><code>PHOLUS_RUN<\/code><\/a>."
5723 }
5724 ],
5725 "value":"on_new_device"
5726 },
5727 {
5728 "function":"CMD",
5729 "type":{
5730 "dataType":"string",
5731 "elements":[
5732 {
5733 "elementType":"input",
5734 "elementOptions":[
5735 {
5736 "readonly":"true"
5737 }
5738 ],
5739 "transformers":[
5740
5741 ]
5742 }
5743 ]
5744 },
5745 "default_value":"python3 /app/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}",
5746 "options":[
5747
5748 ],
5749 "localized":[
5750 "name",
5751 "description"
5752 ],
5753 "name":[
5754 {
5755 "language_code":"en_us",
5756 "string":"Command"
5757 },
5758 {
5759 "language_code":"es_es",
5760 "string":"Comando"
5761 }
5762 ],
5763 "description":[
5764 {
5765 "language_code":"en_us",
5766 "string":"Command to run. This should not be changed"
5767 },
5768 {
5769 "language_code":"es_es",
5770 "string":"Comando para ejecutar. Esto no debe ser cambiado"
5771 }
5772 ],
5773 "value":"python3 /app/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}"
5774 },
5775 {
5776 "function":"RUN_TIMEOUT",
5777 "type":{
5778 "dataType":"integer",
5779 "elements":[
5780 {
5781 "elementType":"input",
5782 "elementOptions":[
5783 {
5784 "type":"number"
5785 }
5786 ],
5787 "transformers":[
5788
5789 ]
5790 }
5791 ]
5792 },
5793 "default_value":300,
5794 "options":[
5795
5796 ],
5797 "localized":[
5798 "name",
5799 "description"
5800 ],
5801 "name":[
5802 {
5803 "language_code":"en_us",
5804 "string":"Run timeout"
5805 },
5806 {
5807 "language_code":"es_es",
5808 "string":"Tiempo límite de ejecución"
5809 }
5810 ],
5811 "description":[
5812 {
5813 "language_code":"en_us",
5814 "string":"Network scan time in seconds. Pholus scan will always run this long. The longer it runs the more device names might be resolved. Will be divided by the number of subnets."
5815 },
5816 {
5817 "language_code":"es_es",
5818 "string":"Tiempo de escaneo de red en segundos. El escaneo de Pholus siempre durará este tiempo. Cuanto más tiempo se ejecute, más nombres de dispositivos se podrán resolver. Se dividirá por el número de subredes."
5819 }
5820 ],
5821 "value":300
5822 },
5823 {
5824 "function":"RUN_SCHD",
5825 "type":{
5826 "dataType":"string",
5827 "elements":[
5828 {
5829 "elementType":"input",
5830 "elementOptions":[
5831
5832 ],
5833 "transformers":[
5834
5835 ]
5836 }
5837 ]
5838 },
5839 "default_value":"30 3 * * *",
5840 "options":[
5841
5842 ],
5843 "localized":[
5844 "name",
5845 "description"
5846 ],
5847 "name":[
5848 {
5849 "language_code":"en_us",
5850 "string":"Schedule"
5851 },
5852 {
5853 "language_code":"es_es",
5854 "string":"Schedule"
5855 }
5856 ],
5857 "description":[
5858 {
5859 "language_code":"en_us",
5860 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#PHOLUS_RUN\"><code>PHOLUS_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>30 3 * * *<\/code> will run the scan at 3:30 am. Will be run NEXT time the time passes. <br/>"
5861 },
5862 {
5863 "language_code":"es_es",
5864 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#PHOLUS_RUN\"><code>PHOLUS_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato cron correcto (por ejemplo, validar en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, al ingresar <code>30 3 * * *<\/code> se ejecutará el escaneo a las 3:30 am. Se ejecutará la PRÓXIMA vez que pase el tiempo. <br/>"
5865 }
5866 ],
5867 "value":"30 3 * * *"
5868 },
5869 {
5870 "function":"DAYS_DATA",
5871 "type":{
5872 "dataType":"integer",
5873 "elements":[
5874 {
5875 "elementType":"input",
5876 "elementOptions":[
5877 {
5878 "type":"number"
5879 }
5880 ],
5881 "transformers":[
5882
5883 ]
5884 }
5885 ]
5886 },
5887 "default_value":30,
5888 "options":[
5889
5890 ],
5891 "localized":[
5892 "name",
5893 "description"
5894 ],
5895 "name":[
5896 {
5897 "language_code":"en_us",
5898 "string":"Retention of data"
5899 },
5900 {
5901 "language_code":"es_es",
5902 "string":"Retención de datos"
5903 }
5904 ],
5905 "description":[
5906 {
5907 "language_code":"en_us",
5908 "string":"How many days of Pholus scan entries should be kept (globally, not device specific!) Enter <code>0<\/code> to disable."
5909 },
5910 {
5911 "language_code":"es_es",
5912 "string":"Cuántos días de entradas de escaneo de Pholus deben conservarse (globalmente, ¡no específico del dispositivo!). Introduzca <code>0<\/code> para desactivar."
5913 }
5914 ],
5915 "value":30
5916 },
5917 {
5918 "function":"WATCH",
5919 "type":{
5920 "dataType":"array",
5921 "elements":[
5922 {
5923 "elementType":"select",
5924 "elementOptions":[
5925 {
5926 "multiple":"true"
5927 }
5928 ],
5929 "transformers":[
5930
5931 ]
5932 }
5933 ]
5934 },
5935 "default_value":[
5936 "Watched_Value1",
5937 "Watched_Value2"
5938 ],
5939 "options":[
5940 "Watched_Value1",
5941 "Watched_Value2",
5942 "Watched_Value3",
5943 "Watched_Value4"
5944 ],
5945 "localized":[
5946 "name",
5947 "description"
5948 ],
5949 "name":[
5950 {
5951 "language_code":"en_us",
5952 "string":"Watched"
5953 },
5954 {
5955 "language_code":"es_es",
5956 "string":"Watched"
5957 }
5958 ],
5959 "description":[
5960 {
5961 "language_code":"en_us",
5962 "string":"Send a notification if selected values change. Use <code>CTRL + Click<\/code> to select/deselect. <ul> <li><code>Watched_Value1<\/code> is Info<\/li><li><code>Watched_Value2<\/code> is Record type<\/li><li><code>Watched_Value3<\/code> is Info <\/li><li><code>Watched_Value4<\/code> is N/A <\/li><\/ul>"
5963 },
5964 {
5965 "language_code":"es_es",
5966 "string":"Enviar una notificación si los valores seleccionados cambian. Utilice <code>CTRL + Clic<\/code> para seleccionar/deseleccionar. <ul> <li><code>Watched_Value1<\/code> es Información<\/li><li><code>Watched_Value2<\/code> es Tipo de registro<\/li><li><code>Watched_Value3<\/code> es La información <\/li><li><code>Watched_Value4<\/code> es N/A <\/li><\/ul>"
5967 }
5968 ],
5969 "value":[
5970 "Watched_Value1",
5971 "Watched_Value2"
5972 ]
5973 },
5974 {
5975 "function":"REPORT_ON",
5976 "type":{
5977 "dataType":"array",
5978 "elements":[
5979 {
5980 "elementType":"select",
5981 "elementOptions":[
5982 {
5983 "multiple":"true"
5984 }
5985 ],
5986 "transformers":[
5987
5988 ]
5989 }
5990 ]
5991 },
5992 "default_value":[
5993 "new"
5994 ],
5995 "options":[
5996 "new",
5997 "watched-changed",
5998 "watched-not-changed",
5999 "missing-in-last-scan"
6000 ],
6001 "localized":[
6002 "name",
6003 "description"
6004 ],
6005 "name":[
6006 {
6007 "language_code":"en_us",
6008 "string":"Report on"
6009 },
6010 {
6011 "language_code":"es_es",
6012 "string":"Informar sobre"
6013 }
6014 ],
6015 "description":[
6016 {
6017 "language_code":"en_us",
6018 "string":"When should notification be sent out."
6019 },
6020 {
6021 "language_code":"es_es",
6022 "string":"Cuándo debe enviarse una notificación."
6023 }
6024 ],
6025 "value":[
6026 "new"
6027 ]
6028 }
6029 ],
6030 "database_column_definitions":[
6031 {
6032 "column":"Object_PrimaryID",
6033 "mapped_to_column":"MAC",
6034 "css_classes":"col-sm-2",
6035 "show":true,
6036 "type":"device_name_mac",
6037 "default_value":"",
6038 "options":[
6039
6040 ],
6041 "localized":[
6042 "name"
6043 ],
6044 "name":[
6045 {
6046 "language_code":"en_us",
6047 "string":"MAC"
6048 },
6049 {
6050 "language_code":"es_es",
6051 "string":"MAC"
6052 }
6053 ]
6054 },
6055 {
6056 "column":"Object_SecondaryID",
6057 "mapped_to_column":"IP_v4_or_v6",
6058 "css_classes":"col-sm-2",
6059 "show":true,
6060 "type":"label",
6061 "default_value":"",
6062 "options":[
6063
6064 ],
6065 "localized":[
6066 "name"
6067 ],
6068 "name":[
6069 {
6070 "language_code":"en_us",
6071 "string":"IP"
6072 },
6073 {
6074 "language_code":"es_es",
6075 "string":"IP"
6076 }
6077 ]
6078 },
6079 {
6080 "column":"Watched_Value1",
6081 "mapped_to_column":"Info",
6082 "css_classes":"col-sm-2",
6083 "show":true,
6084 "type":"label",
6085 "default_value":"",
6086 "options":[
6087
6088 ],
6089 "localized":[
6090 "name"
6091 ],
6092 "name":[
6093 {
6094 "language_code":"en_us",
6095 "string":"Info"
6096 },
6097 {
6098 "language_code":"es_es",
6099 "string":"Info"
6100 }
6101 ]
6102 },
6103 {
6104 "column":"Watched_Value2",
6105 "mapped_to_column":"Record_Type",
6106 "css_classes":"col-sm-2",
6107 "show":true,
6108 "type":"label",
6109 "default_value":"",
6110 "options":[
6111
6112 ],
6113 "localized":[
6114 "name"
6115 ],
6116 "name":[
6117 {
6118 "language_code":"en_us",
6119 "string":"Type"
6120 },
6121 {
6122 "language_code":"es_es",
6123 "string":"Tipo"
6124 }
6125 ]
6126 },
6127 {
6128 "column":"Watched_Value3",
6129 "mapped_to_column":"Value",
6130 "css_classes":"col-sm-2",
6131 "show":true,
6132 "type":"label",
6133 "default_value":"",
6134 "options":[
6135
6136 ],
6137 "localized":[
6138 "name"
6139 ],
6140 "name":[
6141 {
6142 "language_code":"en_us",
6143 "string":"Info"
6144 },
6145 {
6146 "language_code":"es_es",
6147 "string":"Info"
6148 }
6149 ]
6150 },
6151 {
6152 "column":"DateTimeCreated",
6153 "mapped_to_column":"Time",
6154 "css_classes":"col-sm-2",
6155 "show":true,
6156 "type":"label",
6157 "default_value":"",
6158 "options":[
6159
6160 ],
6161 "localized":[
6162 "name"
6163 ],
6164 "name":[
6165 {
6166 "language_code":"en_us",
6167 "string":"Created"
6168 },
6169 {
6170 "language_code":"es_es",
6171 "string":"Creado"
6172 }
6173 ]
6174 },
6175 {
6176 "column":"DateTimeChanged",
6177 "css_classes":"col-sm-2",
6178 "show":true,
6179 "type":"label",
6180 "default_value":"",
6181 "options":[
6182
6183 ],
6184 "localized":[
6185 "name"
6186 ],
6187 "name":[
6188 {
6189 "language_code":"en_us",
6190 "string":"Changed"
6191 },
6192 {
6193 "language_code":"es_es",
6194 "string":"Cambiado"
6195 }
6196 ]
6197 },
6198 {
6199 "column":"Status",
6200 "css_classes":"col-sm-1",
6201 "show":true,
6202 "type":"replace",
6203 "default_value":"",
6204 "options":[
6205 {
6206 "equals":"watched-not-changed",
6207 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
6208 },
6209 {
6210 "equals":"watched-changed",
6211 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
6212 },
6213 {
6214 "equals":"new",
6215 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
6216 },
6217 {
6218 "equals":"missing-in-last-scan",
6219 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
6220 }
6221 ],
6222 "localized":[
6223 "name"
6224 ],
6225 "name":[
6226 {
6227 "language_code":"en_us",
6228 "string":"Status"
6229 },
6230 {
6231 "language_code":"es_es",
6232 "string":"Estado"
6233 }
6234 ]
6235 }
6236 ]
6237 },
6238 {
6239 "code_name":"set_password",
6240 "template_type":"database-entry",
6241 "unique_prefix":"SETPWD",
6242 "plugin_type":"system",
6243 "enabled":true,
6244 "data_source":"template",
6245 "show_ui":false,
6246 "localized":[
6247 "display_name",
6248 "description",
6249 "icon"
6250 ],
6251 "display_name":[
6252 {
6253 "language_code":"en_us",
6254 "string":"Set password"
6255 },
6256 {
6257 "language_code":"es_es",
6258 "string":"Establecer contraseña"
6259 }
6260 ],
6261 "description":[
6262 {
6263 "language_code":"en_us",
6264 "string":"A simple plugin to set the web ui password on app start."
6265 },
6266 {
6267 "language_code":"es_es",
6268 "string":"Un complemento simple para configurar la contraseña de la interfaz de usuario web al iniciar la aplicación."
6269 }
6270 ],
6271 "icon":[
6272 {
6273 "language_code":"en_us",
6274 "string":"<i class=\"fa fa-lock\"><\/i>"
6275 },
6276 {
6277 "language_code":"es_es",
6278 "string":"<i class=\"fa fa-lock\"><\/i>"
6279 }
6280 ],
6281 "params":[
6282 {
6283 "name":"password",
6284 "type":"setting",
6285 "value":"SETPWD_password"
6286 }
6287 ],
6288 "settings":[
6289 {
6290 "function":"enable_password",
6291 "type":{
6292 "dataType":"boolean",
6293 "elements":[
6294 {
6295 "elementType":"input",
6296 "elementOptions":[
6297 {
6298 "type":"checkbox"
6299 }
6300 ],
6301 "transformers":[
6302
6303 ]
6304 }
6305 ]
6306 },
6307 "default_value":false,
6308 "options":[
6309
6310 ],
6311 "localized":[
6312 "name",
6313 "description"
6314 ],
6315 "name":[
6316 {
6317 "language_code":"en_us",
6318 "string":"Enable login"
6319 }
6320 ],
6321 "description":[
6322 {
6323 "language_code":"en_us",
6324 "string":"When enabled a login dialog is displayed. If facing issues, you can always disable the login by setting <code>SETPWD_enable_password=False<\/code> in your <code>app.conf<\/code> file."
6325 }
6326 ],
6327 "value":false
6328 },
6329 {
6330 "function":"password",
6331 "type":{
6332 "dataType":"string",
6333 "elements":[
6334 {
6335 "elementType":"input",
6336 "elementOptions":[
6337 {
6338 "type":"password"
6339 }
6340 ],
6341 "transformers":[
6342 "sha256"
6343 ]
6344 }
6345 ]
6346 },
6347 "maxLength":50,
6348 "default_value":"123456",
6349 "options":[
6350
6351 ],
6352 "localized":[
6353 "name",
6354 "description"
6355 ],
6356 "name":[
6357 {
6358 "language_code":"en_us",
6359 "string":"Password"
6360 },
6361 {
6362 "language_code":"es_es",
6363 "string":"Contraseña"
6364 }
6365 ],
6366 "description":[
6367 {
6368 "language_code":"en_us",
6369 "string":"The default password is <code>123456<\/code>."
6370 }
6371 ],
6372 "value":"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"
6373 }
6374 ]
6375 },
6376 {
6377 "code_name":"sync",
6378 "unique_prefix":"SYNC",
6379 "plugin_type":"system",
6380 "enabled":true,
6381 "data_source":"script",
6382 "mapped_to_table":"CurrentScan",
6383 "data_filters":[
6384 {
6385 "compare_column":"Object_PrimaryID",
6386 "compare_operator":"==",
6387 "compare_field_id":"txtMacFilter",
6388 "compare_js_template":"'{value}'.toString()",
6389 "compare_use_quotes":true
6390 }
6391 ],
6392 "show_ui":true,
6393 "localized":[
6394 "display_name",
6395 "description",
6396 "icon"
6397 ],
6398 "display_name":[
6399 {
6400 "language_code":"en_us",
6401 "string":"Sync Hub"
6402 }
6403 ],
6404 "description":[
6405 {
6406 "language_code":"en_us",
6407 "string":"Plugin to synchronize multiple NetAlertX instances."
6408 }
6409 ],
6410 "icon":[
6411 {
6412 "language_code":"en_us",
6413 "string":"<i class=\"fa fa-group-arrows-rotate\"><\/i>"
6414 }
6415 ],
6416 "params":[
6417
6418 ],
6419 "settings":[
6420 {
6421 "function":"RUN",
6422 "events":[
6423 "run"
6424 ],
6425 "type":{
6426 "dataType":"string",
6427 "elements":[
6428 {
6429 "elementType":"select",
6430 "elementOptions":[
6431
6432 ],
6433 "transformers":[
6434
6435 ]
6436 }
6437 ]
6438 },
6439 "default_value":"disabled",
6440 "options":[
6441 "disabled",
6442 "once",
6443 "schedule",
6444 "always_after_scan",
6445 "on_new_device",
6446 "on_notification"
6447 ],
6448 "localized":[
6449 "name",
6450 "description"
6451 ],
6452 "name":[
6453 {
6454 "language_code":"en_us",
6455 "string":"When to run [n,h]"
6456 },
6457 {
6458 "language_code":"es_es",
6459 "string":"Cuándo ejecutar [n,h]"
6460 },
6461 {
6462 "language_code":"de_de",
6463 "string":"Wann laufen [n,h]"
6464 }
6465 ],
6466 "description":[
6467 {
6468 "language_code":"en_us",
6469 "string":"When the sync should run. Data might be lost if you run the sync less frequently. Good options are <code>always_after_scan<\/code>, <code>on_new_device<\/code>, <code>on_notification<\/code>"
6470 }
6471 ],
6472 "value":"disabled"
6473 },
6474 {
6475 "function":"RUN_SCHD",
6476 "type":{
6477 "dataType":"string",
6478 "elements":[
6479 {
6480 "elementType":"input",
6481 "elementOptions":[
6482
6483 ],
6484 "transformers":[
6485
6486 ]
6487 }
6488 ]
6489 },
6490 "default_value":"*/5 * * * *",
6491 "options":[
6492
6493 ],
6494 "localized":[
6495 "name",
6496 "description"
6497 ],
6498 "name":[
6499 {
6500 "language_code":"en_us",
6501 "string":"Schedule [n,h]"
6502 }
6503 ],
6504 "description":[
6505 {
6506 "language_code":"en_us",
6507 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#SYNC_RUN\"><code>SYNC_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
6508 },
6509 {
6510 "language_code":"es_es",
6511 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#SYNC_RUN\"><code>SYNC_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
6512 },
6513 {
6514 "language_code":"de_de",
6515 "string":"Nur aktiviert, wenn Sie <code>schedule<\/code> in der <a href=\"#SYNC_RUN\"><code>SYNC_RUN<\/code>-Einstellung<\/a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Wenn Sie beispielsweise <code>0 4 * * *<\/code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ ausgeführt. Code> den Sie oben festgelegt haben<\/a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
6516 }
6517 ],
6518 "value":"*/5 * * * *"
6519 },
6520 {
6521 "function":"api_token",
6522 "type":{
6523 "dataType":"string",
6524 "elements":[
6525 {
6526 "elementType":"input",
6527 "elementOptions":[
6528
6529 ],
6530 "transformers":[
6531
6532 ]
6533 }
6534 ]
6535 },
6536 "maxLength":50,
6537 "default_value":"",
6538 "options":[
6539
6540 ],
6541 "localized":[
6542 "name",
6543 "description"
6544 ],
6545 "name":[
6546 {
6547 "language_code":"en_us",
6548 "string":"API token [n,h]"
6549 }
6550 ],
6551 "description":[
6552 {
6553 "language_code":"en_us",
6554 "string":"API token to secure communication. It's sent in the request header. The API token needs to be the same on the hub and on the nodes."
6555 }
6556 ],
6557 "value":""
6558 },
6559 {
6560 "function":"encryption_key",
6561 "type":{
6562 "dataType":"string",
6563 "elements":[
6564 {
6565 "elementType":"input",
6566 "elementOptions":[
6567
6568 ],
6569 "transformers":[
6570
6571 ]
6572 }
6573 ]
6574 },
6575 "maxLength":50,
6576 "default_value":"",
6577 "options":[
6578
6579 ],
6580 "localized":[
6581 "name",
6582 "description"
6583 ],
6584 "name":[
6585 {
6586 "language_code":"en_us",
6587 "string":"Encryption Key [n,h]"
6588 }
6589 ],
6590 "description":[
6591 {
6592 "language_code":"en_us",
6593 "string":"Encryption key used to encrypt the data before sending and for decryption on the hub. The key needs to be the same on the hub and on the nodes."
6594 }
6595 ],
6596 "value":""
6597 },
6598 {
6599 "function":"hub_url",
6600 "type":{
6601 "dataType":"string",
6602 "elements":[
6603 {
6604 "elementType":"input",
6605 "elementOptions":[
6606
6607 ],
6608 "transformers":[
6609
6610 ]
6611 }
6612 ]
6613 },
6614 "maxLength":50,
6615 "default_value":"",
6616 "options":[
6617
6618 ],
6619 "localized":[
6620 "name",
6621 "description"
6622 ],
6623 "name":[
6624 {
6625 "language_code":"en_us",
6626 "string":"Hub URL [n]"
6627 }
6628 ],
6629 "description":[
6630 {
6631 "language_code":"en_us",
6632 "string":"The URL of the hub (target instance). Set on the Node. Without a trailig slash, for example <code>http://192.168.1.82:20211<\/code>"
6633 }
6634 ],
6635 "value":""
6636 },
6637 {
6638 "function":"node_name",
6639 "type":{
6640 "dataType":"string",
6641 "elements":[
6642 {
6643 "elementType":"input",
6644 "elementOptions":[
6645
6646 ],
6647 "transformers":[
6648
6649 ]
6650 }
6651 ]
6652 },
6653 "maxLength":50,
6654 "default_value":"",
6655 "options":[
6656
6657 ],
6658 "localized":[
6659 "name",
6660 "description"
6661 ],
6662 "name":[
6663 {
6664 "language_code":"en_us",
6665 "string":"Node name [n]"
6666 }
6667 ],
6668 "description":[
6669 {
6670 "language_code":"en_us",
6671 "string":"Use a unique node name, without spaces or special characters, such as <code>Node_Vlan01<\/code>"
6672 }
6673 ],
6674 "value":""
6675 },
6676 {
6677 "function":"devices",
6678 "type":{
6679 "dataType":"boolean",
6680 "elements":[
6681 {
6682 "elementType":"input",
6683 "elementOptions":[
6684 {
6685 "type":"checkbox"
6686 }
6687 ],
6688 "transformers":[
6689
6690 ]
6691 }
6692 ]
6693 },
6694 "default_value":false,
6695 "options":[
6696
6697 ],
6698 "localized":[
6699 "name",
6700 "description"
6701 ],
6702 "name":[
6703 {
6704 "language_code":"en_us",
6705 "string":"Sync Devices [n]"
6706 }
6707 ],
6708 "description":[
6709 {
6710 "language_code":"en_us",
6711 "string":"When enabled the whole Devices table is sent over. Only new devices with new MACs are inserted in the target hub."
6712 }
6713 ],
6714 "value":false
6715 },
6716 {
6717 "function":"plugins",
6718 "type":{
6719 "dataType":"array",
6720 "elements":[
6721 {
6722 "elementType":"select",
6723 "elementOptions":[
6724 {
6725 "multiple":"true"
6726 }
6727 ],
6728 "transformers":[
6729
6730 ]
6731 }
6732 ]
6733 },
6734 "maxLength":50,
6735 "default_value":[
6736
6737 ],
6738 "options":[
6739 "{value}"
6740 ],
6741 "options_params":[
6742 {
6743 "name":"value",
6744 "type":"setting",
6745 "value":"LOADED_PLUGINS"
6746 }
6747 ],
6748 "localized":[
6749 "name",
6750 "description"
6751 ],
6752 "name":[
6753 {
6754 "language_code":"en_us",
6755 "string":"Sync Plugins [n]"
6756 }
6757 ],
6758 "description":[
6759 {
6760 "language_code":"en_us",
6761 "string":"Plugins to synchronize. Only plugins that produce some kind of output in <code>last_result.log<\/code> can be synchronized."
6762 }
6763 ],
6764 "value":[
6765
6766 ]
6767 },
6768 {
6769 "function":"CMD",
6770 "type":{
6771 "dataType":"string",
6772 "elements":[
6773 {
6774 "elementType":"input",
6775 "elementOptions":[
6776 {
6777 "readonly":"true"
6778 }
6779 ],
6780 "transformers":[
6781
6782 ]
6783 }
6784 ]
6785 },
6786 "default_value":"python3 /app/front/plugins/sync/sync.py",
6787 "options":[
6788
6789 ],
6790 "localized":[
6791 "name",
6792 "description"
6793 ],
6794 "name":[
6795 {
6796 "language_code":"en_us",
6797 "string":"Command"
6798 },
6799 {
6800 "language_code":"es_es",
6801 "string":"Comando"
6802 },
6803 {
6804 "language_code":"de_de",
6805 "string":"Befehl"
6806 }
6807 ],
6808 "description":[
6809 {
6810 "language_code":"en_us",
6811 "string":"Command to run. This can not be changed"
6812 },
6813 {
6814 "language_code":"es_es",
6815 "string":"Comando a ejecutar. Esto no se puede cambiar"
6816 },
6817 {
6818 "language_code":"de_de",
6819 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
6820 }
6821 ],
6822 "value":"python3 /app/front/plugins/sync/sync.py"
6823 },
6824 {
6825 "function":"RUN_TIMEOUT",
6826 "type":{
6827 "dataType":"integer",
6828 "elements":[
6829 {
6830 "elementType":"input",
6831 "elementOptions":[
6832 {
6833 "type":"number"
6834 }
6835 ],
6836 "transformers":[
6837
6838 ]
6839 }
6840 ]
6841 },
6842 "default_value":30,
6843 "options":[
6844
6845 ],
6846 "localized":[
6847 "name",
6848 "description"
6849 ],
6850 "name":[
6851 {
6852 "language_code":"en_us",
6853 "string":"Run timeout"
6854 },
6855 {
6856 "language_code":"es_es",
6857 "string":"Tiempo límite de ejecución"
6858 },
6859 {
6860 "language_code":"de_de",
6861 "string":"Zeitüberschreitung"
6862 }
6863 ],
6864 "description":[
6865 {
6866 "language_code":"en_us",
6867 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
6868 },
6869 {
6870 "language_code":"es_es",
6871 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
6872 },
6873 {
6874 "language_code":"de_de",
6875 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
6876 }
6877 ],
6878 "value":30
6879 }
6880 ],
6881 "database_column_definitions":[
6882 {
6883 "column":"Object_PrimaryID",
6884 "mapped_to_column":"cur_MAC",
6885 "css_classes":"col-sm-2",
6886 "show":true,
6887 "type":"device_name_mac",
6888 "default_value":"",
6889 "options":[
6890
6891 ],
6892 "localized":[
6893 "name"
6894 ],
6895 "name":[
6896 {
6897 "language_code":"en_us",
6898 "string":"MAC"
6899 },
6900 {
6901 "language_code":"es_es",
6902 "string":"MAC"
6903 },
6904 {
6905 "language_code":"de_de",
6906 "string":"MAC"
6907 }
6908 ]
6909 },
6910 {
6911 "column":"Object_SecondaryID",
6912 "mapped_to_column":"cur_IP",
6913 "css_classes":"col-sm-2",
6914 "show":true,
6915 "type":"device_ip",
6916 "default_value":"",
6917 "options":[
6918
6919 ],
6920 "localized":[
6921 "name"
6922 ],
6923 "name":[
6924 {
6925 "language_code":"en_us",
6926 "string":"IP"
6927 },
6928 {
6929 "language_code":"es_es",
6930 "string":"IP"
6931 },
6932 {
6933 "language_code":"de_de",
6934 "string":"IP"
6935 }
6936 ]
6937 },
6938 {
6939 "column":"Watched_Value1",
6940 "mapped_to_column":"cur_Name",
6941 "css_classes":"col-sm-2",
6942 "show":true,
6943 "type":"label",
6944 "default_value":"",
6945 "options":[
6946
6947 ],
6948 "localized":[
6949 "name"
6950 ],
6951 "name":[
6952 {
6953 "language_code":"en_us",
6954 "string":"Name"
6955 }
6956 ]
6957 },
6958 {
6959 "column":"Watched_Value2",
6960 "mapped_to_column":"cur_Vendor",
6961 "css_classes":"col-sm-2",
6962 "show":true,
6963 "type":"label",
6964 "default_value":"",
6965 "options":[
6966
6967 ],
6968 "localized":[
6969 "name"
6970 ],
6971 "name":[
6972 {
6973 "language_code":"en_us",
6974 "string":"Vendor"
6975 }
6976 ]
6977 },
6978 {
6979 "column":"Watched_Value3",
6980 "mapped_to_column":"cur_SyncHubNodeName",
6981 "css_classes":"col-sm-2",
6982 "show":true,
6983 "type":"label",
6984 "default_value":"",
6985 "options":[
6986
6987 ],
6988 "localized":[
6989 "name"
6990 ],
6991 "name":[
6992 {
6993 "language_code":"en_us",
6994 "string":"Sync Node"
6995 }
6996 ]
6997 },
6998 {
6999 "column":"Watched_Value4",
7000 "css_classes":"col-sm-2",
7001 "show":true,
7002 "type":"label",
7003 "default_value":"",
7004 "options":[
7005
7006 ],
7007 "localized":[
7008 "name"
7009 ],
7010 "name":[
7011 {
7012 "language_code":"en_us",
7013 "string":"Device GUID"
7014 }
7015 ]
7016 },
7017 {
7018 "column":"Dummy",
7019 "mapped_to_column":"cur_ScanMethod",
7020 "mapped_to_column_data":{
7021 "value":"sync"
7022 },
7023 "css_classes":"col-sm-2",
7024 "show":true,
7025 "type":"label",
7026 "default_value":"",
7027 "options":[
7028
7029 ],
7030 "localized":[
7031 "name"
7032 ],
7033 "name":[
7034 {
7035 "language_code":"en_us",
7036 "string":"Scan method"
7037 },
7038 {
7039 "language_code":"es_es",
7040 "string":"Método de escaneo"
7041 },
7042 {
7043 "language_code":"de_de",
7044 "string":"Scanmethode"
7045 }
7046 ]
7047 },
7048 {
7049 "column":"DateTimeCreated",
7050 "css_classes":"col-sm-2",
7051 "show":true,
7052 "type":"label",
7053 "default_value":"",
7054 "options":[
7055
7056 ],
7057 "localized":[
7058 "name"
7059 ],
7060 "name":[
7061 {
7062 "language_code":"en_us",
7063 "string":"Created"
7064 },
7065 {
7066 "language_code":"es_es",
7067 "string":"Creado"
7068 },
7069 {
7070 "language_code":"de_de",
7071 "string":"Erstellt"
7072 }
7073 ]
7074 },
7075 {
7076 "column":"DateTimeChanged",
7077 "css_classes":"col-sm-2",
7078 "show":true,
7079 "type":"label",
7080 "default_value":"",
7081 "options":[
7082
7083 ],
7084 "localized":[
7085 "name"
7086 ],
7087 "name":[
7088 {
7089 "language_code":"en_us",
7090 "string":"Changed"
7091 },
7092 {
7093 "language_code":"es_es",
7094 "string":"Cambiado"
7095 },
7096 {
7097 "language_code":"de_de",
7098 "string":"Geändert"
7099 }
7100 ]
7101 },
7102 {
7103 "column":"Status",
7104 "css_classes":"col-sm-1",
7105 "show":true,
7106 "type":"replace",
7107 "default_value":"",
7108 "options":[
7109 {
7110 "equals":"watched-not-changed",
7111 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
7112 },
7113 {
7114 "equals":"watched-changed",
7115 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
7116 },
7117 {
7118 "equals":"new",
7119 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
7120 },
7121 {
7122 "equals":"missing-in-last-scan",
7123 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
7124 }
7125 ],
7126 "localized":[
7127 "name"
7128 ],
7129 "name":[
7130 {
7131 "language_code":"en_us",
7132 "string":"Status"
7133 },
7134 {
7135 "language_code":"es_es",
7136 "string":"Estado"
7137 },
7138 {
7139 "language_code":"de_de",
7140 "string":"Status"
7141 }
7142 ]
7143 }
7144 ]
7145 },
7146 {
7147 "code_name":"ui_settings",
7148 "unique_prefix":"UI",
7149 "plugin_type":"core",
7150 "enabled":true,
7151 "data_source":"template",
7152 "show_ui":false,
7153 "localized":[
7154 "display_name",
7155 "description",
7156 "icon"
7157 ],
7158 "display_name":[
7159 {
7160 "language_code":"en_us",
7161 "string":"UI settings"
7162 }
7163 ],
7164 "description":[
7165 {
7166 "language_code":"en_us",
7167 "string":"Plugin to adjust UI settings."
7168 }
7169 ],
7170 "icon":[
7171 {
7172 "language_code":"en_us",
7173 "string":"<i class=\"fa fa-paint-roller\"><\/i>"
7174 }
7175 ],
7176 "params":[
7177
7178 ],
7179 "settings":[
7180 {
7181 "function":"shown_cards",
7182 "type":{
7183 "dataType":"array",
7184 "elements":[
7185 {
7186 "elementType":"select",
7187 "elementOptions":[
7188 {
7189 "multiple":"true"
7190 }
7191 ],
7192 "transformers":[
7193
7194 ]
7195 }
7196 ]
7197 },
7198 "maxLength":50,
7199 "default_value":[
7200 "my_devices",
7201 "connected",
7202 "favorites",
7203 "new",
7204 "down",
7205 "archived"
7206 ],
7207 "options":[
7208 "my_devices",
7209 "connected",
7210 "favorites",
7211 "new",
7212 "down",
7213 "archived",
7214 "offline",
7215 "all"
7216 ],
7217 "localized":[
7218 "name",
7219 "description"
7220 ],
7221 "name":[
7222 {
7223 "language_code":"en_us",
7224 "string":"Tiles to Show"
7225 }
7226 ],
7227 "description":[
7228 {
7229 "language_code":"en_us",
7230 "string":"Which tiles to show on teh top of the Devices page."
7231 }
7232 ],
7233 "value":[
7234 "my_devices",
7235 "connected",
7236 "favorites",
7237 "new",
7238 "down",
7239 "archived"
7240 ]
7241 },
7242 {
7243 "function":"hide_empty",
7244 "type":{
7245 "dataType":"boolean",
7246 "elements":[
7247 {
7248 "elementType":"input",
7249 "elementOptions":[
7250 {
7251 "type":"checkbox"
7252 }
7253 ],
7254 "transformers":[
7255
7256 ]
7257 }
7258 ]
7259 },
7260 "default_value":false,
7261 "options":[
7262
7263 ],
7264 "localized":[
7265 "name",
7266 "description"
7267 ],
7268 "name":[
7269 {
7270 "language_code":"en_us",
7271 "string":"Hide empty tiles"
7272 }
7273 ],
7274 "description":[
7275 {
7276 "language_code":"en_us",
7277 "string":"Hide Device tiles with zero results."
7278 }
7279 ],
7280 "value":false
7281 }
7282 ]
7283 },
7284 {
7285 "code_name":"vendor_update",
7286 "unique_prefix":"VNDRPDT",
7287 "plugin_type":"system",
7288 "enabled":true,
7289 "data_source":"script",
7290 "show_ui":true,
7291 "localized":[
7292 "display_name",
7293 "description",
7294 "icon"
7295 ],
7296 "display_name":[
7297 {
7298 "language_code":"en_us",
7299 "string":"Vendor update"
7300 },
7301 {
7302 "language_code":"de_de",
7303 "string":"Hersteller Update"
7304 }
7305 ],
7306 "icon":[
7307 {
7308 "language_code":"en_us",
7309 "string":"<i class=\"fa-solid fa-landmark-flag\"><\/i>"
7310 },
7311 {
7312 "language_code":"de_de",
7313 "string":"<i class=\"fa-solid fa-landmark-flag\"><\/i>"
7314 }
7315 ],
7316 "description":[
7317 {
7318 "language_code":"en_us",
7319 "string":"A plugin to schedule vendor database updates for mac based vendor resolution."
7320 },
7321 {
7322 "language_code":"de_de",
7323 "string":"Ein Plugin zum Updaten der Herstellerdatenbank für MAC-basierte Herstellerauflösung."
7324 }
7325 ],
7326 "params":[
7327
7328 ],
7329 "settings":[
7330 {
7331 "function":"RUN",
7332 "events":[
7333 "run"
7334 ],
7335 "type":{
7336 "dataType":"string",
7337 "elements":[
7338 {
7339 "elementType":"select",
7340 "elementOptions":[
7341
7342 ],
7343 "transformers":[
7344
7345 ]
7346 }
7347 ]
7348 },
7349 "default_value":"schedule",
7350 "options":[
7351 "disabled",
7352 "once",
7353 "schedule",
7354 "always_after_scan"
7355 ],
7356 "localized":[
7357 "name",
7358 "description"
7359 ],
7360 "name":[
7361 {
7362 "language_code":"en_us",
7363 "string":"When to run"
7364 },
7365 {
7366 "language_code":"es_es",
7367 "string":"Cuándo ejecutar"
7368 },
7369 {
7370 "language_code":"de_de",
7371 "string":"Wann ausführen"
7372 }
7373 ],
7374 "description":[
7375 {
7376 "language_code":"en_us",
7377 "string":"When the plugin should run. An overnight weekly <code>SCHEDULE<\/code> is recommended."
7378 },
7379 {
7380 "language_code":"de_de",
7381 "string":"Wann das Plugin ausgeführt werden soll. Eine wöchentliche <code>SCHEDULE<\/code> in der Nacht wird empfohlen."
7382 }
7383 ],
7384 "value":"schedule"
7385 },
7386 {
7387 "function":"CMD",
7388 "type":{
7389 "dataType":"string",
7390 "elements":[
7391 {
7392 "elementType":"input",
7393 "elementOptions":[
7394 {
7395 "readonly":"true"
7396 }
7397 ],
7398 "transformers":[
7399
7400 ]
7401 }
7402 ]
7403 },
7404 "default_value":"python3 /app/front/plugins/vendor_update/script.py",
7405 "options":[
7406
7407 ],
7408 "localized":[
7409 "name",
7410 "description"
7411 ],
7412 "name":[
7413 {
7414 "language_code":"en_us",
7415 "string":"Command"
7416 },
7417 {
7418 "language_code":"es_es",
7419 "string":"Comando"
7420 },
7421 {
7422 "language_code":"de_de",
7423 "string":"Befehl"
7424 }
7425 ],
7426 "description":[
7427 {
7428 "language_code":"en_us",
7429 "string":"Command to run. This can not be changed"
7430 },
7431 {
7432 "language_code":"es_es",
7433 "string":"Comando a ejecutar. Esto no se puede cambiar"
7434 },
7435 {
7436 "language_code":"de_de",
7437 "string":"Befehl zum Ausführen. Dies kann nicht geändert werden"
7438 }
7439 ],
7440 "value":"python3 /app/front/plugins/vendor_update/script.py"
7441 },
7442 {
7443 "function":"RUN_SCHD",
7444 "type":{
7445 "dataType":"string",
7446 "elements":[
7447 {
7448 "elementType":"input",
7449 "elementOptions":[
7450
7451 ],
7452 "transformers":[
7453
7454 ]
7455 }
7456 ]
7457 },
7458 "default_value":"0 4 * * 3",
7459 "options":[
7460
7461 ],
7462 "localized":[
7463 "name",
7464 "description"
7465 ],
7466 "name":[
7467 {
7468 "language_code":"en_us",
7469 "string":"Schedule"
7470 },
7471 {
7472 "language_code":"es_es",
7473 "string":"Schedule"
7474 },
7475 {
7476 "language_code":"de_de",
7477 "string":"Zeitplan"
7478 }
7479 ],
7480 "description":[
7481 {
7482 "language_code":"en_us",
7483 "string":"Only enabled if you select <code>schedule<\/code> in the <a href=\"#VNDRPDT_RUN\"><code>VNDRPDT_RUN<\/code> setting<\/a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). For example entering <code>0 4 * * *<\/code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/code> you set above<\/a>. Will be run NEXT time the time passes."
7484 },
7485 {
7486 "language_code":"es_es",
7487 "string":"Solo está habilitado si selecciona <code>schedule<\/code> en la configuración <a href=\"#VNDRPDT_RUN\"><code>VNDRPDT_RUN<\/code><\/a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a>). Por ejemplo, ingresar <code>0 4 * * *<\/code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE<\/ código> que configuró arriba<\/a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
7488 },
7489 {
7490 "language_code":"de_de",
7491 "string":"Nur aktiv, wenn <code>schedule<\/code> in der <a href=\"#VNDRPDT_RUN\"><code>VNDRPDT_RUN<\/code> Einstellung<\/a> ausgewählt wurde. Sichergehen, dass das Intervall in einem korrekten cron-ähnlichen Format angegeben wurde (z.B. auf <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru<\/a> testen). <code>0 4 * * *<\/code> würde den Scan täglich um 4 Uhr in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\">oben ausgewählten <code>TIMEZONE<\/code><\/a> starten. Wird erst beim NÄCHSTEN Intervall ausgeführt. <br/>Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Geräten suchen, auf den gleichen Wert zu setzen."
7492 }
7493 ],
7494 "value":"0 4 * * 3"
7495 },
7496 {
7497 "function":"RUN_TIMEOUT",
7498 "type":{
7499 "dataType":"integer",
7500 "elements":[
7501 {
7502 "elementType":"input",
7503 "elementOptions":[
7504 {
7505 "type":"number"
7506 }
7507 ],
7508 "transformers":[
7509
7510 ]
7511 }
7512 ]
7513 },
7514 "default_value":600,
7515 "options":[
7516
7517 ],
7518 "localized":[
7519 "name",
7520 "description"
7521 ],
7522 "name":[
7523 {
7524 "language_code":"en_us",
7525 "string":"Run timeout"
7526 },
7527 {
7528 "language_code":"es_es",
7529 "string":"Tiempo límite de ejecución"
7530 },
7531 {
7532 "language_code":"de_de",
7533 "string":"Zeitüberschreitung"
7534 }
7535 ],
7536 "description":[
7537 {
7538 "language_code":"en_us",
7539 "string":"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
7540 },
7541 {
7542 "language_code":"es_es",
7543 "string":"Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
7544 },
7545 {
7546 "language_code":"de_de",
7547 "string":"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
7548 }
7549 ],
7550 "value":600
7551 },
7552 {
7553 "function":"WATCH",
7554 "type":{
7555 "dataType":"array",
7556 "elements":[
7557 {
7558 "elementType":"select",
7559 "elementOptions":[
7560 {
7561 "multiple":"true"
7562 }
7563 ],
7564 "transformers":[
7565
7566 ]
7567 }
7568 ]
7569 },
7570 "default_value":[
7571 "Watched_Value1"
7572 ],
7573 "options":[
7574 "Watched_Value1",
7575 "Watched_Value2",
7576 "Watched_Value3",
7577 "Watched_Value4"
7578 ],
7579 "localized":[
7580 "name",
7581 "description"
7582 ],
7583 "name":[
7584 {
7585 "language_code":"en_us",
7586 "string":"Watched"
7587 },
7588 {
7589 "language_code":"es_es",
7590 "string":"Visto"
7591 },
7592 {
7593 "language_code":"de_de",
7594 "string":"Überwacht"
7595 }
7596 ],
7597 "description":[
7598 {
7599 "language_code":"en_us",
7600 "string":"Send a notification if selected values change. Use <code>CTRL + Click<\/code> to select/deselect. <ul> <li><code>Watched_Value1<\/code> is vendor name<\/li><li><code>Watched_Value2<\/code> is device name<\/li><li><code>Watched_Value3<\/code> unused <\/li><li><code>Watched_Value4<\/code> unused <\/li><\/ul>"
7601 },
7602 {
7603 "language_code":"de_de",
7604 "string":"Sende eine Benachrichtigung, wenn ein ausgwählter Wert sich ändert. <code>STRG + klicken<\/code> zum aus-/abwählen. <ul> <li><code>Watched_Value1<\/code> ist der Herstellername<\/li><li><code>Watched_Value2<\/code> ist der Gerätename<\/li><li><code>Watched_Value3<\/code> ist nicht in Verwendung <\/li><li><code>Watched_Value4<\/code> ist nicht in Verwendung <\/li><\/ul>"
7605 }
7606 ],
7607 "value":[
7608 "Watched_Value1"
7609 ]
7610 },
7611 {
7612 "function":"REPORT_ON",
7613 "type":{
7614 "dataType":"array",
7615 "elements":[
7616 {
7617 "elementType":"select",
7618 "elementOptions":[
7619 {
7620 "multiple":"true"
7621 }
7622 ],
7623 "transformers":[
7624
7625 ]
7626 }
7627 ]
7628 },
7629 "default_value":[
7630 "new",
7631 "watched-changed"
7632 ],
7633 "options":[
7634 "new",
7635 "watched-changed",
7636 "watched-not-changed",
7637 "missing-in-last-scan"
7638 ],
7639 "localized":[
7640 "name",
7641 "description"
7642 ],
7643 "name":[
7644 {
7645 "language_code":"en_us",
7646 "string":"Report on"
7647 },
7648 {
7649 "language_code":"es_es",
7650 "string":"Informar sobre"
7651 },
7652 {
7653 "language_code":"de_de",
7654 "string":"Benachrichtige wenn"
7655 }
7656 ],
7657 "description":[
7658 {
7659 "language_code":"en_us",
7660 "string":"Send a notification only on these statuses. <code>new<\/code> means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. <code>watched-changed<\/code> means that selected <code>Watched_ValueN<\/code> columns changed."
7661 },
7662 {
7663 "language_code":"es_es",
7664 "string":"Envíe una notificación solo en estos estados. <code>new<\/code> significa que se descubrió un nuevo objeto único (combinación única de PrimaryId y SecondaryId). <code>watched-changed<\/code> significa que seleccionó <code>Watched_ValueN Las columnas <\/code> cambiaron."
7665 },
7666 {
7667 "language_code":"de_de",
7668 "string":"Benachrichtige nur bei diesen Status. <code>new<\/code> bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. <code>watched-changed<\/code> bedeutet eine ausgewählte <code>Watched_ValueN<\/code>-Spalte hat sich geändert."
7669 }
7670 ],
7671 "value":[
7672 "new",
7673 "watched-changed"
7674 ]
7675 }
7676 ],
7677 "database_column_definitions":[
7678 {
7679 "column":"Index",
7680 "css_classes":"col-sm-2",
7681 "show":false,
7682 "type":"label",
7683 "default_value":"",
7684 "options":[
7685
7686 ],
7687 "localized":[
7688 "name"
7689 ],
7690 "name":[
7691 {
7692 "language_code":"en_us",
7693 "string":"N/A"
7694 },
7695 {
7696 "language_code":"es_es",
7697 "string":"N/A"
7698 },
7699 {
7700 "language_code":"de_de",
7701 "string":"N/A"
7702 }
7703 ]
7704 },
7705 {
7706 "column":"Plugin",
7707 "css_classes":"col-sm-2",
7708 "show":false,
7709 "type":"label",
7710 "default_value":"",
7711 "options":[
7712
7713 ],
7714 "localized":[
7715 "name"
7716 ],
7717 "name":[
7718 {
7719 "language_code":"en_us",
7720 "string":"N/A"
7721 },
7722 {
7723 "language_code":"es_es",
7724 "string":"N/A"
7725 },
7726 {
7727 "language_code":"de_de",
7728 "string":"N/A"
7729 }
7730 ]
7731 },
7732 {
7733 "column":"Object_PrimaryID",
7734 "mapped_to_column":"cur_MAC",
7735 "css_classes":"col-sm-2",
7736 "show":true,
7737 "type":"device_mac",
7738 "default_value":"",
7739 "options":[
7740
7741 ],
7742 "localized":[
7743 "name"
7744 ],
7745 "name":[
7746 {
7747 "language_code":"en_us",
7748 "string":"MAC address"
7749 },
7750 {
7751 "language_code":"es_es",
7752 "string":"Dirección MAC"
7753 },
7754 {
7755 "language_code":"de_de",
7756 "string":"MAC-Adresse"
7757 }
7758 ]
7759 },
7760 {
7761 "column":"Object_SecondaryID",
7762 "mapped_to_column":"cur_IP",
7763 "css_classes":"col-sm-2",
7764 "show":true,
7765 "type":"device_ip",
7766 "default_value":"",
7767 "options":[
7768
7769 ],
7770 "localized":[
7771 "name"
7772 ],
7773 "name":[
7774 {
7775 "language_code":"en_us",
7776 "string":"IP"
7777 },
7778 {
7779 "language_code":"es_es",
7780 "string":"IP"
7781 },
7782 {
7783 "language_code":"de_de",
7784 "string":"IP"
7785 }
7786 ]
7787 },
7788 {
7789 "column":"DateTimeCreated",
7790 "css_classes":"col-sm-2",
7791 "show":true,
7792 "type":"label",
7793 "default_value":"",
7794 "options":[
7795
7796 ],
7797 "localized":[
7798 "name"
7799 ],
7800 "name":[
7801 {
7802 "language_code":"en_us",
7803 "string":"Created"
7804 },
7805 {
7806 "language_code":"es_es",
7807 "string":"Creado"
7808 },
7809 {
7810 "language_code":"de_de",
7811 "string":"Erstellt"
7812 }
7813 ]
7814 },
7815 {
7816 "column":"DateTimeChanged",
7817 "mapped_to_column":"cur_DateTime",
7818 "css_classes":"col-sm-2",
7819 "show":true,
7820 "type":"label",
7821 "default_value":"",
7822 "options":[
7823
7824 ],
7825 "localized":[
7826 "name"
7827 ],
7828 "name":[
7829 {
7830 "language_code":"en_us",
7831 "string":"Changed"
7832 },
7833 {
7834 "language_code":"es_es",
7835 "string":"Cambiado"
7836 },
7837 {
7838 "language_code":"de_de",
7839 "string":"Geändert"
7840 }
7841 ]
7842 },
7843 {
7844 "column":"Dummy",
7845 "mapped_to_column":"cur_ScanMethod",
7846 "mapped_to_column_data":{
7847 "value":"VNDRPDT"
7848 },
7849 "css_classes":"col-sm-2",
7850 "show":true,
7851 "type":"label",
7852 "default_value":"",
7853 "options":[
7854
7855 ],
7856 "localized":[
7857 "name"
7858 ],
7859 "name":[
7860 {
7861 "language_code":"en_us",
7862 "string":"Scan method"
7863 },
7864 {
7865 "language_code":"es_es",
7866 "string":"Método de escaneo"
7867 },
7868 {
7869 "language_code":"de_de",
7870 "string":"Scanmethode"
7871 }
7872 ]
7873 },
7874 {
7875 "column":"Watched_Value1",
7876 "mapped_to_column":"cur_Vendor",
7877 "css_classes":"col-sm-2",
7878 "show":true,
7879 "type":"label",
7880 "default_value":"",
7881 "options":[
7882
7883 ],
7884 "localized":[
7885 "name"
7886 ],
7887 "name":[
7888 {
7889 "language_code":"en_us",
7890 "string":"Vendor"
7891 },
7892 {
7893 "language_code":"de_de",
7894 "string":"Hersteller"
7895 }
7896 ]
7897 },
7898 {
7899 "column":"Watched_Value2",
7900 "mapped_to_column":"cur_Name",
7901 "css_classes":"col-sm-2",
7902 "show":true,
7903 "type":"label",
7904 "default_value":"",
7905 "options":[
7906
7907 ],
7908 "localized":[
7909 "name"
7910 ],
7911 "name":[
7912 {
7913 "language_code":"en_us",
7914 "string":"Hostname"
7915 },
7916 {
7917 "language_code":"es_es",
7918 "string":"Nombre de host"
7919 },
7920 {
7921 "language_code":"de_de",
7922 "string":"Hostname"
7923 }
7924 ]
7925 },
7926 {
7927 "column":"Watched_Value3",
7928 "css_classes":"col-sm-2",
7929 "show":false,
7930 "type":"label",
7931 "default_value":"",
7932 "options":[
7933
7934 ],
7935 "localized":[
7936 "name"
7937 ],
7938 "name":[
7939 {
7940 "language_code":"en_us",
7941 "string":"N/A"
7942 },
7943 {
7944 "language_code":"de_de",
7945 "string":"N/A"
7946 }
7947 ]
7948 },
7949 {
7950 "column":"Watched_Value4",
7951 "css_classes":"col-sm-2",
7952 "show":false,
7953 "type":"label",
7954 "default_value":"",
7955 "options":[
7956
7957 ],
7958 "localized":[
7959 "name"
7960 ],
7961 "name":[
7962 {
7963 "language_code":"en_us",
7964 "string":"N/A"
7965 },
7966 {
7967 "language_code":"de_de",
7968 "string":"N/A"
7969 }
7970 ]
7971 },
7972 {
7973 "column":"UserData",
7974 "css_classes":"col-sm-2",
7975 "show":false,
7976 "type":"textbox_save",
7977 "default_value":"",
7978 "options":[
7979
7980 ],
7981 "localized":[
7982 "name"
7983 ],
7984 "name":[
7985 {
7986 "language_code":"en_us",
7987 "string":"Comments"
7988 },
7989 {
7990 "language_code":"es_es",
7991 "string":"Comentarios"
7992 },
7993 {
7994 "language_code":"de_de",
7995 "string":"Kommentare"
7996 }
7997 ]
7998 },
7999 {
8000 "column":"Extra",
8001 "css_classes":"col-sm-3",
8002 "show":false,
8003 "type":"label",
8004 "default_value":"",
8005 "options":[
8006
8007 ],
8008 "localized":[
8009 "name"
8010 ],
8011 "name":[
8012 {
8013 "language_code":"en_us",
8014 "string":"N/A"
8015 },
8016 {
8017 "language_code":"de_de",
8018 "string":"N/A"
8019 }
8020 ]
8021 },
8022 {
8023 "column":"Status",
8024 "css_classes":"col-sm-1",
8025 "show":true,
8026 "type":"replace",
8027 "default_value":"",
8028 "options":[
8029 {
8030 "equals":"watched-not-changed",
8031 "replacement":"<div style='text-align:center'><i class='fa-solid fa-square-check'><\/i><div><\/div>"
8032 },
8033 {
8034 "equals":"watched-changed",
8035 "replacement":"<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'><\/i><\/div>"
8036 },
8037 {
8038 "equals":"new",
8039 "replacement":"<div style='text-align:center'><i class='fa-solid fa-circle-plus'><\/i><\/div>"
8040 },
8041 {
8042 "equals":"missing-in-last-scan",
8043 "replacement":"<div style='text-align:center'><i class='fa-solid fa-question'><\/i><\/div>"
8044 }
8045 ],
8046 "localized":[
8047 "name"
8048 ],
8049 "name":[
8050 {
8051 "language_code":"en_us",
8052 "string":"Status"
8053 },
8054 {
8055 "language_code":"es_es",
8056 "string":"Estado"
8057 },
8058 {
8059 "language_code":"de_de",
8060 "string":"Status"
8061 }
8062 ]
8063 }
8064 ]
8065 },
8066 {
8067 "code_name":"workflows",
8068 "unique_prefix":"WORKFLOWS",
8069 "plugin_type":"system",
8070 "enabled":true,
8071 "data_source":"script",
8072 "show_ui":false,
8073 "localized":[
8074 "display_name",
8075 "description",
8076 "icon"
8077 ],
8078 "display_name":[
8079 {
8080 "language_code":"en_us",
8081 "string":"Workflows"
8082 }
8083 ],
8084 "icon":[
8085 {
8086 "language_code":"en_us",
8087 "string":"<i class=\"fa-solid fa-shuffle\"><\/i>"
8088 }
8089 ],
8090 "description":[
8091 {
8092 "language_code":"en_us",
8093 "string":"A plugin to adjust behavior of workflows."
8094 }
8095 ],
8096 "params":[
8097
8098 ],
8099 "settings":[
8100 {
8101 "function":"AppEvents_hist",
8102 "type":{
8103 "dataType":"integer",
8104 "elements":[
8105 {
8106 "elementType":"input",
8107 "elementOptions":[
8108 {
8109 "type":"number"
8110 }
8111 ],
8112 "transformers":[
8113
8114 ]
8115 }
8116 ]
8117 },
8118 "default_value":5000,
8119 "options":[
8120
8121 ],
8122 "localized":[
8123 "name",
8124 "description"
8125 ],
8126 "name":[
8127 {
8128 "language_code":"en_us",
8129 "string":"App Events History"
8130 }
8131 ],
8132 "description":[
8133 {
8134 "language_code":"en_us",
8135 "string":"How many historical entries of Application Events should be kept. This influences how many entries are also available in the Workflows section in the UI."
8136 }
8137 ],
8138 "value":5000
8139 }
8140 ],
8141 "database_column_definitions":[
8142
8143 ]
8144 }
8145 ]
8146}