@kungfu-tech/kfd 1.0.0-alpha.2 → 1.0.0-alpha.20

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.
Files changed (44) hide show
  1. package/.buildchain/kfd-1/contract-world.witness.json +753 -0
  2. package/.buildchain/kfd-2/kfd-foundation.trust-assessment.json +238 -0
  3. package/.buildchain/kfd-2/kfd-foundation.trust-claims.json +225 -0
  4. package/.buildchain/kfd-2/public-release-trust.claim.json +131 -0
  5. package/.buildchain/kfd-3/collaboration-interface.artifact.json +774 -0
  6. package/.buildchain/kfd-3/collaboration-interface.json +421 -0
  7. package/.buildchain/kfd-3/collaboration-interface.prebuild.json +1141 -0
  8. package/README.md +149 -29
  9. package/TRADEMARKS.md +60 -0
  10. package/buildchain.contract-lock.json +86 -0
  11. package/buildchain.release-propagation.json +32 -0
  12. package/decisions/{kfd-1.md → KFD-1.md} +77 -35
  13. package/decisions/{kfd-2.md → KFD-2.md} +63 -11
  14. package/decisions/{kfd-3.md → KFD-3.md} +54 -16
  15. package/decisions/KFD-4.md +182 -0
  16. package/docs/KFD-1-usage.md +37 -0
  17. package/docs/KFD-2-usage.md +123 -0
  18. package/docs/KFD-3-usage.md +98 -0
  19. package/docs/KFD-4-usage.md +31 -0
  20. package/docs/MAP.md +20 -3
  21. package/docs/release-governance.md +28 -0
  22. package/kfd.release.json +13 -0
  23. package/package.json +28 -2
  24. package/registry.json +15 -5
  25. package/release-impact.json +113 -0
  26. package/schemas/kfd-1/contract-world.schema.json +67 -4
  27. package/schemas/kfd-1/witness.schema.json +113 -0
  28. package/schemas/kfd-2/release-claims.schema.json +331 -0
  29. package/schemas/kfd-2/release-trust-passport.schema.json +276 -0
  30. package/schemas/kfd-2/trust-assessment.schema.json +313 -0
  31. package/schemas/kfd-2/trust-claims.schema.json +334 -0
  32. package/schemas/kfd-2/trust-taxonomy.schema.json +219 -0
  33. package/schemas/kfd-3/collaboration-interface.schema.json +542 -0
  34. package/schemas/kfd-3/witness.schema.json +167 -0
  35. package/schemas/kfd-4/observer-perspective.schema.json +272 -0
  36. package/schemas/kfd-standards.schema.json +163 -0
  37. package/scripts/check.mjs +930 -0
  38. package/scripts/npm-publish-transaction.mjs +220 -0
  39. package/scripts/update-kfd-1-witness.mjs +35 -0
  40. package/scripts/update-kfd-2-claim.mjs +304 -0
  41. package/scripts/update-kfd-3-witness.mjs +261 -0
  42. package/scripts/update-site-bundle.mjs +353 -0
  43. package/site/kfd-site.json +251 -12
  44. package/standards.json +775 -15
