@carrot-foundation/schemas 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +45 -0
- package/dist/index.js +1 -0
- package/dist/mass-id/index.js +2 -0
- package/dist/mass-id/mass-id.data.schema.js +346 -0
- package/dist/mass-id/mass-id.schema.js +162 -0
- package/dist/shared/base.schema.js +127 -0
- package/dist/shared/definitions.schema.js +283 -0
- package/dist/shared/entities/location.schema.js +68 -0
- package/dist/shared/entities/participant.schema.js +24 -0
- package/dist/shared/helpers.schema.js +16 -0
- package/dist/shared/nft.schema.js +193 -0
- package/package.json +89 -0
- package/schemas/ipfs/collection/collection.example.json +25 -0
- package/schemas/ipfs/collection/collection.schema.json +47 -0
- package/schemas/ipfs/credit/credit.example.json +27 -0
- package/schemas/ipfs/credit/credit.schema.json +61 -0
- package/schemas/ipfs/gas-id/gas-id.attributes.schema.json +219 -0
- package/schemas/ipfs/gas-id/gas-id.data.schema.json +120 -0
- package/schemas/ipfs/gas-id/gas-id.example.json +245 -0
- package/schemas/ipfs/gas-id/gas-id.schema.json +29 -0
- package/schemas/ipfs/mass-id/mass-id.example.json +318 -0
- package/schemas/ipfs/mass-id/mass-id.schema.json +1325 -0
- package/schemas/ipfs/mass-id-audit/mass-id-audit.data.schema.json +130 -0
- package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +291 -0
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +26 -0
- package/schemas/ipfs/methodology/methodology.data.schema.json +121 -0
- package/schemas/ipfs/methodology/methodology.example.json +222 -0
- package/schemas/ipfs/methodology/methodology.schema.json +26 -0
- package/schemas/ipfs/purchase-id/purchase-id.attributes.schema.json +91 -0
- package/schemas/ipfs/purchase-id/purchase-id.data.schema.json +337 -0
- package/schemas/ipfs/purchase-id/purchase-id.example.json +224 -0
- package/schemas/ipfs/purchase-id/purchase-id.schema.json +29 -0
- package/schemas/ipfs/recycled-id/recycled-id.attributes.schema.json +202 -0
- package/schemas/ipfs/recycled-id/recycled-id.data.schema.json +63 -0
- package/schemas/ipfs/recycled-id/recycled-id.example.json +213 -0
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +29 -0
- package/schemas/ipfs/shared/base/base.schema.json +163 -0
- package/schemas/ipfs/shared/certificate/certificate.schema.json +145 -0
- package/schemas/ipfs/shared/definitions/definitions.schema.json +250 -0
- package/schemas/ipfs/shared/entities/location/location.schema.json +95 -0
- package/schemas/ipfs/shared/entities/participant/participant.schema.json +28 -0
- package/schemas/ipfs/shared/nft/nft.schema.json +182 -0
- package/schemas/ipfs/shared/references/audit-reference/audit-reference.schema.json +42 -0
- package/schemas/ipfs/shared/references/gas-id-reference/gas-id-reference.schema.json +27 -0
- package/schemas/ipfs/shared/references/mass-id-reference/mass-id-reference.schema.json +27 -0
- package/schemas/ipfs/shared/references/methodology-reference/methodology-reference.schema.json +34 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/mass-id-audit/mass-id-audit.data.schema.json",
|
|
4
|
+
"title": "MassID Audit Data",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"methodology",
|
|
8
|
+
"mass_id",
|
|
9
|
+
"gas_id",
|
|
10
|
+
"audit_summary",
|
|
11
|
+
"rules_execution_results"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"methodology": {
|
|
15
|
+
"$ref": "../shared/references/methodology-reference/methodology-reference.schema.json"
|
|
16
|
+
},
|
|
17
|
+
"mass_id": {
|
|
18
|
+
"$ref": "../shared/references/mass-id-reference/mass-id-reference.schema.json"
|
|
19
|
+
},
|
|
20
|
+
"gas_id": {
|
|
21
|
+
"$ref": "../shared/references/gas-id-reference/gas-id-reference.schema.json"
|
|
22
|
+
},
|
|
23
|
+
"audit_summary": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"title": "Audit Summary",
|
|
26
|
+
"required": [
|
|
27
|
+
"audit_date",
|
|
28
|
+
"methodology_compliance",
|
|
29
|
+
"total_rules_executed",
|
|
30
|
+
"passed_rules",
|
|
31
|
+
"failed_rules"
|
|
32
|
+
],
|
|
33
|
+
"properties": {
|
|
34
|
+
"audit_date": {
|
|
35
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/iso_date",
|
|
36
|
+
"title": "Audit Date",
|
|
37
|
+
"description": "Date when the audit was completed"
|
|
38
|
+
},
|
|
39
|
+
"methodology_compliance": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": ["PASSED", "FAILED"],
|
|
42
|
+
"title": "Methodology Compliance",
|
|
43
|
+
"description": "Overall outcome of the audit process"
|
|
44
|
+
},
|
|
45
|
+
"total_rules_executed": {
|
|
46
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_negative_integer",
|
|
47
|
+
"title": "Total Rules Executed",
|
|
48
|
+
"description": "Total number of audit rules executed"
|
|
49
|
+
},
|
|
50
|
+
"passed_rules": {
|
|
51
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_negative_integer",
|
|
52
|
+
"title": "Passed Rules Count",
|
|
53
|
+
"description": "Number of rules that passed verification"
|
|
54
|
+
},
|
|
55
|
+
"failed_rules": {
|
|
56
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_negative_integer",
|
|
57
|
+
"title": "Failed Rules Count",
|
|
58
|
+
"description": "Number of rules that failed verification"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
},
|
|
63
|
+
"rules_execution_results": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"title": "Rules Execution Results",
|
|
66
|
+
"description": "Detailed results of each audit rule execution.",
|
|
67
|
+
"items": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"required": [
|
|
70
|
+
"rule_name",
|
|
71
|
+
"rule_id",
|
|
72
|
+
"rule_slug",
|
|
73
|
+
"execution_order",
|
|
74
|
+
"result",
|
|
75
|
+
"description",
|
|
76
|
+
"rule_processor_checksum",
|
|
77
|
+
"rule_source_code_version"
|
|
78
|
+
],
|
|
79
|
+
"properties": {
|
|
80
|
+
"rule_name": {
|
|
81
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_empty_string",
|
|
82
|
+
"title": "Rule Name",
|
|
83
|
+
"description": "Human-readable name of the audit rule."
|
|
84
|
+
},
|
|
85
|
+
"rule_id": {
|
|
86
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/uuid",
|
|
87
|
+
"title": "Rule ID",
|
|
88
|
+
"description": "Unique identifier for the rule."
|
|
89
|
+
},
|
|
90
|
+
"rule_slug": {
|
|
91
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/slug",
|
|
92
|
+
"title": "Rule Slug"
|
|
93
|
+
},
|
|
94
|
+
"execution_order": {
|
|
95
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/positive_integer",
|
|
96
|
+
"title": "Rule Execution Order",
|
|
97
|
+
"description": "Sequential order in which this rule was executed."
|
|
98
|
+
},
|
|
99
|
+
"result": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"enum": ["PASSED", "FAILED"],
|
|
102
|
+
"title": "Rule Execution Result",
|
|
103
|
+
"description": "Result of this specific rule execution."
|
|
104
|
+
},
|
|
105
|
+
"description": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"maxLength": 2000,
|
|
109
|
+
"title": "Rule Description",
|
|
110
|
+
"description": "Detailed description of what this rule validates."
|
|
111
|
+
},
|
|
112
|
+
"rule_processor_checksum": {
|
|
113
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_empty_string",
|
|
114
|
+
"maxLength": 200,
|
|
115
|
+
"title": "Rule Processor Checksum",
|
|
116
|
+
"description": "Checksum for rule processor integrity verification."
|
|
117
|
+
},
|
|
118
|
+
"rule_source_code_version": {
|
|
119
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_empty_string",
|
|
120
|
+
"maxLength": 200,
|
|
121
|
+
"title": "Rule Source Code Version",
|
|
122
|
+
"description": "Version identifier for the rule source code."
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"additionalProperties": false
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json",
|
|
3
|
+
"schema": {
|
|
4
|
+
"hash": "0x7d9f82c4e1b6a5f3d8e2c1b9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b1a0f9",
|
|
5
|
+
"type": "MassID Audit",
|
|
6
|
+
"version": "v0.1.0"
|
|
7
|
+
},
|
|
8
|
+
"environment": {
|
|
9
|
+
"blockchain_network": "testnet",
|
|
10
|
+
"deployment": "production",
|
|
11
|
+
"data_set_name": "PROD"
|
|
12
|
+
},
|
|
13
|
+
"created_at": "2025-01-27T15:42:18.000Z",
|
|
14
|
+
"external_id": "7c8e91b2-4d3f-4823-a9c6-1e5f8b2d9a4c",
|
|
15
|
+
"external_url": "https://explore.carrot.eco/document/7c8e91b2-4d3f-4823-a9c6-1e5f8b2d9a4c",
|
|
16
|
+
"content_hash": "7d9f82c4e1b6a5f3d8e2c1b9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b1a0f9",
|
|
17
|
+
"creator": {
|
|
18
|
+
"name": "Carrot Foundation",
|
|
19
|
+
"id": "4ba0875d-2bf2-489a-bd42-59e2778187aa"
|
|
20
|
+
},
|
|
21
|
+
"data": {
|
|
22
|
+
"audit_summary": {
|
|
23
|
+
"audit_date": "2025-01-27",
|
|
24
|
+
"methodology_compliance": "PASSED",
|
|
25
|
+
"total_rules_executed": 24,
|
|
26
|
+
"passed_rules": 24,
|
|
27
|
+
"failed_rules": 0
|
|
28
|
+
},
|
|
29
|
+
"methodology": {
|
|
30
|
+
"external_id": "8a1f5c92-e847-4b6d-9f23-d4e7a8b1c5e9",
|
|
31
|
+
"name": "BOLD Carbon (CH₄)",
|
|
32
|
+
"version": "v1.4.2",
|
|
33
|
+
"external_url": "https://explore.carrot.eco/document/bold-carbon-ch4",
|
|
34
|
+
"uri": "ipfs://QmYx8FdKl2mN9pQ7rS6tV8wB3cE4fG5hI9jK0lM1nO2pQ3r/bold-carbon-ch4-v1.4.2.json"
|
|
35
|
+
},
|
|
36
|
+
"mass_id": {
|
|
37
|
+
"external_id": "b5e8c3f1-7429-4d82-a6f5-c1e9d8b7a4f2",
|
|
38
|
+
"token_id": "789",
|
|
39
|
+
"external_url": "https://explore.carrot.eco/document/b5e8c3f1-7429-4d82-a6f5-c1e9d8b7a4f2",
|
|
40
|
+
"uri": "ipfs://QmYx8FdKl2mN9pQ7rS6tV8wB3cE4fG5hI9jK0lM1nO2pQ3r/mass-id.json"
|
|
41
|
+
},
|
|
42
|
+
"gas_id": {
|
|
43
|
+
"external_id": "d2a7f8e4-9c61-4e35-b8f2-a5c9e7d1b4f6",
|
|
44
|
+
"token_id": "456",
|
|
45
|
+
"external_url": "https://explore.carrot.eco/document/d2a7f8e4-9c61-4e35-b8f2-a5c9e7d1b4f6",
|
|
46
|
+
"uri": "ipfs://QmYx8FdKl2mN9pQ7rS6tV8wB3cE4fG5hI9jK0lM1nO2pQ3r/gas-id.json"
|
|
47
|
+
},
|
|
48
|
+
"rules_execution_results": [
|
|
49
|
+
{
|
|
50
|
+
"rule_name": "Waste Mass is Unique",
|
|
51
|
+
"rule_slug": "waste-mass-is-unique",
|
|
52
|
+
"rule_id": "12345678-1234-1234-1234-000000000001",
|
|
53
|
+
"execution_order": 1,
|
|
54
|
+
"result": "PASSED",
|
|
55
|
+
"description": "Validates that each MassID is unique within the system to prevent duplicate entries and double counting",
|
|
56
|
+
"rule_processor_checksum": "a1b2c3d4-e5f6-4890-1234-567890abcdef",
|
|
57
|
+
"rule_source_code_version": "v2.1.3-8f9e0a1b-c2d3-4e5f-6789-0123456789ab"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"rule_name": "No Conflicting GasID or Credit",
|
|
61
|
+
"rule_slug": "no-conflicting-gas-id-or-credit",
|
|
62
|
+
"rule_id": "12345678-1234-1234-1234-000000000002",
|
|
63
|
+
"execution_order": 2,
|
|
64
|
+
"result": "PASSED",
|
|
65
|
+
"description": "Verifies that the MassID has not been previously registered in other carbon certificates or carbon credits to prevent double issuance",
|
|
66
|
+
"rule_processor_checksum": "b2c3d4e5-f6a7-8901-2345-6789abcdef01",
|
|
67
|
+
"rule_source_code_version": "v2.1.3-9f0e1a2b-d3e4-5f67-8901-23456789abcd"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"rule_name": "Project Period Limit",
|
|
71
|
+
"rule_slug": "project-period-limit",
|
|
72
|
+
"rule_id": "12345678-1234-1234-1234-000000000003",
|
|
73
|
+
"execution_order": 3,
|
|
74
|
+
"result": "PASSED",
|
|
75
|
+
"description": "Confirms that the MassID processing occurred within the valid project timeframe as defined by methodology guidelines",
|
|
76
|
+
"rule_processor_checksum": "c3d4e5f6-a7b8-9012-3456-789abcdef012",
|
|
77
|
+
"rule_source_code_version": "v2.1.3-a0f1e2a3-e4f5-6789-0123-456789abcdef"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"rule_name": "Participant Accreditations Requirements",
|
|
81
|
+
"rule_slug": "participant-accreditations-requirements",
|
|
82
|
+
"rule_id": "12345678-1234-1234-1234-000000000004",
|
|
83
|
+
"execution_order": 4,
|
|
84
|
+
"result": "PASSED",
|
|
85
|
+
"description": "Checks if all participating entities (waste generator, hauler, recycler) have valid certifications and environmental permits",
|
|
86
|
+
"rule_processor_checksum": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
|
|
87
|
+
"rule_source_code_version": "v2.1.3-b1a2f3a4-f5a6-789a-0123-56789abcdef0"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"rule_name": "MassID Qualifications",
|
|
91
|
+
"rule_slug": "mass-id-qualifications",
|
|
92
|
+
"rule_id": "12345678-1234-1234-1234-000000000005",
|
|
93
|
+
"execution_order": 5,
|
|
94
|
+
"result": "PASSED",
|
|
95
|
+
"description": "Validates the proper categorization, composition analysis, and definition of the organic waste mass according to methodology standards",
|
|
96
|
+
"rule_processor_checksum": "e5f6a7b8-c9d0-1234-5678-9abcdef01234",
|
|
97
|
+
"rule_source_code_version": "v2.1.3-c2b3a4a5-a6b7-89ab-0123-6789abcdef01"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"rule_name": "Regional Waste Classification",
|
|
101
|
+
"rule_slug": "regional-waste-classification",
|
|
102
|
+
"rule_id": "12345678-1234-1234-1234-000000000006",
|
|
103
|
+
"execution_order": 6,
|
|
104
|
+
"result": "PASSED",
|
|
105
|
+
"description": "Ensures the waste is properly classified according to Brazilian ABNT NBR 10004 standards and local municipal regulations",
|
|
106
|
+
"rule_processor_checksum": "f6a7b8c9-d0e1-2345-6789-abcdef012345",
|
|
107
|
+
"rule_source_code_version": "v2.1.3-d3c4b5a6-b7c8-9abc-0123-789abcdef012"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"rule_name": "Geolocation and Address Precision",
|
|
111
|
+
"rule_slug": "geolocation-and-address-precision",
|
|
112
|
+
"rule_id": "12345678-1234-1234-1234-000000000007",
|
|
113
|
+
"execution_order": 7,
|
|
114
|
+
"result": "PASSED",
|
|
115
|
+
"description": "Verifies the accuracy of geographical coordinates for waste collection and processing locations within 10-meter precision",
|
|
116
|
+
"rule_processor_checksum": "a7b8c9d0-e1f2-3456-789a-bcdef0123456",
|
|
117
|
+
"rule_source_code_version": "v2.1.3-e4d5c6a7-c8d9-abcd-0123-89abcdef0123"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"rule_name": "Waste Origin Identification",
|
|
121
|
+
"rule_slug": "waste-origin-identification",
|
|
122
|
+
"rule_id": "12345678-1234-1234-1234-000000000008",
|
|
123
|
+
"execution_order": 8,
|
|
124
|
+
"result": "PASSED",
|
|
125
|
+
"description": "Validates the documented source and origin point of the organic waste with complete chain of custody documentation",
|
|
126
|
+
"rule_processor_checksum": "b8c9d0e1-f2a3-4567-89ab-cdef01234567",
|
|
127
|
+
"rule_source_code_version": "v2.1.3-f5e6d7a8-d9e0-bcde-0123-9abcdef01234"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"rule_name": "Hauler Identification",
|
|
131
|
+
"rule_slug": "hauler-identification",
|
|
132
|
+
"rule_id": "12345678-1234-1234-1234-000000000009",
|
|
133
|
+
"execution_order": 9,
|
|
134
|
+
"result": "PASSED",
|
|
135
|
+
"description": "Confirms the identity, ANTT registration, and environmental credentials of the waste transportation company",
|
|
136
|
+
"rule_processor_checksum": "c9d0e1f2-a3b4-5678-9abc-def012345678",
|
|
137
|
+
"rule_source_code_version": "v2.1.3-a6f7e8a9-e0f1-cdef-0123-abcdef012345"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"rule_name": "Vehicle Identification",
|
|
141
|
+
"rule_slug": "vehicle-identification",
|
|
142
|
+
"rule_id": "12345678-1234-1234-1234-000000000010",
|
|
143
|
+
"execution_order": 10,
|
|
144
|
+
"result": "PASSED",
|
|
145
|
+
"description": "Verifies the registration, inspection certificates, and environmental compliance of vehicles used in waste transportation",
|
|
146
|
+
"rule_processor_checksum": "d0e1f2a3-b4c5-6789-abcd-ef0123456789",
|
|
147
|
+
"rule_source_code_version": "v2.1.3-b7a8f9aa-f1a2-def0-0123-bcdef0123456"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"rule_name": "Driver Identification",
|
|
151
|
+
"rule_slug": "driver-identification",
|
|
152
|
+
"rule_id": "12345678-1234-1234-1234-000000000011",
|
|
153
|
+
"execution_order": 11,
|
|
154
|
+
"result": "PASSED",
|
|
155
|
+
"description": "Validates the identity, CNH (driver's license), and proper licensing of the waste transport driver",
|
|
156
|
+
"rule_processor_checksum": "e1f2a3b4-c5d6-789a-bcde-f01234567890",
|
|
157
|
+
"rule_source_code_version": "v2.1.3-c8b9a0ab-a2b3-ef01-0123-cdef01234567"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"rule_name": "Transport Manifest Data",
|
|
161
|
+
"rule_slug": "transport-manifest-data",
|
|
162
|
+
"rule_id": "12345678-1234-1234-1234-000000000012",
|
|
163
|
+
"execution_order": 12,
|
|
164
|
+
"result": "PASSED",
|
|
165
|
+
"description": "Checks the completeness and accuracy of MTR (Waste Transport Manifest) documentation and digital signatures",
|
|
166
|
+
"rule_processor_checksum": "f2a3b4c5-d6e7-89ab-cdef-012345678901",
|
|
167
|
+
"rule_source_code_version": "v2.1.3-d9c0b1bc-b3c4-f012-0123-def012345678"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"rule_name": "Processor Identification",
|
|
171
|
+
"rule_slug": "processor-identification",
|
|
172
|
+
"rule_id": "12345678-1234-1234-1234-000000000013",
|
|
173
|
+
"execution_order": 13,
|
|
174
|
+
"result": "PASSED",
|
|
175
|
+
"description": "Validates the identity, environmental licensing, and ISO 14001 certification of the waste processing facility",
|
|
176
|
+
"rule_processor_checksum": "a3b4c5d6-e7f8-9abc-def0-123456789012",
|
|
177
|
+
"rule_source_code_version": "v2.1.3-e0d1c2cd-c4d5-0123-0123-ef0123456789"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"rule_name": "Recycler Identification",
|
|
181
|
+
"rule_slug": "recycler-identification",
|
|
182
|
+
"rule_id": "12345678-1234-1234-1234-000000000014",
|
|
183
|
+
"execution_order": 14,
|
|
184
|
+
"result": "PASSED",
|
|
185
|
+
"description": "Confirms the identity, CETESB licensing, and operational credentials of the composting facility operator",
|
|
186
|
+
"rule_processor_checksum": "b4c5d6e7-f8a9-abcd-ef01-23456789013a",
|
|
187
|
+
"rule_source_code_version": "v2.1.3-f1e2d3de-d5e6-1234-0123-f012345678901"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"rule_name": "Weighing Verification",
|
|
191
|
+
"rule_slug": "weighing-verification",
|
|
192
|
+
"rule_id": "12345678-1234-1234-1234-000000000015",
|
|
193
|
+
"execution_order": 15,
|
|
194
|
+
"result": "PASSED",
|
|
195
|
+
"description": "Verifies the accurate measurement using INMETRO-certified scales and recording of waste MassID quantities with traceability",
|
|
196
|
+
"rule_processor_checksum": "c5d6e7f8-a9b0-bcde-f012-345678901234",
|
|
197
|
+
"rule_source_code_version": "v2.1.3-a2f3e4ef-e6f7-2345-0123-01234567890a"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"rule_name": "Drop-off at Recycler",
|
|
201
|
+
"rule_slug": "drop-off-at-recycler",
|
|
202
|
+
"rule_id": "12345678-1234-1234-1234-000000000016",
|
|
203
|
+
"execution_order": 16,
|
|
204
|
+
"result": "PASSED",
|
|
205
|
+
"description": "Validates the proper reception, inspection, and documentation of waste material at the composting facility with photographic evidence",
|
|
206
|
+
"rule_processor_checksum": "d6e7f8a9-b0c1-cdef-0123-456789012345",
|
|
207
|
+
"rule_source_code_version": "v2.1.3-b3a4f5fa-f7a8-3456-0123-123456789012"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"rule_name": "MassID Sorting and Classification",
|
|
211
|
+
"rule_slug": "mass-id-sorting-classification",
|
|
212
|
+
"rule_id": "12345678-1234-1234-1234-000000000017",
|
|
213
|
+
"execution_order": 17,
|
|
214
|
+
"result": "PASSED",
|
|
215
|
+
"description": "Confirms the proper segregation, contamination analysis, and classification of organic waste materials according to composting requirements",
|
|
216
|
+
"rule_processor_checksum": "e7f8a9b0-c1d2-def0-1234-567890123456",
|
|
217
|
+
"rule_source_code_version": "v2.1.3-c4b5a6ab-a8b9-4567-0123-234567890123"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"rule_name": "Composting Process Initiation",
|
|
221
|
+
"rule_slug": "composting-process-initiation",
|
|
222
|
+
"rule_id": "12345678-1234-1234-1234-000000000018",
|
|
223
|
+
"execution_order": 18,
|
|
224
|
+
"result": "PASSED",
|
|
225
|
+
"description": "Validates the proper start of aerobic composting process with correct carbon-nitrogen ratio and moisture content monitoring",
|
|
226
|
+
"rule_processor_checksum": "f8a9b0c1-d2e3-ef01-2345-678901234567",
|
|
227
|
+
"rule_source_code_version": "v2.1.3-d5c6b7bc-b9c0-5678-0123-345678901234"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"rule_name": "Temperature Monitoring Compliance",
|
|
231
|
+
"rule_slug": "temperature-monitoring-compliance",
|
|
232
|
+
"rule_id": "12345678-1234-1234-1234-000000000019",
|
|
233
|
+
"execution_order": 19,
|
|
234
|
+
"result": "PASSED",
|
|
235
|
+
"description": "Ensures continuous temperature monitoring during thermophilic phase (55-65°C) for pathogen elimination and process optimization",
|
|
236
|
+
"rule_processor_checksum": "a9b0c1d2-e3f4-f012-3456-789012345678",
|
|
237
|
+
"rule_source_code_version": "v2.1.3-e6d7c8cd-c0d1-6789-0123-456789012345"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"rule_name": "Composting Cycle Timeframe",
|
|
241
|
+
"rule_slug": "composting-cycle-timeframe",
|
|
242
|
+
"rule_id": "12345678-1234-1234-1234-000000000020",
|
|
243
|
+
"execution_order": 20,
|
|
244
|
+
"result": "PASSED",
|
|
245
|
+
"description": "Validates that the complete composting process follows required 90-120 day duration with proper turning schedule and maturation",
|
|
246
|
+
"rule_processor_checksum": "b0c1d2e3-f4a5-0123-4567-89012345678a",
|
|
247
|
+
"rule_source_code_version": "v2.1.3-f7e8d9de-d1e2-789a-0123-56789012345b"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"rule_name": "Compost Quality Assessment",
|
|
251
|
+
"rule_slug": "compost-quality-assessment",
|
|
252
|
+
"rule_id": "12345678-1234-1234-1234-000000000021",
|
|
253
|
+
"execution_order": 21,
|
|
254
|
+
"result": "PASSED",
|
|
255
|
+
"description": "Verifies the final compost meets quality standards including pH, conductivity, germination index, and pathogen absence",
|
|
256
|
+
"rule_processor_checksum": "c1d2e3f4-a5b6-1234-5678-9012345678bc",
|
|
257
|
+
"rule_source_code_version": "v2.1.3-a8f9e0ef-e2f3-89ab-0123-6789012345cd"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"rule_name": "Recycling Manifest Data",
|
|
261
|
+
"rule_slug": "recycling-manifest-data",
|
|
262
|
+
"rule_id": "12345678-1234-1234-1234-000000000022",
|
|
263
|
+
"execution_order": 22,
|
|
264
|
+
"result": "PASSED",
|
|
265
|
+
"description": "Verifies the completion, accuracy, and digital signatures of final recycling documentation including compost analysis and outcomes",
|
|
266
|
+
"rule_processor_checksum": "d2e3f4a5-b6c7-2345-6789-012345678cde",
|
|
267
|
+
"rule_source_code_version": "v2.1.3-b9a0f1fa-f3a4-9abc-0123-789012345def"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"rule_name": "Project Boundary Compliance",
|
|
271
|
+
"rule_slug": "project-boundary-compliance",
|
|
272
|
+
"rule_id": "12345678-1234-1234-1234-000000000023",
|
|
273
|
+
"execution_order": 23,
|
|
274
|
+
"result": "PASSED",
|
|
275
|
+
"description": "Validate that the MassID processing activities are within the approved project geographical and operational boundaries",
|
|
276
|
+
"rule_processor_checksum": "e3f4a5b6-c7d8-3456-789a-012345678def",
|
|
277
|
+
"rule_source_code_version": "v2.1.3-c0b1a2ab-a4b5-abcd-0123-89012345ef01"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"rule_name": "CO₂e Emissions Calculation",
|
|
281
|
+
"rule_slug": "co2e-emissions-calculation",
|
|
282
|
+
"rule_id": "12345678-1234-1234-1234-000000000024",
|
|
283
|
+
"execution_order": 24,
|
|
284
|
+
"result": "PASSED",
|
|
285
|
+
"description": "Calculate the prevented CO₂e emissions based on methane emission factors and the processed organic waste mass using IPCC 2019 guidelines",
|
|
286
|
+
"rule_processor_checksum": "f4a5b6c7-d8e9-4567-89ab-012345678ef0",
|
|
287
|
+
"rule_source_code_version": "v2.1.3-d1c2b3bc-b5c6-bcde-0123-9012345f0123"
|
|
288
|
+
}
|
|
289
|
+
]
|
|
290
|
+
}
|
|
291
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json",
|
|
4
|
+
"title": "MassID Audit IPFS Record",
|
|
5
|
+
"unevaluatedProperties": false,
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "../shared/base/base.schema.json"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"schema": {
|
|
14
|
+
"properties": {
|
|
15
|
+
"type": {
|
|
16
|
+
"const": "MassID Audit"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"data": {
|
|
21
|
+
"$ref": "./mass-id-audit.data.schema.json"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/methodology/methodology.data.schema.json",
|
|
4
|
+
"title": "Methodology Data",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"name",
|
|
8
|
+
"short_name",
|
|
9
|
+
"slug",
|
|
10
|
+
"version",
|
|
11
|
+
"description",
|
|
12
|
+
"revision_date",
|
|
13
|
+
"publication_date",
|
|
14
|
+
"methodology_pdf",
|
|
15
|
+
"mass_id_audit_rules"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"name": {
|
|
19
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/name",
|
|
20
|
+
"title": "Methodology Name",
|
|
21
|
+
"description": "Full official name of the methodology.",
|
|
22
|
+
"example": "BOLD Carbon (CH₄)"
|
|
23
|
+
},
|
|
24
|
+
"short_name": {
|
|
25
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_empty_string",
|
|
26
|
+
"maxLength": 50,
|
|
27
|
+
"title": "Methodology Short Name",
|
|
28
|
+
"description": "Abbreviated name for UI display and references.",
|
|
29
|
+
"example": "BOLD Carbon"
|
|
30
|
+
},
|
|
31
|
+
"slug": {
|
|
32
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/slug",
|
|
33
|
+
"title": "Methodology Slug"
|
|
34
|
+
},
|
|
35
|
+
"version": {
|
|
36
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/semantic_version",
|
|
37
|
+
"title": "Methodology Version"
|
|
38
|
+
},
|
|
39
|
+
"description": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"minLength": 50,
|
|
42
|
+
"maxLength": 2000,
|
|
43
|
+
"description": "Comprehensive methodology description including purpose, scope, and implementation approach.",
|
|
44
|
+
"example": "Certifies methane emissions prevented through organic waste composting using UNFCCC AMS-III.F methodology. Tracks complete chain of custody from waste generation through professional composting to quantify CO₂e emissions reductions."
|
|
45
|
+
},
|
|
46
|
+
"revision_date": {
|
|
47
|
+
"$ref": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/definitions/definitions.schema.json#/$defs/iso_date",
|
|
48
|
+
"description": "ISO 8601 date of the last revision to this methodology."
|
|
49
|
+
},
|
|
50
|
+
"publication_date": {
|
|
51
|
+
"$ref": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/definitions/definitions.schema.json#/$defs/iso_date",
|
|
52
|
+
"description": "ISO 8601 date of the original publication of this methodology."
|
|
53
|
+
},
|
|
54
|
+
"methodology_pdf": {
|
|
55
|
+
"$ref": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/definitions/definitions.schema.json#/$defs/ipfs_uri",
|
|
56
|
+
"description": "IPFS URI pointing to the complete methodology PDF document."
|
|
57
|
+
},
|
|
58
|
+
"mass_id_audit_rules": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"minItems": 1,
|
|
61
|
+
"title": "MassID Audit Rules",
|
|
62
|
+
"description": "Array of audit rules that must be executed to check MassID compliance with the methodology.",
|
|
63
|
+
"items": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"required": [
|
|
66
|
+
"rule_id",
|
|
67
|
+
"rule_slug",
|
|
68
|
+
"rule_name",
|
|
69
|
+
"description",
|
|
70
|
+
"source_code_url",
|
|
71
|
+
"mandatory",
|
|
72
|
+
"execution_order"
|
|
73
|
+
],
|
|
74
|
+
"properties": {
|
|
75
|
+
"rule_id": {
|
|
76
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/uuid",
|
|
77
|
+
"title": "Rule ID"
|
|
78
|
+
},
|
|
79
|
+
"rule_slug": {
|
|
80
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/slug",
|
|
81
|
+
"title": "Rule Slug"
|
|
82
|
+
},
|
|
83
|
+
"rule_name": {
|
|
84
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/non_empty_string",
|
|
85
|
+
"maxLength": 100,
|
|
86
|
+
"title": "Rule Name",
|
|
87
|
+
"description": "Human-readable name of the rule.",
|
|
88
|
+
"example": "Waste Mass is Unique"
|
|
89
|
+
},
|
|
90
|
+
"description": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 10,
|
|
93
|
+
"maxLength": 500,
|
|
94
|
+
"title": "Rule Description",
|
|
95
|
+
"description": "Detailed description of what the rule validates and why it's necessary.",
|
|
96
|
+
"example": "Validates that each MassID is unique within the system to prevent duplicate entries"
|
|
97
|
+
},
|
|
98
|
+
"source_code_url": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"format": "uri",
|
|
101
|
+
"pattern": "^https://github\\.com/.*$",
|
|
102
|
+
"title": "Rule Source Code URL",
|
|
103
|
+
"description": "GitHub URL pointing to the implementation source code for this rule.",
|
|
104
|
+
"example": "https://github.com/carrot-foundation/methodologies/blob/main/bold-carbon/rules/waste-mass-unique.js"
|
|
105
|
+
},
|
|
106
|
+
"mandatory": {
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"description": "Whether this rule is mandatory for methodology compliance.",
|
|
109
|
+
"example": true
|
|
110
|
+
},
|
|
111
|
+
"execution_order": {
|
|
112
|
+
"$ref": "../shared/definitions/definitions.schema.json#/$defs/positive_integer",
|
|
113
|
+
"title": "Rule Execution Order"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"additionalProperties": false
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"additionalProperties": false
|
|
121
|
+
}
|