{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MXCP Drift Report", "type": "object", "required": ["version", "generated_at", "baseline_snapshot_path", "current_snapshot_generated_at", "baseline_snapshot_generated_at", "has_drift", "summary", "table_changes", "resource_changes"], "properties": { "version": { "type": "integer", "description": "Version of the drift report format. Must be 1.", "enum": [1], "default": 1 }, "generated_at": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp when the report was generated" }, "baseline_snapshot_path": { "type": "string", "description": "Path to the baseline snapshot file" }, "current_snapshot_generated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the current snapshot was generated" }, "baseline_snapshot_generated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the baseline snapshot was generated" }, "has_drift": { "type": "boolean", "description": "Whether any drift was detected" }, "summary": { "type": "object", "description": "Summary counts of changes by type", "properties": { "tables_added": { "type": "integer" }, "tables_removed": { "type": "integer" }, "tables_modified": { "type": "integer" }, "resources_added": { "type": "integer" }, "resources_removed": { "type": "integer" }, "resources_modified": { "type": "integer" } }, "additionalProperties": false }, "table_changes": { "type": "array", "description": "List of table changes detected", "items": { "type": "object", "required": ["name", "change_type"], "properties": { "name": { "type": "string", "description": "Name of the table" }, "change_type": { "type": "string", "enum": ["added", "removed", "modified"], "description": "Type of change" }, "columns_added": { "type": "array", "description": "Columns that were added", "items": { "type": "object", "required": ["name", "type"], "properties": { "name": { "type": "string" }, "type": { "type": "string" } } } }, "columns_removed": { "type": "array", "description": "Columns that were removed", "items": { "type": "object", "required": ["name", "type"], "properties": { "name": { "type": "string" }, "type": { "type": "string" } } } }, "columns_modified": { "type": "array", "description": "Columns that were modified", "items": { "type": "object", "properties": { "name": { "type": "string" }, "old_type": { "type": "string" }, "new_type": { "type": "string" } } } } } } }, "resource_changes": { "type": "array", "description": "List of resource changes detected", "items": { "type": "object", "required": ["path", "change_type"], "properties": { "path": { "type": "string", "description": "Path to the resource file" }, "endpoint": { "type": "string", "description": "Endpoint identifier (e.g., 'tool/name')" }, "change_type": { "type": "string", "enum": ["added", "removed", "modified"], "description": "Type of change" }, "validation_changed": { "type": "boolean", "description": "Whether validation results changed" }, "test_results_changed": { "type": "boolean", "description": "Whether test results changed" }, "definition_changed": { "type": "boolean", "description": "Whether endpoint definition changed" }, "details": { "type": "object", "description": "Specific details about what changed", "additionalProperties": true } } } } } }