Ctrl K
ComunidadGuías…

config.schema.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "SPIS Configuration",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "dirs": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "media": {
          "type": "string",
          "description": "Path to search for media files"
        },
        "data": {
          "type": "string",
          "description": "Path to store data (database, thumbnails)"
        }
      }
    },
    "processing": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schedule": {
          "type": "string",
          "description": "Cron schedule to run processing on",
          "default": "0 0 2 * * *"
        },
        "run_on_start": {
          "type": "boolean",
          "description": "Run processing on startup",
          "default": false
        }
      }
    },
    "api": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "media_path": {
          "type": "string",
          "description": "Path webserver will serve media on",
          "default": "/assets/media"
        },
        "thumbnail_path": {
          "type": "string",
          "description": "Path webserver will serve thumbnails on",
          "default": "/assets/thumbnails"
        }
      }
    },
    "listener": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "address": {
          "type": "string",
          "description": "Listen to address (e.g., '0.0.0.0:8080')"
        },
        "socket": {
          "type": "string",
          "description": "Listen to UNIX socket path"
        }
      },
      "oneOf": [
        { "required": ["address"] },
        { "required": ["socket"] },
        { "not": { "anyOf": [{ "required": ["address"] }, { "required": ["socket"] }] } }
      ]
    },
    "features": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "favorite": {
          "type": "boolean",
          "description": "Enable favorite feature",
          "default": true
        },
        "archive": {
          "type": "boolean",
          "description": "Enable archive feature",
          "default": true
        },
        "delete_on_archive": {
          "type": "boolean",
          "description": "Delete file when archived",
          "default": false
        },
        "follow_symlinks": {
          "type": "boolean",
          "description": "Follow symbolic links when scanning",
          "default": true
        },
        "allow_no_exif": {
          "type": "boolean",
          "description": "Allow processing files without EXIF data",
          "default": true
        }
      }
    },
    "slideshow": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "duration_seconds": {
          "type": "integer",
          "description": "Slideshow duration in seconds",
          "default": 5,
          "minimum": 1
        }
      }
    },
    "custom_command": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["name", "cmd", "fa_icon"],
        "properties": {
          "name": {
            "type": "string",
            "description": "Identifier of the command (lowercase, no spaces)",
            "pattern": "^[a-z0-9_-]+$"
          },
          "cmd": {
            "type": "array",
            "description": "Command and arguments to execute",
            "items": {
              "type": "string"
            }
          },
          "fa_icon": {
            "type": "string",
            "description": "FontAwesome icon identifier for the command"
          },
          "hotkey": {
            "type": "string",
            "description": "Single lowercase character hotkey",
            "pattern": "^[a-z]$",
            "minLength": 1,
            "maxLength": 1
          }
        }
      }
    }
  }
}