72 lines
2.8 KiB
JSON
72 lines
2.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://dtechtechresearch.com/schemas/aaisa-report-1.0.0.json",
|
|
"title": "AAISA Scan Report",
|
|
"type": "object",
|
|
"required": ["schema_version", "tool", "started_at", "completed_at", "root", "summary", "artifacts", "findings", "errors"],
|
|
"properties": {
|
|
"schema_version": {"const": "1.0.0"},
|
|
"tool": {
|
|
"type": "object",
|
|
"required": ["name", "version"],
|
|
"properties": {"name": {"const": "AAISA"}, "version": {"type": "string"}},
|
|
"additionalProperties": false
|
|
},
|
|
"started_at": {"type": "string", "format": "date-time"},
|
|
"completed_at": {"type": "string", "format": "date-time"},
|
|
"root": {"type": "string"},
|
|
"summary": {
|
|
"type": "object",
|
|
"required": ["artifact_count", "finding_count", "error_count", "by_severity"],
|
|
"properties": {
|
|
"artifact_count": {"type": "integer", "minimum": 0},
|
|
"finding_count": {"type": "integer", "minimum": 0},
|
|
"error_count": {"type": "integer", "minimum": 0},
|
|
"by_severity": {"type": "object"}
|
|
}
|
|
},
|
|
"artifacts": {"type": "array", "items": {"$ref": "#/$defs/artifact"}},
|
|
"findings": {"type": "array", "items": {"$ref": "#/$defs/finding"}},
|
|
"errors": {"type": "array", "items": {"$ref": "#/$defs/error"}}
|
|
},
|
|
"$defs": {
|
|
"artifact": {
|
|
"type": "object",
|
|
"required": ["path", "kind", "media_type", "size_bytes", "sha256"],
|
|
"properties": {
|
|
"path": {"type": "string"},
|
|
"kind": {"type": "string"},
|
|
"media_type": {"type": "string"},
|
|
"size_bytes": {"type": "integer", "minimum": 0},
|
|
"sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"finding": {
|
|
"type": "object",
|
|
"required": ["rule_id", "title", "severity", "message", "artifact_path", "fingerprint", "tags"],
|
|
"properties": {
|
|
"rule_id": {"type": "string", "pattern": "^AAISA-[A-Z]+-[0-9]{3}$"},
|
|
"title": {"type": "string"},
|
|
"severity": {"enum": ["info", "low", "medium", "high", "critical"]},
|
|
"message": {"type": "string"},
|
|
"artifact_path": {"type": "string"},
|
|
"line": {"type": ["integer", "null"], "minimum": 1},
|
|
"column": {"type": ["integer", "null"], "minimum": 1},
|
|
"evidence": {"type": ["string", "null"]},
|
|
"remediation": {"type": ["string", "null"]},
|
|
"tags": {"type": "array", "items": {"type": "string"}},
|
|
"fingerprint": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"error": {
|
|
"type": "object",
|
|
"required": ["path", "error"],
|
|
"properties": {"path": {"type": "string"}, "error": {"type": "string"}},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|