artshelf 0.12.0 → 0.13.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.
@@ -25,24 +25,56 @@
25
25
  "scope": {
26
26
  "type": "object",
27
27
  "additionalProperties": false,
28
- "required": ["registryPath", "ledgerCount", "health", "registryHealth"],
28
+ "required": [
29
+ "registryPath",
30
+ "ledgerCount",
31
+ "health",
32
+ "registryHealth"
33
+ ],
29
34
  "properties": {
30
- "registryPath": { "type": "string" },
31
- "ledgerCount": { "type": "integer", "minimum": 0 },
32
- "health": { "type": "string", "enum": ["ok", "attention"] },
33
- "registryHealth": { "type": "string", "enum": ["ok", "attention"] },
35
+ "registryPath": {
36
+ "type": "string"
37
+ },
38
+ "ledgerCount": {
39
+ "type": "integer",
40
+ "minimum": 0
41
+ },
42
+ "health": {
43
+ "type": "string",
44
+ "enum": [
45
+ "ok",
46
+ "attention"
47
+ ]
48
+ },
49
+ "registryHealth": {
50
+ "type": "string",
51
+ "enum": [
52
+ "ok",
53
+ "attention"
54
+ ]
55
+ },
34
56
  "affectedLedgers": {
35
57
  "type": "array",
36
58
  "items": {
37
59
  "type": "object",
38
60
  "additionalProperties": false,
39
- "required": ["ledgerPath"],
61
+ "required": [
62
+ "ledgerPath"
63
+ ],
40
64
  "properties": {
41
- "name": { "type": "string" },
42
- "ledgerPath": { "type": "string" },
65
+ "name": {
66
+ "type": "string"
67
+ },
68
+ "ledgerPath": {
69
+ "type": "string"
70
+ },
43
71
  "validationStatus": {
44
72
  "type": "string",
45
- "enum": ["ok", "missing", "invalid"]
73
+ "enum": [
74
+ "ok",
75
+ "missing",
76
+ "invalid"
77
+ ]
46
78
  }
47
79
  }
48
80
  }
@@ -51,35 +83,60 @@
51
83
  },
52
84
  "plans": {
53
85
  "type": "array",
54
- "items": { "$ref": "#/$defs/plan" },
86
+ "items": {
87
+ "$ref": "#/$defs/plan"
88
+ },
55
89
  "default": []
56
90
  },
57
91
  "decisionSummary": {
58
92
  "type": "object",
59
93
  "additionalProperties": false,
60
- "required": ["readyForApproval", "needsReviewFirst", "blocked"],
94
+ "required": [
95
+ "readyForApproval",
96
+ "needsReviewFirst",
97
+ "blocked"
98
+ ],
61
99
  "properties": {
62
- "readyForApproval": { "type": "integer", "minimum": 0 },
63
- "needsReviewFirst": { "type": "integer", "minimum": 0 },
64
- "blocked": { "type": "integer", "minimum": 0 }
100
+ "readyForApproval": {
101
+ "type": "integer",
102
+ "minimum": 0
103
+ },
104
+ "needsReviewFirst": {
105
+ "type": "integer",
106
+ "minimum": 0
107
+ },
108
+ "blocked": {
109
+ "type": "integer",
110
+ "minimum": 0
111
+ }
65
112
  }
66
113
  },
67
114
  "decisionGroups": {
68
115
  "type": "object",
69
116
  "additionalProperties": false,
70
- "required": ["readyForApproval", "needsReviewFirst", "blocked"],
117
+ "required": [
118
+ "readyForApproval",
119
+ "needsReviewFirst",
120
+ "blocked"
121
+ ],
71
122
  "properties": {
72
123
  "readyForApproval": {
73
124
  "type": "array",
74
- "items": { "$ref": "#/$defs/approvalDecision" }
125
+ "items": {
126
+ "$ref": "#/$defs/approvalDecision"
127
+ }
75
128
  },
76
129
  "needsReviewFirst": {
77
130
  "type": "array",
78
- "items": { "$ref": "#/$defs/nonApprovalDecision" }
131
+ "items": {
132
+ "$ref": "#/$defs/nonApprovalDecision"
133
+ }
79
134
  },
80
135
  "blocked": {
81
136
  "type": "array",
82
- "items": { "$ref": "#/$defs/nonApprovalDecision" }
137
+ "items": {
138
+ "$ref": "#/$defs/nonApprovalDecision"
139
+ }
83
140
  }
84
141
  }
85
142
  },
@@ -95,23 +152,49 @@
95
152
  "trashed"
96
153
  ],
97
154
  "properties": {
98
- "executable": { "type": "integer", "minimum": 0 },
99
- "skipped": { "type": "integer", "minimum": 0 },
100
- "refused": { "type": "integer", "minimum": 0 },
101
- "manualReview": { "type": "integer", "minimum": 0 },
102
- "missingPath": { "type": "integer", "minimum": 0 },
103
- "trashed": { "type": "integer", "minimum": 0 }
155
+ "executable": {
156
+ "type": "integer",
157
+ "minimum": 0
158
+ },
159
+ "skipped": {
160
+ "type": "integer",
161
+ "minimum": 0
162
+ },
163
+ "refused": {
164
+ "type": "integer",
165
+ "minimum": 0
166
+ },
167
+ "manualReview": {
168
+ "type": "integer",
169
+ "minimum": 0
170
+ },
171
+ "missingPath": {
172
+ "type": "integer",
173
+ "minimum": 0
174
+ },
175
+ "trashed": {
176
+ "type": "integer",
177
+ "minimum": 0
178
+ }
104
179
  }
105
180
  },
