### Bundle XARF Schema Files Source: https://github.com/abusix/xarf/blob/master/README.md Clones the XARF repository, installs dependencies, and runs the bundling script to create single-file schema outputs. The process generates two files: a minimized bundled schema and a completely dereferenced schema. ```bash git clone https://github.com/abusix/xarf.git cd xarf npm install npm run bundle-xarf ``` -------------------------------- ### Link-Share CSAM Report JSON Example Source: https://github.com/abusix/xarf/wiki/Reporting CSAM Illustrates a JSON structure for a CSAM report specifically for link-sharing scenarios, such as forums distributing CSAM links. This format includes a `ReportSubType` of 'Link-Sharing' and allows for reporting by individuals using the `OnBehalfOf` property. ```json { "Version": "development", "ReporterInfo": { "ReporterType": "Person", "ReporterContactEmail": "reporter@mailprovider.com" }, "OnBehalfOf": { "ComplainantOrg": "Parents against CSAM", "ComplainantOrgDomain": "parents-against-csam-example.org", "ComplainantOrgEmail": "info@parents-against-csam-example.org" }, "Disclosure": true, "Report": { "ReportClass": "Content", "ReportType": "ChildSexualAbuseMaterial", "ReportSubType": "Link-Sharing", "Date": "2023-08-05T14:17:10Z", "SourceUrl": "https://evil.hoster.com", "ReporterNotes": "People on this forum have been distributing links to CSAM since 20XX", "ReporterCaseID": "CASE-1235-2023" } } ``` -------------------------------- ### Validate XARF Schemas with ajv-cli (>= 4.0.0) Source: https://github.com/abusix/xarf/blob/master/README.md Command-line instructions to validate XARF JSON schemas using ajv-cli version 4.0.0 or later. This requires installing ajv-cli and ajv-formats, then running the ajv command with schema and data file paths. ```bash npm install -g ajv-cli ajv-formats ajv -c ajv-formats -s xarf.schema.json -d "samples/positive/**/*.json" -r "schemas/**/*.schema.json" ``` -------------------------------- ### Basic CSAM Report JSON Example Source: https://github.com/abusix/xarf/wiki/Reporting CSAM Provides a JSON structure for a basic CSAM report, typically used for direct links to CSAM or reporting IP addresses directly sharing CSAM. It includes reporter information, disclosure status, and report details like source URL and notes. ```json { "Version": "development", "ReporterInfo": { "ReporterOrg": "ExampleOrg", "ReporterOrgDomain": "example.com", "ReporterOrgEmail": "reports@example.com", "ReporterContactEmail": "contact@example.com", "ReporterContactName": "Mr. Example", "ReporterContactPhone": "+ 01 000 1234567" }, "Disclosure": true, "Report": { "ReportClass": "Content", "ReportType": "ChildSexualAbuseMaterial", "Date": "2023-08-05T14:17:10Z", "SourceUrl": "https://evil.hoster.com/csam.zip", "ReporterNotes": "The zip file requires this password to open: 'example'", "ReporterCaseID": "CASE-1234-2023" } } ``` -------------------------------- ### Validate XARF Schemas with ajv-cli (< 4.0.0) Source: https://github.com/abusix/xarf/blob/master/README.md Command-line instructions to validate XARF JSON schemas using ajv-cli version prior to 4.0.0. This involves installing an older version of ajv-cli and then executing the ajv command with specified schema and data file paths. ```bash npm install -g ajv-cli@3.3.0 ajv -s xarf.schema.json -d "samples/positive/**/*.json" -r "schemas/**/*.schema.json" ``` -------------------------------- ### Test XARF Schema Locally Source: https://github.com/abusix/xarf/blob/master/README.md Runs the local tests for the XARF schema development process using npm. This command is typically executed after adding a new schema or making changes to ensure compatibility and correctness. ```bash npm run test-xarf ``` -------------------------------- ### Release New XARF Schema Version Source: https://github.com/abusix/xarf/blob/master/README.md Executes the release script for a new version of the XARF schema. Requires jq and sponge utilities. The script takes the version number as an argument. ```bash ./relase_new_version.sh {version} ``` -------------------------------- ### XARF Email Report Format (RFC5965 Extension) Source: https://github.com/abusix/xarf/blob/master/README.md Defines the structure of an XARF report sent via SMTP, extending RFC5965. It specifies the multipart/report structure with human-readable, feedback-report, and application/json MIME parts, including the custom 'xarf' Feedback-Type. ```APIDOC Content-Type: multipart/report; report-type=feedback-report; boundary="--_NmP-f348b15e0b4a4931-Part_1" From: Abusix To: Max Musterman Subject: XARF test Message-ID: <9a271f0f-8929-421b-5bfa-80e50dabf32d@abusix.org> Date: Tue, 21 Apr 2020 10:25:47 +0000 MIME-Version: 1.0 ----_NmP-f348b15e0b4a4931-Part_1 Content-Type: text/plain Content-Transfer-Encoding: 7bit This is the human readable description ----_NmP-f348b15e0b4a4931-Part_1 Content-Type: message/feedback-report Content-Disposition: inline Feedback-Type: xarf User-Agent: Abusix/1.0 Version: 1 ----_NmP-f348b15e0b4a4931-Part_1 Content-Type: application/json; name=xarf.json Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=xarf.json ewogICJWZXJzaW9uIjogIjEiLAogICJSZXBvcnRlckluZm8iOiB7CiAgICAiUmVwb3J0ZXJPcmci OiAiRXhhbXBsZU9yZyIsCiAgICAiUmVwb3J0ZXJPcmdEb21haW4iOiAiZXhhbXBsZS5jb20iLAog ICAgIlJlcG9ydGVyT3JnRW1haWwiOiAicmVwb3J0c0BleGFtcGxlLmNvbSIsCiAgICAiUmVwb3J0 ZXJDb250YWN0RW1haWwiOiAiY29udGFjdEBleGFtcGxlLmNvbSIsCiAgICAiUmVwb3J0ZXJDb250 YWN0TmFtZSI6ICJNci4gRXhhbXBsZSIsCiAgICAiUmVwb3J0ZXJDb250YWN0UGhvbmUiOiAiKyAw MDEgMDAwIDEyMzQ1NjcKICB9LAogICJEaXNjbG9zIjogdHJ1ZSwKICAiUmVwb3J0IjogewogICAg IlJlcG9ydENsYXNzIjogIkFjdGl2aXR5IiwKICAgICJSZXBvcnRUeXBlIjogIlNwYW0iLAogICAg IlJlcG9ydFN1YlR5cGUiOiAiVHJhcCIsCiAgICAiRGF0ZSI6ICIyMDE4LTAyLTA1VDE0OjE3 OjEwWiIsCiAgICAiU291cmNlSXAiOiAiMTkyLjAuMi41NSIsCiAgICAiU291cmNlUG9ydCI6IDU0 MzIxLAogICAgIkRlc3RpbmF0aW9uSXAiOiAiMTk4LjUxLjEwMC4zMyIsCiAgICAiRGVzdGluYXRp b25Qb3J0IjogMjUsCiAgICAiU210cE1haWxGcm9tQWRkcmVzcyI6ICJzcGFtQGV4YW1wbGUuY29t IiwKICAgICJTbXRwUmNwdFRvQWRkcmVzcyI6ICJ2aWN0aW1AZXhhbXBsZS5jb20iLAogICAgIlNh bXBsZXMiOiBbCiAgICAgIHsKICAgICAgICAiQ29udGVudFR5cGUiOiAibWVzc2FnZS9yZmM4MjIi LAogICAgICAgICJCYXNlNjRFbmNvZGVkIjogdHJ1ZSwKICAgICAgICAiRGVzY3JpcHRpb24iOiAi VGhlIHNwYW0gbWFpbCIsCiAgICAgICAgIlBheWxvYWQiOiAiYldGcGJBPT0iCiAgICAgIH0K ICAgIF0KICB9Cn0= ----_NmP-f348b15e0b4a4931-Part_1-- ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.