{ "code_name": "sync", "unique_prefix": "SYNC", "plugin_type": "system", "enabled": true, "data_source": "script", "mapped_to_table": "CurrentScan", "data_filters": [ { "compare_column": "Object_PrimaryID", "compare_operator": "==", "compare_field_id": "txtMacFilter", "compare_js_template": "'{value}'.toString()", "compare_use_quotes": true } ], "show_ui": true, "localized": ["display_name", "description", "icon"], "display_name": [ { "language_code": "en_us", "string": "Sync Hub" } ], "description": [ { "language_code": "en_us", "string": "Plugin to synchronize multiple NetAlertX instances." } ], "icon": [ { "language_code": "en_us", "string": "" } ], "params": [], "settings": [ { "function": "RUN", "events": ["run"], "type": { "dataType": "string", "elements": [ { "elementType": "select", "elementOptions": [], "transformers": [] } ] }, "default_value": "unused", "options": [ "unused", "once", "schedule", "always_after_scan", "on_new_device", "on_notification" ], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "When to run [n,h]" }, { "language_code": "es_es", "string": "Cuándo ejecutar [n,h]" }, { "language_code": "de_de", "string": "Wann laufen [n,h]" } ], "description": [ { "language_code": "en_us", "string": "When the sync should run. Data might be lost if you run the sync less frequently. Good options are always_after_scan, on_new_device, on_notification" } ] }, { "function": "RUN_SCHD", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementOptions": [], "transformers": [] } ] }, "default_value": "*/5 * * * *", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Schedule [n,h]" } ], "description": [ { "language_code": "en_us", "string": "Only enabled if you select schedule in the SYNC_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at crontab.guru). For example entering 0 4 * * * will run the scan after 4 am in the TIMEZONE you set above. Will be run NEXT time the time passes." }, { "language_code": "es_es", "string": "Solo está habilitado si selecciona schedule en la configuración SYNC_RUN. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en crontab.guru). Por ejemplo, ingresar 0 4 * * * ejecutará el escaneo después de las 4 a.m. en el TIMEZONE que configuró arriba. Se ejecutará la PRÓXIMA vez que pase el tiempo." }, { "language_code": "de_de", "string": "Nur aktiviert, wenn Sie schedule in der SYNC_RUN-Einstellung auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter crontab.guru). Wenn Sie beispielsweise 0 4 * * * eingeben, wird der Scan nach 4 Uhr morgens in der TIMEZONE den Sie oben festgelegt haben. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht." } ] }, { "function": "api_token", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementHasInputValue": 1, "elementOptions": [{ "cssClasses": "col-xs-12" }], "transformers": [] }, { "elementType": "button", "elementOptions": [ { "getStringKey": "Gen_Generate" }, { "customParams": "SYNC_api_token" }, { "onClick": "generateApiToken(this, 20)" }, { "cssClasses": "col-xs-12" } ], "transformers": [] } ] }, "maxLength": 50, "default_value": "", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "API token [n,h]" } ], "description": [ { "language_code": "en_us", "string": "API token to secure communication, you can generate one or enter any value. It's sent in the request header. The API token needs to be the same on the hub and on the nodes." } ] }, { "function": "encryption_key", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementHasInputValue": 1, "elementOptions": [{ "cssClasses": "col-xs-12" }], "transformers": [] }, { "elementType": "button", "elementOptions": [ { "getStringKey": "Gen_Generate" }, { "customParams": "SYNC_encryption_key" }, { "onClick": "generateApiToken(this, 30)" }, { "cssClasses": "col-xs-12" } ], "transformers": [] } ] }, "maxLength": 50, "default_value": "", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Encryption Key [n,h]" } ], "description": [ { "language_code": "en_us", "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." } ] }, { "function": "nodes", "type": { "dataType": "array", "elements": [ { "elementType": "input", "elementOptions": [ { "placeholder": "Enter full url" }, { "suffix": "_in" }, { "cssClasses": "col-sm-10" }, { "prefillValue": "null" } ], "transformers": [] }, { "elementType": "button", "elementOptions": [ { "sourceSuffixes": ["_in"] }, { "separator": "" }, { "cssClasses": "col-xs-12" }, { "onClick": "addList(this, false)" }, { "getStringKey": "Gen_Add" } ], "transformers": [] }, { "elementType": "select", "elementHasInputValue": 1, "elementOptions": [ { "multiple": "true" }, { "readonly": "true" }, { "editable": "true" } ], "transformers": [] }, { "elementType": "button", "elementOptions": [ { "sourceSuffixes": [] }, { "separator": "" }, { "cssClasses": "col-xs-6" }, { "onClick": "removeAllOptions(this)" }, { "getStringKey": "Gen_Remove_All" } ], "transformers": [] }, { "elementType": "button", "elementOptions": [ { "sourceSuffixes": [] }, { "separator": "" }, { "cssClasses": "col-xs-6" }, { "onClick": "removeFromList(this)" }, { "getStringKey": "Gen_Remove_Last" } ], "transformers": [] } ] }, "default_value": [], "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Nodes [h]" } ], "description": [ { "language_code": "en_us", "string": "If specified, the hub will pull Devices data from the listed nodes." } ] }, { "function": "hub_url", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementOptions": [], "transformers": [] } ] }, "maxLength": 50, "default_value": "", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Hub URL [n]" } ], "description": [ { "language_code": "en_us", "string": "The URL of the hub (target instance). Set on the Node. Without a trailig slash, for example http://192.168.1.82:20211" } ] }, { "function": "node_name", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementOptions": [], "transformers": [] } ] }, "maxLength": 50, "default_value": "", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Node name [n]" } ], "description": [ { "language_code": "en_us", "string": "Use a unique node name, without spaces or special characters, such as Node_Vlan01" } ] }, { "function": "devices", "type": { "dataType": "boolean", "elements": [ { "elementType": "input", "elementOptions": [{ "type": "checkbox" }], "transformers": [] } ] }, "default_value": false, "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Sync Devices [n]" } ], "description": [ { "language_code": "en_us", "string": "When enabled the whole Devices table is sent over. Only new devices with new MACs are inserted in the target hub." } ] }, { "function": "plugins", "type": { "dataType": "array", "elements": [ { "elementType": "select", "elementOptions": [{ "multiple": "true", "ordeable": "true" }], "transformers": [] } ] }, "maxLength": 50, "default_value": [], "options": ["{value}"], "options_params": [ { "name": "value", "type": "setting", "value": "LOADED_PLUGINS" } ], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Sync Plugins [n]" } ], "description": [ { "language_code": "en_us", "string": "Plugins to synchronize. Only plugins that produce some kind of output in last_result.log can be synchronized." } ] }, { "function": "CMD", "type": { "dataType": "string", "elements": [ { "elementType": "input", "elementOptions": [{ "readonly": "true" }], "transformers": [] } ] }, "default_value": "python3 /app/front/plugins/sync/sync.py", "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Command" }, { "language_code": "es_es", "string": "Comando" }, { "language_code": "de_de", "string": "Befehl" } ], "description": [ { "language_code": "en_us", "string": "Command to run. This can not be changed" }, { "language_code": "es_es", "string": "Comando a ejecutar. Esto no se puede cambiar" }, { "language_code": "de_de", "string": "Befehl zum Ausführen. Dies kann nicht geändert werden" } ] }, { "function": "RUN_TIMEOUT", "type": { "dataType": "integer", "elements": [ { "elementType": "input", "elementOptions": [{ "type": "number" }], "transformers": [] } ] }, "default_value": 30, "options": [], "localized": ["name", "description"], "name": [ { "language_code": "en_us", "string": "Run timeout" }, { "language_code": "es_es", "string": "Tiempo límite de ejecución" }, { "language_code": "de_de", "string": "Zeitüberschreitung" } ], "description": [ { "language_code": "en_us", "string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted." }, { "language_code": "es_es", "string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela." }, { "language_code": "de_de", "string": "Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen." } ] } ], "database_column_definitions": [ { "column": "Object_PrimaryID", "mapped_to_column": "cur_MAC", "css_classes": "col-sm-2", "show": true, "type": "device_name_mac", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "MAC" }, { "language_code": "es_es", "string": "MAC" }, { "language_code": "de_de", "string": "MAC" } ] }, { "column": "Object_SecondaryID", "mapped_to_column": "cur_IP", "css_classes": "col-sm-2", "show": true, "type": "device_ip", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "IP" }, { "language_code": "es_es", "string": "IP" }, { "language_code": "de_de", "string": "IP" } ] }, { "column": "Watched_Value1", "mapped_to_column": "cur_Name", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Name" } ] }, { "column": "Watched_Value2", "mapped_to_column": "cur_Vendor", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Vendor" } ] }, { "column": "Watched_Value3", "mapped_to_column": "cur_SyncHubNodeName", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Sync Node" } ] }, { "column": "Watched_Value4", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Device GUID" } ] }, { "column": "Dummy", "mapped_to_column": "cur_ScanMethod", "mapped_to_column_data": { "value": "sync" }, "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Scan method" }, { "language_code": "es_es", "string": "Método de escaneo" }, { "language_code": "de_de", "string": "Scanmethode" } ] }, { "column": "DateTimeCreated", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Created" }, { "language_code": "es_es", "string": "Creado" }, { "language_code": "de_de", "string": "Erstellt" } ] }, { "column": "DateTimeChanged", "css_classes": "col-sm-2", "show": true, "type": "label", "default_value": "", "options": [], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Changed" }, { "language_code": "es_es", "string": "Cambiado" }, { "language_code": "de_de", "string": "Geändert" } ] }, { "column": "Status", "css_classes": "col-sm-1", "show": true, "type": "replace", "default_value": "", "options": [ { "equals": "watched-not-changed", "replacement": "
" }, { "equals": "watched-changed", "replacement": "
" }, { "equals": "new", "replacement": "
" }, { "equals": "missing-in-last-scan", "replacement": "
" } ], "localized": ["name"], "name": [ { "language_code": "en_us", "string": "Status" }, { "language_code": "es_es", "string": "Estado" }, { "language_code": "de_de", "string": "Status" } ] } ] }