@carrot-foundation/schemas 0.2.3 → 0.3.0
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/README.md +144 -116
- package/dist/index.cjs +204 -267
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -23
- package/dist/index.d.ts +23 -23
- package/dist/index.js +204 -267
- package/dist/index.js.map +1 -1
- package/package.json +20 -20
- package/schemas/ipfs/collection/collection.example.json +3 -3
- package/schemas/ipfs/collection/collection.schema.json +77 -77
- package/schemas/ipfs/credit/credit.example.json +4 -4
- package/schemas/ipfs/credit/credit.schema.json +85 -85
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.example.json +15 -15
- package/schemas/ipfs/credit-purchase-receipt/credit-purchase-receipt.schema.json +432 -424
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.example.json +15 -15
- package/schemas/ipfs/credit-retirement-receipt/credit-retirement-receipt.schema.json +465 -457
- package/schemas/ipfs/gas-id/gas-id.example.json +9 -9
- package/schemas/ipfs/gas-id/gas-id.schema.json +448 -432
- package/schemas/ipfs/mass-id/mass-id.example.json +7 -7
- package/schemas/ipfs/mass-id/mass-id.schema.json +533 -512
- package/schemas/ipfs/mass-id-audit/mass-id-audit.example.json +57 -57
- package/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json +225 -217
- package/schemas/ipfs/methodology/methodology.example.json +5 -5
- package/schemas/ipfs/methodology/methodology.schema.json +124 -124
- package/schemas/ipfs/recycled-id/recycled-id.example.json +9 -9
- package/schemas/ipfs/recycled-id/recycled-id.schema.json +400 -384
- package/schemas/schema-hashes.json +10 -10
|
@@ -1,58 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "MassID Audit IPFS Record",
|
|
4
|
-
"description": "MassID audit metadata stored in IPFS, extending the base schema with audit results and references",
|
|
5
|
-
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.2.3/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json",
|
|
6
|
-
"version": "0.2.3",
|
|
7
3
|
"type": "object",
|
|
8
4
|
"properties": {
|
|
9
5
|
"$schema": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"format": "uri",
|
|
10
8
|
"title": "JSON Schema URI",
|
|
11
9
|
"description": "URI of the JSON Schema used to validate this record",
|
|
12
|
-
"example": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/base/base.schema.json"
|
|
13
|
-
"type": "string",
|
|
14
|
-
"format": "uri"
|
|
10
|
+
"example": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/heads/main/schemas/ipfs/shared/base/base.schema.json"
|
|
15
11
|
},
|
|
16
12
|
"schema": {
|
|
17
13
|
"type": "object",
|
|
18
14
|
"properties": {
|
|
19
15
|
"hash": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^[0-9a-fA-F]{64}$",
|
|
20
18
|
"title": "Schema Hash",
|
|
21
19
|
"description": "SHA-256 hash of the JSON Schema this record was validated against",
|
|
22
20
|
"examples": [
|
|
23
21
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
24
|
-
]
|
|
25
|
-
"type": "string",
|
|
26
|
-
"pattern": "^[0-9a-fA-F]{64}$"
|
|
22
|
+
]
|
|
27
23
|
},
|
|
28
24
|
"type": {
|
|
29
|
-
"title": "MassID Audit Schema Type",
|
|
30
|
-
"description": "MassID Audit schema type",
|
|
31
25
|
"type": "string",
|
|
32
|
-
"const": "MassID Audit"
|
|
26
|
+
"const": "MassID Audit",
|
|
27
|
+
"title": "MassID Audit Schema Type",
|
|
28
|
+
"description": "Discriminator value identifying this record as a MassID Audit methodology-rule execution report"
|
|
33
29
|
},
|
|
34
30
|
"version": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1,
|
|
33
|
+
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
|
|
35
34
|
"title": "Schema Version",
|
|
36
35
|
"description": "Version of the schema, using semantic versioning",
|
|
37
36
|
"examples": [
|
|
38
37
|
"0.1.0",
|
|
39
38
|
"1.0.0",
|
|
40
39
|
"2.1.3"
|
|
41
|
-
]
|
|
42
|
-
"type": "string",
|
|
43
|
-
"minLength": 1,
|
|
44
|
-
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
40
|
+
]
|
|
45
41
|
},
|
|
46
42
|
"ipfs_uri": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 1,
|
|
45
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
47
46
|
"title": "Schema IPFS URI",
|
|
48
47
|
"description": "IPFS URI for this JSON Schema when the primary schema URI is unavailable",
|
|
49
48
|
"examples": [
|
|
50
49
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
51
50
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
52
|
-
]
|
|
53
|
-
"type": "string",
|
|
54
|
-
"minLength": 1,
|
|
55
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
51
|
+
]
|
|
56
52
|
}
|
|
57
53
|
},
|
|
58
54
|
"required": [
|
|
@@ -64,99 +60,97 @@
|
|
|
64
60
|
"additionalProperties": false
|
|
65
61
|
},
|
|
66
62
|
"created_at": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"format": "date-time",
|
|
65
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
67
66
|
"title": "Created At",
|
|
68
67
|
"description": "ISO 8601 creation timestamp for this record",
|
|
69
68
|
"examples": [
|
|
70
69
|
"2024-12-05T11:02:47.000Z"
|
|
71
|
-
]
|
|
72
|
-
"type": "string",
|
|
73
|
-
"format": "date-time",
|
|
74
|
-
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
70
|
+
]
|
|
75
71
|
},
|
|
76
72
|
"external_id": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"format": "uuid",
|
|
75
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
77
76
|
"title": "External ID",
|
|
78
|
-
"description": "UUID identifier
|
|
77
|
+
"description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
|
|
79
78
|
"examples": [
|
|
80
79
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
81
|
-
]
|
|
82
|
-
"type": "string",
|
|
83
|
-
"format": "uuid",
|
|
84
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
80
|
+
]
|
|
85
81
|
},
|
|
86
82
|
"external_url": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"format": "uri",
|
|
87
85
|
"title": "External URL",
|
|
88
86
|
"description": "URL pointing to external resources",
|
|
89
87
|
"examples": [
|
|
90
88
|
"https://explore.carrot.eco/",
|
|
91
89
|
"https://whitepaper.carrot.eco/"
|
|
92
|
-
]
|
|
93
|
-
"type": "string",
|
|
94
|
-
"format": "uri"
|
|
90
|
+
]
|
|
95
91
|
},
|
|
96
92
|
"viewer_reference": {
|
|
97
|
-
"title": "Metadata Viewer Reference",
|
|
98
|
-
"description": "References to the metadata viewer dApp, including immutable and latest entry points",
|
|
99
93
|
"type": "object",
|
|
100
94
|
"properties": {
|
|
101
95
|
"ipfs_uri": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
102
99
|
"title": "Viewer IPFS URI",
|
|
103
100
|
"description": "IPFS URI of the metadata viewer dApp build",
|
|
104
101
|
"examples": [
|
|
105
102
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
106
103
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
107
|
-
]
|
|
108
|
-
"type": "string",
|
|
109
|
-
"minLength": 1,
|
|
110
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
104
|
+
]
|
|
111
105
|
},
|
|
112
106
|
"integrity_hash": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"pattern": "^[0-9a-fA-F]{64}$",
|
|
113
109
|
"title": "Viewer Integrity Hash",
|
|
114
110
|
"description": "SHA-256 hash of the published viewer bundle to verify integrity",
|
|
115
111
|
"examples": [
|
|
116
112
|
"87f633634cc4b02f628685651f0a29b7bfa22a0bd841f725c6772dd00a58d489"
|
|
117
|
-
]
|
|
118
|
-
"type": "string",
|
|
119
|
-
"pattern": "^[0-9a-fA-F]{64}$"
|
|
113
|
+
]
|
|
120
114
|
}
|
|
121
115
|
},
|
|
122
116
|
"required": [
|
|
123
117
|
"ipfs_uri",
|
|
124
118
|
"integrity_hash"
|
|
125
119
|
],
|
|
126
|
-
"additionalProperties": false
|
|
120
|
+
"additionalProperties": false,
|
|
121
|
+
"title": "Metadata Viewer Reference",
|
|
122
|
+
"description": "References to the metadata viewer dApp, including immutable and latest entry points"
|
|
127
123
|
},
|
|
128
124
|
"environment": {
|
|
129
|
-
"title": "Record Environment",
|
|
130
|
-
"description": "Environment information for the record",
|
|
131
125
|
"type": "object",
|
|
132
126
|
"properties": {
|
|
133
127
|
"blockchain_network": {
|
|
134
|
-
"title": "Blockchain Network",
|
|
135
|
-
"description": "Blockchain network where this record is deployed",
|
|
136
128
|
"type": "string",
|
|
137
129
|
"enum": [
|
|
138
130
|
"mainnet",
|
|
139
131
|
"testnet"
|
|
140
|
-
]
|
|
132
|
+
],
|
|
133
|
+
"title": "Blockchain Network",
|
|
134
|
+
"description": "Blockchain network where this record is deployed"
|
|
141
135
|
},
|
|
142
136
|
"deployment": {
|
|
143
|
-
"title": "Deployment Environment",
|
|
144
|
-
"description": "System environment where this record was generated",
|
|
145
137
|
"type": "string",
|
|
146
138
|
"enum": [
|
|
147
139
|
"production",
|
|
148
140
|
"development",
|
|
149
141
|
"testing"
|
|
150
|
-
]
|
|
142
|
+
],
|
|
143
|
+
"title": "Deployment Environment",
|
|
144
|
+
"description": "System environment where this record was generated"
|
|
151
145
|
},
|
|
152
146
|
"data_set_name": {
|
|
153
|
-
"title": "Data Set Name",
|
|
154
|
-
"description": "Name of the data set for this record",
|
|
155
147
|
"type": "string",
|
|
156
148
|
"enum": [
|
|
157
149
|
"TEST",
|
|
158
150
|
"PROD"
|
|
159
|
-
]
|
|
151
|
+
],
|
|
152
|
+
"title": "Data Set Name",
|
|
153
|
+
"description": "Name of the data set for this record"
|
|
160
154
|
}
|
|
161
155
|
},
|
|
162
156
|
"required": [
|
|
@@ -164,73 +158,71 @@
|
|
|
164
158
|
"deployment",
|
|
165
159
|
"data_set_name"
|
|
166
160
|
],
|
|
167
|
-
"additionalProperties": false
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"title": "Record Environment",
|
|
163
|
+
"description": "Environment information for the record"
|
|
168
164
|
},
|
|
169
165
|
"data": {
|
|
170
|
-
"title": "MassID Audit Data",
|
|
171
|
-
"description": "Complete data structure for MassID Audit records. Must include exactly one of gas_id or recycled_id.",
|
|
172
166
|
"type": "object",
|
|
173
167
|
"properties": {
|
|
174
168
|
"methodology": {
|
|
175
|
-
"title": "Methodology Reference",
|
|
176
|
-
"description": "Reference to a methodology record",
|
|
177
169
|
"type": "object",
|
|
178
170
|
"properties": {
|
|
179
171
|
"external_id": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"format": "uuid",
|
|
174
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
180
175
|
"title": "Methodology External ID",
|
|
181
176
|
"description": "Unique identifier for the methodology",
|
|
182
177
|
"examples": [
|
|
183
178
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
184
|
-
]
|
|
185
|
-
"type": "string",
|
|
186
|
-
"format": "uuid",
|
|
187
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
179
|
+
]
|
|
188
180
|
},
|
|
189
181
|
"name": {
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"examples": [
|
|
182
|
+
"type": "string",
|
|
183
|
+
"enum": [
|
|
193
184
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
194
185
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
195
186
|
],
|
|
196
|
-
"
|
|
197
|
-
"
|
|
187
|
+
"title": "Methodology Name",
|
|
188
|
+
"description": "Full official name of the methodology",
|
|
189
|
+
"examples": [
|
|
198
190
|
"AMS-III.F. | BOLD Carbon (CH₄) - SSC",
|
|
199
191
|
"AMS-III.F. | BOLD Recycling Credit"
|
|
200
192
|
]
|
|
201
193
|
},
|
|
202
194
|
"version": {
|
|
195
|
+
"type": "string",
|
|
196
|
+
"minLength": 1,
|
|
197
|
+
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
|
|
203
198
|
"title": "Methodology Version",
|
|
204
199
|
"description": "Version of the methodology",
|
|
205
200
|
"examples": [
|
|
206
201
|
"0.1.0",
|
|
207
202
|
"1.0.0",
|
|
208
203
|
"2.1.3"
|
|
209
|
-
]
|
|
210
|
-
"type": "string",
|
|
211
|
-
"minLength": 1,
|
|
212
|
-
"pattern": "^v?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
204
|
+
]
|
|
213
205
|
},
|
|
214
206
|
"external_url": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"format": "uri",
|
|
215
209
|
"title": "Methodology External URL",
|
|
216
210
|
"description": "URL to view the methodology on Carrot Explorer",
|
|
217
211
|
"examples": [
|
|
218
212
|
"https://explore.carrot.eco/",
|
|
219
213
|
"https://whitepaper.carrot.eco/"
|
|
220
|
-
]
|
|
221
|
-
"type": "string",
|
|
222
|
-
"format": "uri"
|
|
214
|
+
]
|
|
223
215
|
},
|
|
224
216
|
"ipfs_uri": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"minLength": 1,
|
|
219
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
225
220
|
"title": "Methodology IPFS URI",
|
|
226
221
|
"description": "IPFS URI to the methodology record",
|
|
227
222
|
"examples": [
|
|
228
223
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
229
224
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
230
|
-
]
|
|
231
|
-
"type": "string",
|
|
232
|
-
"minLength": 1,
|
|
233
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
225
|
+
]
|
|
234
226
|
}
|
|
235
227
|
},
|
|
236
228
|
"required": [
|
|
@@ -240,63 +232,63 @@
|
|
|
240
232
|
"external_url",
|
|
241
233
|
"ipfs_uri"
|
|
242
234
|
],
|
|
243
|
-
"additionalProperties": false
|
|
235
|
+
"additionalProperties": false,
|
|
236
|
+
"title": "Methodology Reference",
|
|
237
|
+
"description": "Reference to a methodology record"
|
|
244
238
|
},
|
|
245
239
|
"mass_id": {
|
|
246
|
-
"title": "MassID Reference",
|
|
247
|
-
"description": "Reference to a MassID record",
|
|
248
240
|
"type": "object",
|
|
249
241
|
"properties": {
|
|
250
242
|
"external_id": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"format": "uuid",
|
|
245
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
251
246
|
"title": "External ID",
|
|
252
|
-
"description": "UUID identifier
|
|
247
|
+
"description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
|
|
253
248
|
"examples": [
|
|
254
249
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
255
|
-
]
|
|
256
|
-
"type": "string",
|
|
257
|
-
"format": "uuid",
|
|
258
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
250
|
+
]
|
|
259
251
|
},
|
|
260
252
|
"external_url": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"format": "uri",
|
|
261
255
|
"title": "External URL",
|
|
262
256
|
"description": "URL pointing to external resources",
|
|
263
257
|
"examples": [
|
|
264
258
|
"https://explore.carrot.eco/",
|
|
265
259
|
"https://whitepaper.carrot.eco/"
|
|
266
|
-
]
|
|
267
|
-
"type": "string",
|
|
268
|
-
"format": "uri"
|
|
260
|
+
]
|
|
269
261
|
},
|
|
270
262
|
"ipfs_uri": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"minLength": 1,
|
|
265
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
271
266
|
"title": "IPFS URI",
|
|
272
267
|
"description": "InterPlanetary File System URI pointing to distributed content",
|
|
273
268
|
"examples": [
|
|
274
269
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
275
270
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
276
|
-
]
|
|
277
|
-
"type": "string",
|
|
278
|
-
"minLength": 1,
|
|
279
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
271
|
+
]
|
|
280
272
|
},
|
|
281
273
|
"smart_contract_address": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"pattern": "^0x[a-f0-9]{40}$",
|
|
282
276
|
"title": "Smart Contract Address",
|
|
283
277
|
"description": "Ethereum-compatible address of the smart contract that mints and manages this token",
|
|
284
278
|
"examples": [
|
|
285
279
|
"0x1234567890abcdef1234567890abcdef12345678"
|
|
286
|
-
]
|
|
287
|
-
"type": "string",
|
|
288
|
-
"pattern": "^0x[a-f0-9]{40}$"
|
|
280
|
+
]
|
|
289
281
|
},
|
|
290
282
|
"token_id": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"minLength": 1,
|
|
285
|
+
"pattern": "^\\d+$",
|
|
291
286
|
"title": "Token ID",
|
|
292
287
|
"description": "Unique token identifier for this NFT within the smart contract",
|
|
293
288
|
"examples": [
|
|
294
289
|
"456789",
|
|
295
290
|
"1000000"
|
|
296
|
-
]
|
|
297
|
-
"type": "string",
|
|
298
|
-
"minLength": 1,
|
|
299
|
-
"pattern": "^\\d+$"
|
|
291
|
+
]
|
|
300
292
|
}
|
|
301
293
|
},
|
|
302
294
|
"required": [
|
|
@@ -306,63 +298,63 @@
|
|
|
306
298
|
"smart_contract_address",
|
|
307
299
|
"token_id"
|
|
308
300
|
],
|
|
309
|
-
"additionalProperties": false
|
|
301
|
+
"additionalProperties": false,
|
|
302
|
+
"title": "MassID Reference",
|
|
303
|
+
"description": "Reference to a MassID record"
|
|
310
304
|
},
|
|
311
305
|
"gas_id": {
|
|
312
|
-
"title": "GasID Reference",
|
|
313
|
-
"description": "Reference to a GasID record",
|
|
314
306
|
"type": "object",
|
|
315
307
|
"properties": {
|
|
316
308
|
"external_id": {
|
|
309
|
+
"type": "string",
|
|
310
|
+
"format": "uuid",
|
|
311
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
317
312
|
"title": "External ID",
|
|
318
|
-
"description": "UUID identifier
|
|
313
|
+
"description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
|
|
319
314
|
"examples": [
|
|
320
315
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
321
|
-
]
|
|
322
|
-
"type": "string",
|
|
323
|
-
"format": "uuid",
|
|
324
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
316
|
+
]
|
|
325
317
|
},
|
|
326
318
|
"external_url": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"format": "uri",
|
|
327
321
|
"title": "External URL",
|
|
328
322
|
"description": "URL pointing to external resources",
|
|
329
323
|
"examples": [
|
|
330
324
|
"https://explore.carrot.eco/",
|
|
331
325
|
"https://whitepaper.carrot.eco/"
|
|
332
|
-
]
|
|
333
|
-
"type": "string",
|
|
334
|
-
"format": "uri"
|
|
326
|
+
]
|
|
335
327
|
},
|
|
336
328
|
"ipfs_uri": {
|
|
329
|
+
"type": "string",
|
|
330
|
+
"minLength": 1,
|
|
331
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
337
332
|
"title": "IPFS URI",
|
|
338
333
|
"description": "InterPlanetary File System URI pointing to distributed content",
|
|
339
334
|
"examples": [
|
|
340
335
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
341
336
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
342
|
-
]
|
|
343
|
-
"type": "string",
|
|
344
|
-
"minLength": 1,
|
|
345
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
337
|
+
]
|
|
346
338
|
},
|
|
347
339
|
"smart_contract_address": {
|
|
340
|
+
"type": "string",
|
|
341
|
+
"pattern": "^0x[a-f0-9]{40}$",
|
|
348
342
|
"title": "Smart Contract Address",
|
|
349
343
|
"description": "Ethereum-compatible address of the smart contract that mints and manages this token",
|
|
350
344
|
"examples": [
|
|
351
345
|
"0x1234567890abcdef1234567890abcdef12345678"
|
|
352
|
-
]
|
|
353
|
-
"type": "string",
|
|
354
|
-
"pattern": "^0x[a-f0-9]{40}$"
|
|
346
|
+
]
|
|
355
347
|
},
|
|
356
348
|
"token_id": {
|
|
349
|
+
"type": "string",
|
|
350
|
+
"minLength": 1,
|
|
351
|
+
"pattern": "^\\d+$",
|
|
357
352
|
"title": "Token ID",
|
|
358
353
|
"description": "Unique token identifier for this NFT within the smart contract",
|
|
359
354
|
"examples": [
|
|
360
355
|
"456789",
|
|
361
356
|
"1000000"
|
|
362
|
-
]
|
|
363
|
-
"type": "string",
|
|
364
|
-
"minLength": 1,
|
|
365
|
-
"pattern": "^\\d+$"
|
|
357
|
+
]
|
|
366
358
|
}
|
|
367
359
|
},
|
|
368
360
|
"required": [
|
|
@@ -372,63 +364,63 @@
|
|
|
372
364
|
"smart_contract_address",
|
|
373
365
|
"token_id"
|
|
374
366
|
],
|
|
375
|
-
"additionalProperties": false
|
|
367
|
+
"additionalProperties": false,
|
|
368
|
+
"title": "GasID Reference",
|
|
369
|
+
"description": "Reference to a GasID record"
|
|
376
370
|
},
|
|
377
371
|
"recycled_id": {
|
|
378
|
-
"title": "RecycledID Reference",
|
|
379
|
-
"description": "Reference to a RecycledID record",
|
|
380
372
|
"type": "object",
|
|
381
373
|
"properties": {
|
|
382
374
|
"external_id": {
|
|
375
|
+
"type": "string",
|
|
376
|
+
"format": "uuid",
|
|
377
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
383
378
|
"title": "External ID",
|
|
384
|
-
"description": "UUID identifier
|
|
379
|
+
"description": "UUID v4 identifier linking this IPFS record to its counterpart in the Carrot platform and other consuming systems",
|
|
385
380
|
"examples": [
|
|
386
381
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
387
|
-
]
|
|
388
|
-
"type": "string",
|
|
389
|
-
"format": "uuid",
|
|
390
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
382
|
+
]
|
|
391
383
|
},
|
|
392
384
|
"external_url": {
|
|
385
|
+
"type": "string",
|
|
386
|
+
"format": "uri",
|
|
393
387
|
"title": "External URL",
|
|
394
388
|
"description": "URL pointing to external resources",
|
|
395
389
|
"examples": [
|
|
396
390
|
"https://explore.carrot.eco/",
|
|
397
391
|
"https://whitepaper.carrot.eco/"
|
|
398
|
-
]
|
|
399
|
-
"type": "string",
|
|
400
|
-
"format": "uri"
|
|
392
|
+
]
|
|
401
393
|
},
|
|
402
394
|
"ipfs_uri": {
|
|
395
|
+
"type": "string",
|
|
396
|
+
"minLength": 1,
|
|
397
|
+
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$",
|
|
403
398
|
"title": "IPFS URI",
|
|
404
399
|
"description": "InterPlanetary File System URI pointing to distributed content",
|
|
405
400
|
"examples": [
|
|
406
401
|
"ipfs://bafybeigdyrztvzl5cceubvaxob7iqh6f3f7s36c74ojav2xsz2uib2g3vm",
|
|
407
402
|
"ipfs://bafybeihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku"
|
|
408
|
-
]
|
|
409
|
-
"type": "string",
|
|
410
|
-
"minLength": 1,
|
|
411
|
-
"pattern": "^ipfs:\\/\\/(?:Qm[1-9A-HJ-NP-Za-km-z]{44}|[bB][a-z2-7]{58,}|[zZ][1-9A-HJ-NP-Za-km-z]{48,})(?:\\/[^\\s]*)?$"
|
|
403
|
+
]
|
|
412
404
|
},
|
|
413
405
|
"smart_contract_address": {
|
|
406
|
+
"type": "string",
|
|
407
|
+
"pattern": "^0x[a-f0-9]{40}$",
|
|
414
408
|
"title": "Smart Contract Address",
|
|
415
409
|
"description": "Ethereum-compatible address of the smart contract that mints and manages this token",
|
|
416
410
|
"examples": [
|
|
417
411
|
"0x1234567890abcdef1234567890abcdef12345678"
|
|
418
|
-
]
|
|
419
|
-
"type": "string",
|
|
420
|
-
"pattern": "^0x[a-f0-9]{40}$"
|
|
412
|
+
]
|
|
421
413
|
},
|
|
422
414
|
"token_id": {
|
|
415
|
+
"type": "string",
|
|
416
|
+
"minLength": 1,
|
|
417
|
+
"pattern": "^\\d+$",
|
|
423
418
|
"title": "Token ID",
|
|
424
419
|
"description": "Unique token identifier for this NFT within the smart contract",
|
|
425
420
|
"examples": [
|
|
426
421
|
"456789",
|
|
427
422
|
"1000000"
|
|
428
|
-
]
|
|
429
|
-
"type": "string",
|
|
430
|
-
"minLength": 1,
|
|
431
|
-
"pattern": "^\\d+$"
|
|
423
|
+
]
|
|
432
424
|
}
|
|
433
425
|
},
|
|
434
426
|
"required": [
|
|
@@ -438,42 +430,42 @@
|
|
|
438
430
|
"smart_contract_address",
|
|
439
431
|
"token_id"
|
|
440
432
|
],
|
|
441
|
-
"additionalProperties": false
|
|
433
|
+
"additionalProperties": false,
|
|
434
|
+
"title": "RecycledID Reference",
|
|
435
|
+
"description": "Reference to a RecycledID record"
|
|
442
436
|
},
|
|
443
437
|
"audit_summary": {
|
|
444
|
-
"title": "Audit Summary",
|
|
445
|
-
"description": "Summary of audit execution results",
|
|
446
438
|
"type": "object",
|
|
447
439
|
"properties": {
|
|
448
440
|
"started_at": {
|
|
441
|
+
"type": "string",
|
|
442
|
+
"format": "date-time",
|
|
443
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
449
444
|
"title": "Audit Start Timestamp",
|
|
450
445
|
"description": "ISO 8601 timestamp when the audit was started",
|
|
451
446
|
"examples": [
|
|
452
447
|
"2024-12-05T11:02:47.000Z"
|
|
453
|
-
]
|
|
454
|
-
"type": "string",
|
|
455
|
-
"format": "date-time",
|
|
456
|
-
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
448
|
+
]
|
|
457
449
|
},
|
|
458
450
|
"completed_at": {
|
|
451
|
+
"type": "string",
|
|
452
|
+
"format": "date-time",
|
|
453
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
459
454
|
"title": "Audit Completion Timestamp",
|
|
460
455
|
"description": "ISO 8601 timestamp when the audit was completed",
|
|
461
456
|
"examples": [
|
|
462
457
|
"2024-12-05T11:02:47.000Z"
|
|
463
|
-
]
|
|
464
|
-
"type": "string",
|
|
465
|
-
"format": "date-time",
|
|
466
|
-
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
458
|
+
]
|
|
467
459
|
},
|
|
468
460
|
"result": {
|
|
469
|
-
"
|
|
470
|
-
"
|
|
471
|
-
"examples": [
|
|
461
|
+
"type": "string",
|
|
462
|
+
"enum": [
|
|
472
463
|
"PASSED",
|
|
473
464
|
"FAILED"
|
|
474
465
|
],
|
|
475
|
-
"
|
|
476
|
-
"
|
|
466
|
+
"title": "Audit Result",
|
|
467
|
+
"description": "Overall outcome of the audit process",
|
|
468
|
+
"examples": [
|
|
477
469
|
"PASSED",
|
|
478
470
|
"FAILED"
|
|
479
471
|
]
|
|
@@ -484,122 +476,120 @@
|
|
|
484
476
|
"completed_at",
|
|
485
477
|
"result"
|
|
486
478
|
],
|
|
487
|
-
"additionalProperties": false
|
|
479
|
+
"additionalProperties": false,
|
|
480
|
+
"title": "Audit Summary",
|
|
481
|
+
"description": "Overview of the audit execution including start time, completion time, and overall pass/fail result"
|
|
488
482
|
},
|
|
489
483
|
"rule_execution_results": {
|
|
490
|
-
"title": "Audit Rule Execution Results",
|
|
491
|
-
"description": "Detailed results of each audit rule execution, sorted by execution_started_at",
|
|
492
484
|
"minItems": 1,
|
|
493
485
|
"type": "array",
|
|
494
486
|
"items": {
|
|
495
|
-
"title": "Audit Rule Execution Result",
|
|
496
|
-
"description": "Detailed result of an audit rule execution",
|
|
497
487
|
"type": "object",
|
|
498
488
|
"properties": {
|
|
499
489
|
"rule_id": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"format": "uuid",
|
|
492
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
500
493
|
"title": "Rule ID",
|
|
501
494
|
"description": "Unique identifier for the audit rule",
|
|
502
495
|
"examples": [
|
|
503
496
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
504
|
-
]
|
|
505
|
-
"type": "string",
|
|
506
|
-
"format": "uuid",
|
|
507
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
497
|
+
]
|
|
508
498
|
},
|
|
509
499
|
"rule_slug": {
|
|
500
|
+
"type": "string",
|
|
501
|
+
"minLength": 1,
|
|
502
|
+
"maxLength": 100,
|
|
503
|
+
"pattern": "^[a-z0-9-]+$",
|
|
510
504
|
"title": "Rule Slug",
|
|
511
505
|
"description": "URL-friendly identifier for the rule",
|
|
512
506
|
"examples": [
|
|
513
507
|
"mass-id-123",
|
|
514
508
|
"recycled-plastic",
|
|
515
509
|
"organic-waste"
|
|
516
|
-
]
|
|
510
|
+
]
|
|
511
|
+
},
|
|
512
|
+
"rule_name": {
|
|
517
513
|
"type": "string",
|
|
518
514
|
"minLength": 1,
|
|
519
515
|
"maxLength": 100,
|
|
520
|
-
"pattern": "^[a-z0-9-]+$"
|
|
521
|
-
},
|
|
522
|
-
"rule_name": {
|
|
523
516
|
"title": "Rule Name",
|
|
524
517
|
"description": "Human-readable name of the rule",
|
|
525
518
|
"examples": [
|
|
526
519
|
"Waste Mass is Unique",
|
|
527
520
|
"No Conflicting GasID or Credit"
|
|
528
|
-
]
|
|
529
|
-
"type": "string",
|
|
530
|
-
"minLength": 1,
|
|
531
|
-
"maxLength": 100
|
|
521
|
+
]
|
|
532
522
|
},
|
|
533
523
|
"rule_description": {
|
|
524
|
+
"type": "string",
|
|
525
|
+
"minLength": 10,
|
|
526
|
+
"maxLength": 500,
|
|
534
527
|
"title": "Rule Description",
|
|
535
528
|
"description": "Detailed description of what the rule validates and why it is necessary",
|
|
536
529
|
"examples": [
|
|
537
530
|
"Validates that each MassID is unique within the system to prevent duplicate entries"
|
|
538
|
-
]
|
|
539
|
-
"type": "string",
|
|
540
|
-
"minLength": 10,
|
|
541
|
-
"maxLength": 500
|
|
531
|
+
]
|
|
542
532
|
},
|
|
543
533
|
"rule_source_code_url": {
|
|
534
|
+
"type": "string",
|
|
535
|
+
"pattern": "^https:\\/\\/github\\.com\\/.*$",
|
|
544
536
|
"title": "Rule Source Code URL",
|
|
545
537
|
"description": "GitHub URL pointing to the implementation source code for this rule",
|
|
546
538
|
"examples": [
|
|
547
539
|
"https://github.com/carrot-foundation/methodologies/blob/main/bold-carbon/rules/waste-mass-unique.js"
|
|
548
|
-
]
|
|
549
|
-
"type": "string",
|
|
550
|
-
"pattern": "^https:\\/\\/github\\.com\\/.*$"
|
|
540
|
+
]
|
|
551
541
|
},
|
|
552
542
|
"rule_execution_order": {
|
|
543
|
+
"type": "integer",
|
|
544
|
+
"minimum": 1,
|
|
545
|
+
"maximum": 9007199254740991,
|
|
553
546
|
"title": "Rule Execution Order",
|
|
554
547
|
"description": "Sequential order in which this rule must be executed",
|
|
555
548
|
"examples": [
|
|
556
549
|
1,
|
|
557
550
|
123,
|
|
558
551
|
456
|
|
559
|
-
]
|
|
560
|
-
"type": "integer",
|
|
561
|
-
"minimum": 1,
|
|
562
|
-
"maximum": 9007199254740991
|
|
552
|
+
]
|
|
563
553
|
},
|
|
564
554
|
"execution_id": {
|
|
555
|
+
"type": "string",
|
|
556
|
+
"format": "uuid",
|
|
557
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
|
|
565
558
|
"title": "Execution ID",
|
|
566
559
|
"description": "Unique identifier for this specific rule execution",
|
|
567
560
|
"examples": [
|
|
568
561
|
"ad44dd3f-f176-4b98-bf78-5ee6e77d0530"
|
|
569
|
-
]
|
|
570
|
-
"type": "string",
|
|
571
|
-
"format": "uuid",
|
|
572
|
-
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
|
|
562
|
+
]
|
|
573
563
|
},
|
|
574
564
|
"execution_started_at": {
|
|
565
|
+
"type": "string",
|
|
566
|
+
"format": "date-time",
|
|
567
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
575
568
|
"title": "Execution Started At",
|
|
576
569
|
"description": "ISO 8601 timestamp when the rule execution started",
|
|
577
570
|
"examples": [
|
|
578
571
|
"2024-12-05T11:02:47.000Z"
|
|
579
|
-
]
|
|
580
|
-
"type": "string",
|
|
581
|
-
"format": "date-time",
|
|
582
|
-
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
572
|
+
]
|
|
583
573
|
},
|
|
584
574
|
"execution_completed_at": {
|
|
575
|
+
"type": "string",
|
|
576
|
+
"format": "date-time",
|
|
577
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
585
578
|
"title": "Execution Completed At",
|
|
586
579
|
"description": "ISO 8601 timestamp when the rule execution completed",
|
|
587
580
|
"examples": [
|
|
588
581
|
"2024-12-05T11:02:47.000Z"
|
|
589
|
-
]
|
|
590
|
-
"type": "string",
|
|
591
|
-
"format": "date-time",
|
|
592
|
-
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
582
|
+
]
|
|
593
583
|
},
|
|
594
584
|
"result": {
|
|
595
|
-
"
|
|
596
|
-
"
|
|
597
|
-
"examples": [
|
|
585
|
+
"type": "string",
|
|
586
|
+
"enum": [
|
|
598
587
|
"PASSED",
|
|
599
588
|
"FAILED"
|
|
600
589
|
],
|
|
601
|
-
"
|
|
602
|
-
"
|
|
590
|
+
"title": "Rule Execution Result",
|
|
591
|
+
"description": "Result of the rule execution",
|
|
592
|
+
"examples": [
|
|
603
593
|
"PASSED",
|
|
604
594
|
"FAILED"
|
|
605
595
|
]
|
|
@@ -618,18 +608,26 @@
|
|
|
618
608
|
"maxLength": 2000
|
|
619
609
|
},
|
|
620
610
|
"rule_processor_checksum": {
|
|
621
|
-
"title": "Rule Processor Checksum",
|
|
622
|
-
"description": "Checksum for rule processor integrity verification",
|
|
623
611
|
"type": "string",
|
|
624
612
|
"minLength": 1,
|
|
625
|
-
"maxLength": 200
|
|
613
|
+
"maxLength": 200,
|
|
614
|
+
"title": "Rule Processor Checksum",
|
|
615
|
+
"description": "Checksum for rule processor integrity verification",
|
|
616
|
+
"examples": [
|
|
617
|
+
"example-value",
|
|
618
|
+
"Hello World"
|
|
619
|
+
]
|
|
626
620
|
},
|
|
627
621
|
"rule_source_code_version": {
|
|
628
|
-
"title": "Rule Source Code Version",
|
|
629
|
-
"description": "Version identifier for the rule source code",
|
|
630
622
|
"type": "string",
|
|
631
623
|
"minLength": 1,
|
|
632
|
-
"maxLength": 200
|
|
624
|
+
"maxLength": 200,
|
|
625
|
+
"title": "Rule Source Code Version",
|
|
626
|
+
"description": "Version identifier for the rule source code",
|
|
627
|
+
"examples": [
|
|
628
|
+
"example-value",
|
|
629
|
+
"Hello World"
|
|
630
|
+
]
|
|
633
631
|
}
|
|
634
632
|
},
|
|
635
633
|
"required": [
|
|
@@ -646,8 +644,12 @@
|
|
|
646
644
|
"rule_processor_checksum",
|
|
647
645
|
"rule_source_code_version"
|
|
648
646
|
],
|
|
649
|
-
"additionalProperties": false
|
|
650
|
-
|
|
647
|
+
"additionalProperties": false,
|
|
648
|
+
"title": "Audit Rule Execution Result",
|
|
649
|
+
"description": "Detailed result of an audit rule execution"
|
|
650
|
+
},
|
|
651
|
+
"title": "Audit Rule Execution Results",
|
|
652
|
+
"description": "Detailed results of each audit rule execution, sorted by execution_started_at"
|
|
651
653
|
}
|
|
652
654
|
},
|
|
653
655
|
"required": [
|
|
@@ -656,7 +658,9 @@
|
|
|
656
658
|
"audit_summary",
|
|
657
659
|
"rule_execution_results"
|
|
658
660
|
],
|
|
659
|
-
"additionalProperties": false
|
|
661
|
+
"additionalProperties": false,
|
|
662
|
+
"title": "MassID Audit Data",
|
|
663
|
+
"description": "Complete data structure for MassID Audit records. Must include exactly one of gas_id or recycled_id."
|
|
660
664
|
}
|
|
661
665
|
},
|
|
662
666
|
"required": [
|
|
@@ -667,5 +671,9 @@
|
|
|
667
671
|
"external_url",
|
|
668
672
|
"data"
|
|
669
673
|
],
|
|
670
|
-
"additionalProperties": false
|
|
671
|
-
|
|
674
|
+
"additionalProperties": false,
|
|
675
|
+
"title": "MassID Audit IPFS Record",
|
|
676
|
+
"description": "MassID audit record stored in IPFS, containing methodology reference, audit summary, rule execution results, and links to the source MassID and resulting GasID or RecycledID",
|
|
677
|
+
"$id": "https://raw.githubusercontent.com/carrot-foundation/schemas/refs/tags/0.3.0/schemas/ipfs/mass-id-audit/mass-id-audit.schema.json",
|
|
678
|
+
"version": "0.3.0"
|
|
679
|
+
}
|