Config/schema_environment.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "array",
    "minItems": 1,
    "items": {
        "type": "object",
        "required": ["name", "description", "interval", "servers"],
        "properties": {
            "name": {
                "type": "string",
                "description": "Unique name identifier for this environment",
                "minLength": 1
            },
            "description": {
                "type": "string",
                "description": "Human-readable description of the environment",
                "minLength": 1
            },
            "interval": {
                "type": "integer",
                "description": "Update interval in seconds for performance counter polling",
                "minimum": 1
            },
            "secretvaultname": {
                "type": "string",
                "description": "Optional name of the secret vault for credential storage"
            },
            "credentialname": {
                "type": "string",
                "description": "Optional credential name (e.g. 'integrated' for Windows auth)"
            },
            "servers": {
                "type": "array",
                "description": "Array of server configurations to monitor",
                "minItems": 1,
                "items": {
                    "type": "object",
                    "required": ["computername", "counterConfig"],
                    "properties": {
                        "computername": {
                            "type": "string",
                            "description": "Hostname or IP address of the server to monitor",
                            "minLength": 1
                        },
                        "comment": {
                            "type": "string",
                            "description": "Optional comment describing the server or its role"
                        },
                        "counterConfig": {
                            "type": "array",
                            "description": "Counter names or file paths (local or UNC)",
                            "minItems": 1,
                            "items": {
                                "type": "string",
                                "minLength": 1,
                                "pattern": "^([A-Za-z][A-Za-z0-9_]*|[A-Za-z]:\\\\.+|\\\\\\\\.+)$"
                            }
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "additionalProperties": false
    }
}