Files
thinkloom-openai-hackathon/schemas/provenance/v1/harp-export-manifest.schema.json
T

439 lines
13 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/harp-export-manifest.schema.json",
"title": "HARP export manifest",
"description": "Immutable manifest binding the HARP, contribution map, exact deposit, verification report, archive artifacts, sanitization rules, omissions, and hashes. Its digest identity excludes manifest_sha256.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"manifest_id": {
"type": "string",
"pattern": "^manifest_[0-9A-HJKMNP-TV-Z]{26}$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"harp_id": {
"type": "string",
"pattern": "^harp_[0-9A-HJKMNP-TV-Z]{26}$"
},
"harp_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"deposit_id": {
"type": "string",
"pattern": "^deposit_[0-9A-HJKMNP-TV-Z]{26}$"
},
"deposit_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"contribution_map_id": {
"type": "string",
"pattern": "^map_[0-9A-HJKMNP-TV-Z]{26}$"
},
"contribution_map_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"cpl_chain_head": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"report_metadata": {
"type": "object",
"properties": {
"deposit_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"manuscript_revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"manuscript_revision_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"cpl_chain_head": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"cpl_event_sequence": {
"type": "integer",
"minimum": 1
},
"harp_schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+$"
},
"harp_generator_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"application_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"policy_profile_id": {
"type": "string",
"pattern": "^policyprofile_[0-9A-HJKMNP-TV-Z]{26}$"
},
"policy_profile_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"policy_profile_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"policy_retrieval_date": {
"type": "string",
"format": "date"
},
"sanitization_profile": {
"enum": [
"full_private",
"sanitized"
]
},
"legal_scope_statement": {
"type": "string",
"minLength": 1
}
},
"required": [
"deposit_sha256",
"manuscript_revision_id",
"manuscript_revision_sha256",
"cpl_chain_head",
"cpl_event_sequence",
"harp_schema_version",
"harp_generator_version",
"application_version",
"policy_profile_id",
"policy_profile_version",
"policy_profile_sha256",
"policy_retrieval_date",
"sanitization_profile",
"legal_scope_statement"
],
"additionalProperties": false
},
"verification_report_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"sanitization_profile": {
"enum": [
"full_private",
"sanitized"
]
},
"sanitization_rules_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"omissions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"enum": [
"private_conversation",
"rejected_output",
"rejected_model_output",
"credential",
"credential_authorization_material",
"personal_identifier",
"internal_path",
"provider_metadata",
"provider_metadata_not_required",
"protected_source_body",
"other"
]
},
"action": {
"enum": [
"exclude",
"redact",
"summarize"
]
},
"count": {
"type": "integer",
"minimum": 1
},
"disclosure_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
}
},
"required": [
"category",
"action",
"count",
"disclosure_sha256"
],
"additionalProperties": false
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"enum": [
"human_readable_harp",
"machine_readable_harp",
"contribution_map",
"deposit_copy",
"verification_report",
"supporting_archive"
]
},
"path": {
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
"sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"size": {
"type": "integer",
"minimum": 1
},
"privacy_classification": {
"enum": [
"registration",
"deposit",
"sanitized_evidence",
"private"
]
}
},
"required": [
"role",
"path",
"sha256",
"size",
"privacy_classification"
],
"additionalProperties": false
},
"minItems": 6,
"uniqueItems": true,
"allOf": [
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "human_readable_harp"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
},
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "machine_readable_harp"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
},
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "contribution_map"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
},
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "deposit_copy"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
},
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "verification_report"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
},
{
"contains": {
"type": "object",
"properties": {
"role": {
"const": "supporting_archive"
}
},
"required": [
"role"
]
},
"minContains": 1,
"maxContains": 1
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"manifest_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
}
},
"required": [
"schema_version",
"manifest_id",
"project_id",
"harp_id",
"harp_sha256",
"deposit_id",
"deposit_sha256",
"contribution_map_id",
"contribution_map_sha256",
"cpl_chain_head",
"report_metadata",
"verification_report_sha256",
"sanitization_profile",
"sanitization_rules_sha256",
"omissions",
"files",
"created_at",
"manifest_sha256"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"manifest_id": "manifest_01J00000000000000000000003",
"project_id": "project_01J00000000000000000000001",
"harp_id": "harp_01J00000000000000000000002",
"harp_sha256": "sha256:20e3ba5bb0c6c25c8d047e0e8b82a17044193e0b8ce521612d48cc85fed5feb9",
"deposit_id": "deposit_01J00000000000000000000000",
"deposit_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"contribution_map_id": "map_01J0000000000000000000000Z",
"contribution_map_sha256": "sha256:28562ec310a4eda35436bf01ec534d0639939365af453e3c922c492ee0ebff00",
"cpl_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"report_metadata": {
"deposit_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"manuscript_revision_id": "revision_01J0000000000000000000000B",
"manuscript_revision_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"cpl_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"cpl_event_sequence": 42,
"harp_schema_version": "1.0",
"harp_generator_version": "1.0.0",
"application_version": "0.5.11",
"policy_profile_id": "policyprofile_01J00000000000000000000004",
"policy_profile_version": "1.0.0",
"policy_profile_sha256": "sha256:77bfc640282012169a92feb92b9539ca6826b798659cb3f7d07beb864e53abba",
"policy_retrieval_date": "2026-07-19",
"sanitization_profile": "full_private",
"legal_scope_statement": "Copyrightability and registration scope remain determinations of the U.S. Copyright Office."
},
"verification_report_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"sanitization_profile": "full_private",
"sanitization_rules_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"omissions": [],
"files": [
{
"role": "human_readable_harp",
"path": "reports/harp/harp.pdf",
"sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"size": 2048,
"privacy_classification": "registration"
},
{
"role": "machine_readable_harp",
"path": "reports/harp/harp.json",
"sha256": "sha256:20e3ba5bb0c6c25c8d047e0e8b82a17044193e0b8ce521612d48cc85fed5feb9",
"size": 4096,
"privacy_classification": "registration"
},
{
"role": "contribution_map",
"path": "reports/harp/contribution-map.json",
"sha256": "sha256:28562ec310a4eda35436bf01ec534d0639939365af453e3c922c492ee0ebff00",
"size": 3072,
"privacy_classification": "registration"
},
{
"role": "deposit_copy",
"path": "deposits/registration-manuscript.pdf",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 4096,
"privacy_classification": "deposit"
},
{
"role": "verification_report",
"path": "reports/harp/verification.json",
"sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"size": 1024,
"privacy_classification": "registration"
},
{
"role": "supporting_archive",
"path": "reports/harp/supporting-archive.zip",
"sha256": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"size": 8192,
"privacy_classification": "private"
}
],
"created_at": "2026-07-17T18:43:11.456Z",
"manifest_sha256": "sha256:50be7f8f16d6f83dc58ec26670499403ccc2f7f7655e28cd8e1bf7485d768324"
}
]
}