@@ -0,0 +1,331 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://kfd.libkungfu.dev/schemas/kfd-2/release-claims.schema.json",
4
+ "title": "KFD-2 release claims",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "standard",
10
+ "product",
11
+ "release",
12
+ "claims"
13
+ ],
14
+ "properties": {
15
+ "schemaVersion": {
16
+ "const": 1
17
+ },
18
+ "contract": {
19
+ "const": "kfd-2-release-claims"
20
+ },
21
+ "standard": {
22
+ "const": "kfd-2"
23
+ },
24
+ "product": {
25
+ "$ref": "#/$defs/product"
26
+ },
27
+ "release": {
28
+ "$ref": "#/$defs/release"
29
+ },
30
+ "claims": {
31
+ "type": "array",
32
+ "minItems": 1,
33
+ "items": {
34
+ "$ref": "#/$defs/claim"
35
+ }
36
+ },
37
+ "schemaEvolution": {
38
+ "$ref": "#/$defs/schemaEvolution"
39
+ }
40
+ },
41
+ "additionalProperties": true,
42
+ "$defs": {
43
+ "product": {
44
+ "type": "object",
45
+ "required": [
46
+ "name"
47
+ ],
48
+ "properties": {
49
+ "name": {
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "repository": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "package": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ }
61
+ },
62
+ "additionalProperties": true
63
+ },
64
+ "release": {
65
+ "type": "object",
66
+ "required": [
67
+ "version",
68
+ "channel"
69
+ ],
70
+ "properties": {
71
+ "version": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "channel": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "tag": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "sourceSha": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ }
87
+ },
88
+ "additionalProperties": true
89
+ },
90
+ "claim": {
91
+ "type": "object",
92
+ "required": [
93
+ "id",
94
+ "statement",
95
+ "source",
96
+ "evidence",
97
+ "auditBoundary",
98
+ "responsibility",
99
+ "status"
100
+ ],
101
+ "properties": {
102
+ "id": {
103
+ "type": "string",
104
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
105
+ },
106
+ "statement": {
107
+ "type": "string",
108
+ "minLength": 1
109
+ },
110
+ "category": {
111
+ "enum": [
112
+ "metadata",
113
+ "schema",
114
+ "package-export",
115
+ "artifact",
116
+ "site",
117
+ "release",
118
+ "kfd-1",
119
+ "kfd-2",
120
+ "kfd-3",
121
+ "other"
122
+ ]
123
+ },
124
+ "source": {
125
+ "$ref": "#/$defs/artifactPointer"
126
+ },
127
+ "evidence": {
128
+ "type": "array",
129
+ "minItems": 1,
130
+ "items": {
131
+ "$ref": "#/$defs/evidenceBinding"
132
+ }
133
+ },
134
+ "verification": {
135
+ "$ref": "#/$defs/verification"
136
+ },
137
+ "auditBoundary": {
138
+ "$ref": "#/$defs/auditBoundary"
139
+ },
140
+ "residualRisk": {
141
+ "type": "array",
142
+ "items": {
143
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/residualRisk"
144
+ }
145
+ },
146
+ "responsibility": {
147
+ "$ref": "#/$defs/responsibilityState"
148
+ },
149
+ "status": {
150
+ "enum": [
151
+ "declared",
152
+ "audited",
153
+ "enforced",
154
+ "not-applicable"
155
+ ]
156
+ }
157
+ },
158
+ "additionalProperties": true
159
+ },
160
+ "artifactPointer": {
161
+ "type": "object",
162
+ "required": [
163
+ "kind"
164
+ ],
165
+ "properties": {
166
+ "kind": {
167
+ "enum": [
168
+ "file",
169
+ "schema",
170
+ "package-export",
171
+ "artifact",
172
+ "command",
173
+ "witness",
174
+ "passport",
175
+ "url",
176
+ "other"
177
+ ]
178
+ },
179
+ "path": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ },
183
+ "specifier": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ },
187
+ "url": {
188
+ "type": "string",
189
+ "format": "uri"
190
+ },
191
+ "schemaId": {
192
+ "type": "string",
193
+ "format": "uri"
194
+ },
195
+ "sha256": {
196
+ "type": "string",
197
+ "pattern": "^[0-9a-f]{64}$"
198
+ },
199
+ "digest": {
200
+ "type": "string",
201
+ "minLength": 1
202
+ }
203
+ },
204
+ "additionalProperties": true
205
+ },
206
+ "evidenceBinding": {
207
+ "type": "object",
208
+ "required": [
209
+ "type"
210
+ ],
211
+ "properties": {
212
+ "type": {
213
+ "enum": [
214
+ "file",
215
+ "schema",
216
+ "package-export",
217
+ "artifact",
218
+ "hash",
219
+ "command-result",
220
+ "witness",
221
+ "passport-section",
222
+ "url",
223
+ "other"
224
+ ]
225
+ },
226
+ "pointer": {
227
+ "$ref": "#/$defs/artifactPointer"
228
+ },
229
+ "description": {
230
+ "type": "string",
231
+ "minLength": 1
232
+ }
233
+ },
234
+ "additionalProperties": true
235
+ },
236
+ "verification": {
237
+ "type": "object",
238
+ "properties": {
239
+ "resultRef": {
240
+ "$ref": "#/$defs/artifactPointer"
241
+ },
242
+ "command": {
243
+ "type": "string",
244
+ "minLength": 1
245
+ },
246
+ "expectedResult": {
247
+ "enum": [
248
+ "pass",
249
+ "fail",
250
+ "warning",
251
+ "unverifiable"
252
+ ]
253
+ }
254
+ },
255
+ "additionalProperties": true
256
+ },
257
+ "auditBoundary": {
258
+ "type": "object",
259
+ "required": [
260
+ "scope",
261
+ "enumerability"
262
+ ],
263
+ "properties": {
264
+ "scope": {
265
+ "type": "string",
266
+ "minLength": 1
267
+ },
268
+ "enumerability": {
269
+ "enum": [
270
+ "closed-world",
271
+ "declared-open",
272
+ "sampled",
273
+ "manual"
274
+ ]
275
+ },
276
+ "exclusions": {
277
+ "type": "array",
278
+ "items": {
279
+ "type": "string",
280
+ "minLength": 1
281
+ }
282
+ }
283
+ },
284
+ "additionalProperties": true
285
+ },
286
+ "responsibilityState": {
287
+ "type": "object",
288
+ "required": [
289
+ "sourceOwner",
290
+ "verificationOwner",
291
+ "releaseDecisionOwner"
292
+ ],
293
+ "properties": {
294
+ "sourceOwner": {
295
+ "type": "string",
296
+ "minLength": 1
297
+ },
298
+ "verificationOwner": {
299
+ "type": "string",
300
+ "minLength": 1
301
+ },
302
+ "releaseDecisionOwner": {
303
+ "type": "string",
304
+ "minLength": 1
305
+ },
306
+ "escalation": {
307
+ "type": "string",
308
+ "minLength": 1
309
+ }
310
+ },
311
+ "additionalProperties": true
312
+ },
313
+ "schemaEvolution": {
314
+ "type": "object",
315
+ "required": [
316
+ "interfaceVersion",
317
+ "compatibilityRule"
318
+ ],
319
+ "properties": {
320
+ "interfaceVersion": {
321
+ "const": 1
322
+ },
323
+ "compatibilityRule": {
324
+ "type": "string",
325
+ "minLength": 1
326
+ }
327
+ },
328
+ "additionalProperties": true
329
+ }
330
+ }
331
+ }
@@ -0,0 +1,276 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://kfd.libkungfu.dev/schemas/kfd-2/release-trust-passport.schema.json",
4
+ "title": "KFD-2 release trust passport",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "standard",
10
+ "product",
11
+ "release",
12
+ "releaseClaims",
13
+ "result",
14
+ "claims"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": {
18
+ "const": 1
19
+ },
20
+ "contract": {
21
+ "const": "kfd-2-release-trust-passport"
22
+ },
23
+ "standard": {
24
+ "const": "kfd-2"
25
+ },
26
+ "product": {
27
+ "$ref": "#/$defs/product"
28
+ },
29
+ "release": {
30
+ "$ref": "#/$defs/release"
31
+ },
32
+ "releaseClaims": {
33
+ "type": "object",
34
+ "required": [
35
+ "schemaId",
36
+ "digest"
37
+ ],
38
+ "properties": {
39
+ "schemaId": {
40
+ "const": "https://kfd.libkungfu.dev/schemas/kfd-2/release-claims.schema.json"
41
+ },
42
+ "path": {
43
+ "type": "string",
44
+ "minLength": 1
45
+ },
46
+ "digest": {
47
+ "type": "string",
48
+ "minLength": 1
49
+ }
50
+ },
51
+ "additionalProperties": true
52
+ },
53
+ "result": {
54
+ "enum": [
55
+ "pass",
56
+ "fail",
57
+ "warning",
58
+ "unverifiable"
59
+ ]
60
+ },
61
+ "claims": {
62
+ "type": "array",
63
+ "items": {
64
+ "$ref": "#/$defs/claimResult"
65
+ }
66
+ },
67
+ "unboundClaims": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ }
73
+ },
74
+ "downgradeReasons": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/downgradeReason"
78
+ }
79
+ },
80
+ "responsibility": {
81
+ "$ref": "#/$defs/responsibilityState"
82
+ },
83
+ "schemaEvolution": {
84
+ "$ref": "#/$defs/schemaEvolution"
85
+ }
86
+ },
87
+ "additionalProperties": true,
88
+ "$defs": {
89
+ "product": {
90
+ "type": "object",
91
+ "required": [
92
+ "name"
93
+ ],
94
+ "properties": {
95
+ "name": {
96
+ "type": "string",
97
+ "minLength": 1
98
+ },
99
+ "repository": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ },
103
+ "package": {
104
+ "type": "string",
105
+ "minLength": 1
106
+ }
107
+ },
108
+ "additionalProperties": true
109
+ },
110
+ "release": {
111
+ "type": "object",
112
+ "required": [
113
+ "version",
114
+ "channel"
115
+ ],
116
+ "properties": {
117
+ "version": {
118
+ "type": "string",
119
+ "minLength": 1
120
+ },
121
+ "channel": {
122
+ "type": "string",
123
+ "minLength": 1
124
+ },
125
+ "tag": {
126
+ "type": "string",
127
+ "minLength": 1
128
+ },
129
+ "sourceSha": {
130
+ "type": "string",
131
+ "minLength": 1
132
+ }
133
+ },
134
+ "additionalProperties": true
135
+ },
136
+ "claimResult": {
137
+ "type": "object",
138
+ "required": [
139
+ "id",
140
+ "result",
141
+ "evidence",
142
+ "auditBoundary",
143
+ "responsibility"
144
+ ],
145
+ "properties": {
146
+ "id": {
147
+ "type": "string",
148
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
149
+ },
150
+ "result": {
151
+ "enum": [
152
+ "pass",
153
+ "fail",
154
+ "warning",
155
+ "unverifiable"
156
+ ]
157
+ },
158
+ "evidence": {
159
+ "type": "array",
160
+ "items": {
161
+ "$ref": "#/$defs/evidenceResult"
162
+ }
163
+ },
164
+ "auditBoundary": {
165
+ "$ref": "#/$defs/auditBoundary"
166
+ },
167
+ "responsibility": {
168
+ "$ref": "#/$defs/responsibilityState"
169
+ },
170
+ "residualRisk": {
171
+ "type": "array",
172
+ "items": {
173
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/residualRisk"
174
+ }
175
+ }
176
+ },
177
+ "additionalProperties": true
178
+ },
179
+ "evidenceResult": {
180
+ "type": "object",
181
+ "required": [
182
+ "type",
183
+ "result"
184
+ ],
185
+ "properties": {
186
+ "type": {
187
+ "type": "string",
188
+ "minLength": 1
189
+ },
190
+ "result": {
191
+ "enum": [
192
+ "pass",
193
+ "fail",
194
+ "warning",
195
+ "unverifiable"
196
+ ]
197
+ },
198
+ "digest": {
199
+ "type": "string",
200
+ "minLength": 1
201
+ },
202
+ "description": {
203
+ "type": "string",
204
+ "minLength": 1
205
+ }
206
+ },
207
+ "additionalProperties": true
208
+ },
209
+ "auditBoundary": {
210
+ "type": "object",
211
+ "required": [
212
+ "scope",
213
+ "enumerability"
214
+ ],
215
+ "properties": {
216
+ "scope": {
217
+ "type": "string",
218
+ "minLength": 1
219
+ },
220
+ "enumerability": {
221
+ "enum": [
222
+ "closed-world",
223
+ "declared-open",
224
+ "sampled",
225
+ "manual"
226
+ ]
227
+ }
228
+ },
229
+ "additionalProperties": true
230
+ },
231
+ "responsibilityState": {
232
+ "type": "object",
233
+ "required": [
234
+ "sourceOwner",
235
+ "verificationOwner",
236
+ "releaseDecisionOwner"
237
+ ],
238
+ "properties": {
239
+ "sourceOwner": {
240
+ "type": "string",
241
+ "minLength": 1
242
+ },
243
+ "verificationOwner": {
244
+ "type": "string",
245
+ "minLength": 1
246
+ },
247
+ "releaseDecisionOwner": {
248
+ "type": "string",
249
+ "minLength": 1
250
+ },
251
+ "escalation": {
252
+ "type": "string",
253
+ "minLength": 1
254
+ }
255
+ },
256
+ "additionalProperties": true
257
+ },
258
+ "schemaEvolution": {
259
+ "type": "object",
260
+ "required": [
261
+ "interfaceVersion",
262
+ "compatibilityRule"
263
+ ],
264
+ "properties": {
265
+ "interfaceVersion": {
266
+ "const": 1
267
+ },
268
+ "compatibilityRule": {
269
+ "type": "string",
270
+ "minLength": 1
271
+ }
272
+ },
273
+ "additionalProperties": true
274
+ }
275
+ }
276
+ }