JSON Schema 2020-12
Privacy-safe Incident Log
Operational severity and status without direct personal data.
Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://sharprod.com/schemas/privacy-safe-incident-log.schema.json",
"title": "SHAR Production Privacy-safe Incident Log Contract",
"type": "object",
"additionalProperties": false,
"properties": {
"incident_id": {
"type": "string",
"pattern": "^incident-[a-z0-9-]+$"
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"occurred_at": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
"status": {
"enum": [
"open",
"contained",
"resolved"
]
},
"personal_data_present": {
"const": false
}
},
"required": [
"incident_id",
"severity",
"occurred_at",
"status",
"personal_data_present"
]
}Verified example
{
"input": {
"incident_id": "incident-synthetic-01",
"severity": "medium",
"occurred_at": "2026-09-06T11:00:00Z",
"status": "contained",
"personal_data_present": false
},
"result": {
"valid": true,
"errors": []
}
}Rejected example
{
"input": {
"incident_id": "incident-synthetic-01",
"severity": "urgent",
"personal_data_present": true
},
"result": {
"valid": false,
"errors": [
{
"instancePath": "",
"schemaPath": "#/required",
"keyword": "required",
"params": {
"missingProperty": "occurred_at"
},
"message": "must have required property 'occurred_at'"
}
]
}
}