← Files VeraARCHIVED FILE

modules/comunicazione-professionale/schemas/history_privacy_assessment.schema.json

3.27 KB · Oct 3, 2026 · 06:30 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "run_id",
    "input_digest",
    "pseudonymization_record_digest",
    "purpose",
    "assessment_protocol",
    "document_assessments",
    "verdict",
    "residual_risk",
    "required_changes"
  ],
  "properties": {
    "schema_version": {"const": 1},
    "run_id": {"type": "string", "minLength": 1},
    "input_digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "pseudonymization_record_digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "purpose": {"const": "independent_residual_identification_review_before_downstream_use"},
    "assessment_protocol": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "method",
        "assessor_session_id",
        "assessment_template_version",
        "template_sha256",
        "raw_history_seen",
        "identity_mapping_seen",
        "pseudonymization_transcript_seen",
        "completed_at"
      ],
      "properties": {
        "method": {"const": "isolated_derivative_only_privacy_review"},
        "assessor_session_id": {"type": "string", "minLength": 8, "maxLength": 500},
        "assessment_template_version": {"const": "professional-communication-history-privacy-assessment-v1"},
        "template_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
        "raw_history_seen": {"const": false},
        "identity_mapping_seen": {"const": false},
        "pseudonymization_transcript_seen": {"const": false},
        "completed_at": {"type": "string", "format": "date-time"}
      }
    },
    "document_assessments": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["history_id", "sha256", "verdict", "findings", "structure_preserved"],
        "properties": {
          "history_id": {"type": "string", "minLength": 1},
          "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
          "verdict": {"enum": ["ready", "revise"]},
          "findings": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": ["paragraph_index", "category", "required_generalization"],
              "properties": {
                "paragraph_index": {"type": "integer", "minimum": 1},
                "category": {
                  "enum": [
                    "person",
                    "organization",
                    "address",
                    "location",
                    "identifying_role",
                    "identifying_fact_combination",
                    "other_identity"
                  ]
                },
                "required_generalization": {"type": "string", "minLength": 1, "maxLength": 1000}
              }
            }
          },
          "structure_preserved": {"type": "boolean"}
        }
      }
    },
    "verdict": {"enum": ["ready", "revise"]},
    "residual_risk": {"type": "string", "minLength": 1, "maxLength": 2000},
    "required_changes": {
      "type": "array",
      "maxItems": 100,
      "items": {"type": "string", "minLength": 1, "maxLength": 1000}
    }
  }
}

SHA-256: d2326990b65e8105d2bffaa7f38e0f5b841134fc5818325edce8841fdb908584