{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://stellaops.local/graph/analytics-result.schema.json", "title": "Graph Analytics Result", "type": "object", "additionalProperties": false, "required": [ "schemaVersion", "algorithmVersion", "analysisId", "tenant", "inputs", "seed", "rerunHash", "metrics", "result", "createdAt" ], "properties": { "schemaVersion": { "type": "string", "pattern": "^1\\.\\d+\\.\\d+$" }, "algorithmVersion": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, "changeLogUrl": { "type": "string", "format": "uri" }, "analysisId": { "type": "string", "minLength": 1 }, "tenant": { "type": "string", "minLength": 1 }, "inputs": { "type": "object", "additionalProperties": false, "properties": { "snapshotIds": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "filters": { "type": "object" }, "datasetHash": { "type": "string", "pattern": "^sha256:[A-Fa-f0-9]{64}$" } } }, "seed": { "type": "integer", "minimum": 0 }, "parameters": { "type": "object" }, "rerunHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "metrics": { "type": "object", "additionalProperties": false, "properties": { "durationSeconds": { "type": "number", "minimum": 0 }, "budgetSeconds": { "type": "number", "minimum": 0 }, "maxNodes": { "type": "integer", "minimum": 0 }, "maxEdges": { "type": "integer", "minimum": 0 }, "nodesProcessed": { "type": "integer", "minimum": 0 }, "edgesProcessed": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": ["ok", "budget_exceeded", "failed"] } }, "required": ["durationSeconds", "budgetSeconds", "status"] }, "result": { "type": "object", "description": "Algorithm-specific payload (centrality, community detection, reachability, etc.).", "additionalProperties": true }, "provenance": { "type": "object", "additionalProperties": false, "properties": { "inputsHash": { "type": "string", "pattern": "^sha256:[A-Fa-f0-9]{64}$" }, "resultHash": { "type": "string", "pattern": "^sha256:[A-Fa-f0-9]{64}$" }, "manifestHash": { "type": "string", "pattern": "^sha256:[A-Fa-f0-9]{64}$" } } }, "redactions": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "field": { "type": "string" }, "reason": { "type": "string" }, "policy": { "type": "string" } }, "required": ["field", "reason"] } }, "createdAt": { "type": "string", "format": "date-time" } } }