106
- "recommendation": { "type": "string", "minLength": 1 },
181
+ "recommendation": {
182
+ "type": "string",
183
+ "minLength": 1
184
+ },
107
185
  "items": {
108
186
  "type": "array",
109
- "items": { "$ref": "#/$defs/item" }
187
+ "items": {
188
+ "$ref": "#/$defs/item"
189
+ }
110
190
  },
111
191
  "alternatives": {
112
192
  "type": "array",
113
193
  "minItems": 1,
114
- "items": { "type": "string", "minLength": 1 }
194
+ "items": {
195
+ "type": "string",
196
+ "minLength": 1
197
+ }
115
198
  },
116
199
  "safety": {
117
200
  "type": "object",
@@ -124,20 +207,39 @@
124
207
  "noDeleteRan"
125
208
  ],
126
209
  "properties": {
127
- "dryRunOnly": { "type": "boolean" },
128
- "executeAllRefused": { "type": "boolean" },
129
- "noExecuteRan": { "type": "boolean" },
130
- "noResolveRan": { "type": "boolean" },
131
- "noDeleteRan": { "type": "boolean" }
210
+ "dryRunOnly": {
211
+ "type": "boolean"
212
+ },
213
+ "executeAllRefused": {
214
+ "type": "boolean"
215
+ },
216
+ "noExecuteRan": {
217
+ "type": "boolean"
218
+ },
219
+ "noResolveRan": {
220
+ "type": "boolean"
221
+ },
222
+ "noDeleteRan": {
223
+ "type": "boolean"
224
+ }
132
225
  }
133
226
  },
134
227
  "verification": {
135
228
  "type": "object",
136
229
  "additionalProperties": false,
137
- "required": ["command", "successCondition"],
230
+ "required": [
231
+ "command",
232
+ "successCondition"
233
+ ],
138
234
  "properties": {
139
- "command": { "type": "string", "minLength": 1 },
140
- "successCondition": { "type": "string", "minLength": 1 }
235
+ "command": {
236
+ "type": "string",
237
+ "minLength": 1
238
+ },
239
+ "successCondition": {
240
+ "type": "string",
241
+ "minLength": 1
242
+ }
141
243
  }
142
244
  }
143
245
  },
