{
  "code_name": "maintenance",
  "unique_prefix": "MAINT",
  "plugin_type": "system",
  "enabled": true,
  "data_source": "script",  
  "show_ui": false,
  "localized": ["display_name", "description", "icon"],
  "display_name": [
    {
      "language_code": "en_us",
      "string": "Maintenance"
    } 
  ],
  "icon": [
    {
      "language_code": "en_us",
      "string": "<i class=\"fa-solid fa-wrench\"></i>"
    }
  ],
  "description": [
    {
      "language_code": "en_us",
      "string": "A plugin for maintenance tasks."
    }
  ],
    "params" : [
  ],  
  "settings": [
    {
      "function": "RUN",      
      "events": ["run"],      
      "type": "text.select",            
      "default_value":"schedule",
      "options": ["disabled", "once", "schedule", "always_after_scan", "on_new_device"],
      "localized": ["name", "description"],
      "name" :[{
          "language_code":"en_us",
          "string" : "When to run"
      },
      {
          "language_code":"es_es",
          "string" : "Cuándo ejecutar"
      },
      {
          "language_code":"de_de",
          "string" : "Wann laufen"
      }],
      "description": [{
          "language_code":"en_us",
          "string" : "When the maintenance tasks should run. A daily or weekly <code>SCHEDULE</code> is a good option."
      }]
  },    
    {
      "function": "CMD",
      "type": "readonly",
      "default_value": "python3 /app/front/plugins/maintenance/maintenance.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_SCHD",
      "type": "text",
      "default_value":"0 2 * * 3",
      "options": [],
      "localized": ["name", "description"],
      "name" : [{
          "language_code":"en_us",
          "string" : "Schedule"
      },
      {
          "language_code":"es_es",
          "string" : "Schedule"
      },
      {
          "language_code":"de_de",
          "string" : "Schedule"
      }],
      "description": [{
          "language_code":"en_us",
          "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."
      },
      {
          "language_code":"es_es",
          "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."
      },
      {
          "language_code":"de_de",
          "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."
      }]
  },    
    {
      "function": "RUN_TIMEOUT",
      "type": "integer",
      "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."
        }        
      ]
    },
    {
      "function": "LOG_LENGTH",
      "type": "integer",
      "default_value": 250000,
      "options": [],
      "localized": ["name", "description"],
      "name" : [{
          "language_code":"en_us",
          "string" : "Log length"
      }],
      "description": [{
          "language_code":"en_us",
          "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."
      }]
    }
  ],

  "database_column_definitions": 
  [          
           
  ]
}