@@ -145,19 +247,47 @@
145
247
  "plan": {
146
248
  "type": "object",
147
249
  "additionalProperties": false,
148
- "required": ["type", "ledgerPath", "planId", "approvalTarget"],
250
+ "required": [
251
+ "type",
252
+ "ledgerPath",
253
+ "planId",
254
+ "approvalTarget"
255
+ ],
149
256
  "properties": {
150
- "type": { "type": "string", "enum": ["cleanup", "trash-purge"] },
151
- "ledgerPath": { "type": "string" },
152
- "planId": { "type": "string" },
153
- "planPath": { "type": ["string", "null"] },
154
- "approvalTarget": { "type": "string" }
257
+ "type": {
258
+ "type": "string",
259
+ "enum": [
260
+ "cleanup",
261
+ "trash-purge"
262
+ ]
263
+ },
264
+ "ledgerPath": {
265
+ "type": "string"
266
+ },
267
+ "planId": {
268
+ "type": "string"
269
+ },
270
+ "planPath": {
271
+ "type": [
272
+ "string",
273
+ "null"
274
+ ]
275
+ },
276
+ "approvalTarget": {
277
+ "type": "string"
278
+ }
155
279
  },
156
280
  "allOf": [
157
281
  {
158
282
  "if": {
159
- "properties": { "type": { "const": "cleanup" } },
160
- "required": ["type"]
283
+ "properties": {
284
+ "type": {
285
+ "const": "cleanup"
286
+ }
287
+ },
288
+ "required": [
289
+ "type"
290
+ ]
161
291
  },
162
292
  "then": {
163
293
  "properties": {
@@ -169,8 +299,14 @@
169
299
  },
170
300
  {
171
301
  "if": {
172
- "properties": { "type": { "const": "trash-purge" } },
173
- "required": ["type"]
302
+ "properties": {
303
+ "type": {
304
+ "const": "trash-purge"
305
+ }
306
+ },
307
+ "required": [
308
+ "type"
309
+ ]
174
310
  },
175
311
  "then": {
176
312
  "properties": {
@@ -193,8 +329,12 @@
193
329
  "note"
194
330
  ],
195
331
  "properties": {
196
- "id": { "type": "string" },
197
- "path": { "type": "string" },
332
+ "id": {
333
+ "type": "string"
334
+ },
335
+ "path": {
336
+ "type": "string"
337
+ },
198
338
  "classification": {
199
339
  "type": "string",
200
340
  "enum": [
@@ -204,28 +344,62 @@
204
344
  "registry-problem"
205
345
  ]
206
346
  },
207
- "proposedAction": { "type": "string", "minLength": 1 },
347
+ "proposedAction": {
348
+ "type": "string",
349
+ "minLength": 1
350
+ },
208
351
  "dueStatus": {
209
352
  "type": "string",
210
- "enum": ["kept", "due", "manual-review", "missing-path", "trashed"]
353
+ "enum": [
354
+ "kept",
355
+ "due",
356
+ "manual-review",
357
+ "missing-path",
358
+ "trashed"
359
+ ]
360
+ },
361
+ "reason": {
362
+ "type": "string",
363
+ "minLength": 1
211
364
  },
212
- "reason": { "type": "string", "minLength": 1 },
213
- "note": { "type": "string", "minLength": 1 }
365
+ "note": {
366
+ "type": "string",
367
+ "minLength": 1
368
+ }
214
369
  },
215
370
  "anyOf": [
216
- { "required": ["id"] },
217
- { "required": ["path"] }
371
+ {
372
+ "required": [
373
+ "id"
374
+ ]
375
+ },
376
+ {
377
+ "required": [
378
+ "path"
379
+ ]
380
+ }
218
381
  ]
219
382
  },
220
383
  "decision": {
221
384
  "type": "object",
222
385
  "additionalProperties": false,
223
- "required": ["label", "actionType", "reason", "nextStep"],
386
+ "required": [
387
+ "label",
388
+ "actionType",
389
+ "reason",
390
+ "nextStep"
391
+ ],
224
392
  "properties": {
225
- "label": { "type": "string", "minLength": 1 },
393
+ "label": {
394
+ "type": "string",
395
+ "minLength": 1
396
+ },
226
397
  "itemIds": {
227
398
  "type": "array",
228
- "items": { "type": "string", "minLength": 1 },
399
+ "items": {
400
+ "type": "string",
401
+ "minLength": 1
402
+ },
229
403
  "default": []
230
404
  },
231
405
  "actionType": {
@@ -237,30 +411,60 @@
237
411
  "inspect",
238
412
  "fix-registry",
239
413
  "keep-or-snooze",
240
- "change-retention"
414
+ "change-retention",
415
+ "reconcile"
241
416
  ]
242
417
  },
243
- "approvalTarget": { "type": ["string", "null"] },
244
- "reason": { "type": "string", "minLength": 1 },
245
- "nextStep": { "type": "string", "minLength": 1 }
418
+ "approvalTarget": {
419
+ "type": [
420
+ "string",
421
+ "null"
422
+ ]
423
+ },
424
+ "reason": {
425
+ "type": "string",
426
+ "minLength": 1
427
+ },
428
+ "nextStep": {
429
+ "type": "string",
430
+ "minLength": 1
431
+ }
246
432
  }
247
433
  },
248
434
  "approvalDecision": {
249
435
  "allOf": [
250
- { "$ref": "#/$defs/decision" },
251
436
  {
252
- "required": ["approvalTarget"],
437
+ "$ref": "#/$defs/decision"
438
+ },
439
+ {
440
+ "required": [
441
+ "approvalTarget"
442
+ ],
253
443
  "properties": {
254
444
  "actionType": {
255
- "enum": ["cleanup", "trash-purge", "resolve-missing"]
445
+ "enum": [
446
+ "cleanup",
447
+ "trash-purge",
448
+ "resolve-missing",
449
+ "reconcile"
450
+ ]
256
451
  },
257
- "approvalTarget": { "type": "string", "minLength": 1 }
452
+ "approvalTarget": {
453
+ "type": "string",
454
+ "minLength": 1
455
+ }
258
456
  }
259
457
  },
260
458
  {
261
459
  "if": {
262
- "properties": { "actionType": { "const": "cleanup" } },
263
- "required": ["actionType"]
460
+ "properties": {
461
+ "actionType": {
462
+ "const": "cleanup"
463
+ }
464
+ },
465
+ "required": [
466
+ "actionType"
467
+ ]
264
468
  },
265
469
  "then": {
266
470
  "properties": {
@@ -272,8 +476,14 @@
272
476
  },
273
477
  {
274
478
  "if": {
275
- "properties": { "actionType": { "const": "trash-purge" } },
276
- "required": ["actionType"]
479
+ "properties": {
480
+ "actionType": {
481
+ "const": "trash-purge"
482
+ }
483
+ },
484
+ "required": [
485
+ "actionType"
486
+ ]
277
487
  },
278
488
  "then": {
279
489
  "properties": {
@@ -285,8 +495,14 @@
285
495
  },
286
496
  {
287
497
  "if": {
288
- "properties": { "actionType": { "const": "resolve-missing" } },
289
- "required": ["actionType"]
498
+ "properties": {
499
+ "actionType": {
500
+ "const": "resolve-missing"
501
+ }
502
+ },
503
+ "required": [
504
+ "actionType"
505
+ ]
290
506
  },
291
507
  "then": {
292
508
  "properties": {
@@ -295,18 +511,47 @@
295
511
  }
296
512
  }
297
513
  }
514
+ },
515
+ {
516
+ "if": {
517
+ "properties": {
518
+ "actionType": {
519
+ "const": "reconcile"
520
+ }
521
+ },
522
+ "required": [
523
+ "actionType"
524
+ ]
525
+ },
526
+ "then": {
527
+ "properties": {
528
+ "approvalTarget": {
529
+ "pattern": "^approve artshelf reconcile ledger .+ plan .+$"
530
+ }
531
+ }
532
+ }
298
533
  }
299
534
  ]
300
535
  },
301
536
  "nonApprovalDecision": {
302
537
  "allOf": [
303
- { "$ref": "#/$defs/decision" },
538
+ {
539
+ "$ref": "#/$defs/decision"
540
+ },
304
541
  {
305
542
  "properties": {
306
543
  "actionType": {
307
- "enum": ["inspect", "fix-registry", "keep-or-snooze", "change-retention"]
544
+ "enum": [
545
+ "inspect",
546
+ "fix-registry",
547
+ "keep-or-snooze",
548
+ "change-retention",
549
+ "reconcile"
550
+ ]
308
551
  },
309
- "approvalTarget": { "type": "null" }
552
+ "approvalTarget": {
553
+ "type": "null"
554
+ }
310
555
  }
311
556
  }
312
557
  ]