@crvouga/atlas 0.9.0 → 0.10.1

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 (91) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/playwright-reporter/src/evidence.d.ts +122 -0
  3. package/dist/playwright-reporter/src/evidence.js +327 -0
  4. package/dist/playwright-reporter/src/index.d.ts +114 -0
  5. package/dist/playwright-reporter/src/index.js +312 -0
  6. package/dist/reports/src/compose.js +7 -14
  7. package/dist/reports/src/recorded-specs.d.ts +33 -0
  8. package/dist/reports/src/recorded-specs.js +42 -0
  9. package/dist/reports/src/report-index.d.ts +6 -0
  10. package/dist/reports/src/report-index.js +14 -2
  11. package/dist/reports/src/test-catalog.d.ts +386 -0
  12. package/dist/reports/src/test-catalog.js +655 -0
  13. package/dist/schema/src/api.d.ts +585 -0
  14. package/dist/schema/src/api.js +105 -0
  15. package/dist/schema/src/common.d.ts +2 -2
  16. package/dist/schema/src/manifest.d.ts +4 -4
  17. package/dist/schema/src/spec.d.ts +6 -6
  18. package/dist/server/src/app.js +82 -4
  19. package/dist/server/src/llms.js +14 -0
  20. package/dist/server/src/openapi.d.ts +1 -1
  21. package/dist/server/src/openapi.js +60 -3
  22. package/docs/agents.md +1 -0
  23. package/docs/integrating.md +1 -0
  24. package/docs/reference/http-api.md +134 -2
  25. package/docs/reference/playwright-reporter.md +332 -0
  26. package/docs/reference/reports.md +632 -0
  27. package/docs/reference/schema.md +57 -0
  28. package/docs/rich-evidence.md +198 -0
  29. package/docs/server.md +41 -0
  30. package/llms-full.txt +378 -2
  31. package/llms.txt +2 -0
  32. package/package.json +8 -3
  33. package/packages/schema/schemas/check-detail.schema.json +15 -15
  34. package/packages/schema/schemas/checks-result.schema.json +2 -2
  35. package/packages/schema/schemas/command-error.schema.json +4 -4
  36. package/packages/schema/schemas/doctor-result.schema.json +4 -4
  37. package/packages/schema/schemas/effective-delta.schema.json +69 -95
  38. package/packages/schema/schemas/effective-evidence.schema.json +63 -89
  39. package/packages/schema/schemas/evidence-page.schema.json +41 -59
  40. package/packages/schema/schemas/init-plan.schema.json +58 -90
  41. package/packages/schema/schemas/layer-rows.schema.json +17 -29
  42. package/packages/schema/schemas/layer.schema.json +54 -70
  43. package/packages/schema/schemas/live-run-start.schema.json +1 -1
  44. package/packages/schema/schemas/live-run.schema.json +1 -1
  45. package/packages/schema/schemas/merge-result.schema.json +6 -6
  46. package/packages/schema/schemas/outline.schema.json +7 -11
  47. package/packages/schema/schemas/path-record.schema.json +12 -28
  48. package/packages/schema/schemas/problem.schema.json +9 -9
  49. package/packages/schema/schemas/publish-checks.schema.json +27 -43
  50. package/packages/schema/schemas/publish-result.schema.json +16 -24
  51. package/packages/schema/schemas/ready.schema.json +12 -12
  52. package/packages/schema/schemas/report-event.schema.json +22 -28
  53. package/packages/schema/schemas/report-run.schema.json +225 -0
  54. package/packages/schema/schemas/report-runs.schema.json +163 -0
  55. package/packages/schema/schemas/report-status.schema.json +30 -54
  56. package/packages/schema/schemas/run-info.schema.json +9 -21
  57. package/packages/schema/schemas/run-summary.schema.json +6 -14
  58. package/packages/schema/schemas/server-config.schema.json +21 -21
  59. package/packages/schema/schemas/server-editable-settings.schema.json +14 -14
  60. package/packages/schema/schemas/server-info.schema.json +15 -19
  61. package/packages/schema/schemas/server-settings-snapshot.schema.json +28 -28
  62. package/packages/schema/schemas/spec-set.schema.json +16 -24
  63. package/packages/schema/schemas/state-node.schema.json +16 -16
  64. package/packages/schema/schemas/state-record.schema.json +5 -9
  65. package/packages/schema/schemas/store-listing.schema.json +3 -7
  66. package/packages/schema/schemas/store-write-result.schema.json +2 -2
  67. package/packages/schema/schemas/stream-result.schema.json +13 -17
  68. package/packages/schema/schemas/test-catalog.schema.json +1135 -0
  69. package/packages/schema/schemas/test-history.schema.json +632 -0
  70. package/packages/schema/schemas/timeline-entry.schema.json +2 -2
  71. package/packages/schema/schemas/transition-record.schema.json +9 -21
  72. package/packages/server/openapi.json +4417 -1382
  73. package/packages/visualizer/src/app/AppShell.tsx +7 -3
  74. package/packages/visualizer/src/app/router.tsx +26 -3
  75. package/packages/visualizer/src/components/Header.tsx +2 -2
  76. package/packages/visualizer/src/evidence/evidence-context.tsx +10 -1
  77. package/packages/visualizer/src/explorer/Explorer.tsx +433 -0
  78. package/packages/visualizer/src/explorer/ExplorerIndex.tsx +120 -0
  79. package/packages/visualizer/src/explorer/RunsView.tsx +164 -0
  80. package/packages/visualizer/src/explorer/TestDetail.tsx +214 -0
  81. package/packages/visualizer/src/explorer/catalog.tsx +274 -0
  82. package/packages/visualizer/src/explorer/explorer.module.css +1238 -0
  83. package/packages/visualizer/src/explorer/groups.test.ts +87 -0
  84. package/packages/visualizer/src/explorer/groups.ts +126 -0
  85. package/packages/visualizer/src/explorer/navigate.ts +36 -0
  86. package/packages/visualizer/src/explorer/parts.tsx +59 -0
  87. package/packages/visualizer/src/explorer/search.ts +97 -0
  88. package/packages/visualizer/src/find/Finder.tsx +2 -0
  89. package/packages/visualizer/src/find/corpus.ts +13 -6
  90. package/packages/visualizer/src/find/rank.ts +2 -0
  91. package/packages/visualizer/src/evidence/project-home.tsx +0 -45
@@ -0,0 +1,1135 @@
1
+ {
2
+ "$id": "https://github.com/crvouga/atlas/schemas/test-catalog.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "schemaVersion": {
7
+ "type": "number",
8
+ "const": 1
9
+ },
10
+ "version": {
11
+ "type": "string",
12
+ "description": "Changes whenever the report or its history does"
13
+ },
14
+ "generatedAtMs": {
15
+ "type": "number"
16
+ },
17
+ "summary": {
18
+ "type": "object",
19
+ "properties": {
20
+ "tests": {
21
+ "type": "integer",
22
+ "minimum": 0,
23
+ "maximum": 9007199254740991
24
+ },
25
+ "counts": {
26
+ "type": "object",
27
+ "propertyNames": {
28
+ "type": "string",
29
+ "enum": [
30
+ "passed",
31
+ "failed",
32
+ "running",
33
+ "not-run"
34
+ ]
35
+ },
36
+ "additionalProperties": {
37
+ "type": "integer",
38
+ "minimum": 0,
39
+ "maximum": 9007199254740991
40
+ },
41
+ "required": [
42
+ "passed",
43
+ "failed",
44
+ "running",
45
+ "not-run"
46
+ ]
47
+ },
48
+ "outcomes": {
49
+ "type": "integer",
50
+ "minimum": 0,
51
+ "maximum": 9007199254740991
52
+ },
53
+ "flaky": {
54
+ "type": "integer",
55
+ "minimum": 0,
56
+ "maximum": 9007199254740991
57
+ },
58
+ "durations": {
59
+ "anyOf": [
60
+ {
61
+ "type": "object",
62
+ "properties": {
63
+ "count": {
64
+ "type": "integer",
65
+ "minimum": 0,
66
+ "maximum": 9007199254740991
67
+ },
68
+ "totalMs": {
69
+ "type": "number"
70
+ },
71
+ "avgMs": {
72
+ "type": "number"
73
+ },
74
+ "p50Ms": {
75
+ "type": "number"
76
+ },
77
+ "p95Ms": {
78
+ "type": "number"
79
+ },
80
+ "minMs": {
81
+ "type": "number"
82
+ },
83
+ "maxMs": {
84
+ "type": "number"
85
+ },
86
+ "lastMs": {
87
+ "type": "number"
88
+ }
89
+ },
90
+ "required": [
91
+ "count",
92
+ "totalMs",
93
+ "avgMs",
94
+ "p50Ms",
95
+ "p95Ms",
96
+ "minMs",
97
+ "maxMs",
98
+ "lastMs"
99
+ ],
100
+ "additionalProperties": {}
101
+ },
102
+ {
103
+ "type": "null"
104
+ }
105
+ ]
106
+ },
107
+ "measured": {
108
+ "type": "integer",
109
+ "minimum": 0,
110
+ "maximum": 9007199254740991
111
+ },
112
+ "withAttachments": {
113
+ "type": "integer",
114
+ "minimum": 0,
115
+ "maximum": 9007199254740991
116
+ },
117
+ "environments": {
118
+ "type": "array",
119
+ "items": {
120
+ "type": "object",
121
+ "properties": {
122
+ "name": {
123
+ "type": "string"
124
+ },
125
+ "tests": {
126
+ "type": "integer",
127
+ "minimum": 0,
128
+ "maximum": 9007199254740991
129
+ },
130
+ "counts": {
131
+ "type": "object",
132
+ "propertyNames": {
133
+ "type": "string",
134
+ "enum": [
135
+ "passed",
136
+ "failed",
137
+ "running",
138
+ "not-run"
139
+ ]
140
+ },
141
+ "additionalProperties": {
142
+ "type": "integer",
143
+ "minimum": 0,
144
+ "maximum": 9007199254740991
145
+ },
146
+ "required": [
147
+ "passed",
148
+ "failed",
149
+ "running",
150
+ "not-run"
151
+ ]
152
+ },
153
+ "avgMs": {
154
+ "type": [
155
+ "number",
156
+ "null"
157
+ ]
158
+ }
159
+ },
160
+ "required": [
161
+ "name",
162
+ "tests",
163
+ "counts",
164
+ "avgMs"
165
+ ],
166
+ "additionalProperties": {}
167
+ }
168
+ },
169
+ "producers": {
170
+ "type": "array",
171
+ "items": {
172
+ "type": "object",
173
+ "properties": {
174
+ "name": {
175
+ "type": "string"
176
+ },
177
+ "tests": {
178
+ "type": "integer",
179
+ "minimum": 0,
180
+ "maximum": 9007199254740991
181
+ },
182
+ "counts": {
183
+ "type": "object",
184
+ "propertyNames": {
185
+ "type": "string",
186
+ "enum": [
187
+ "passed",
188
+ "failed",
189
+ "running",
190
+ "not-run"
191
+ ]
192
+ },
193
+ "additionalProperties": {
194
+ "type": "integer",
195
+ "minimum": 0,
196
+ "maximum": 9007199254740991
197
+ },
198
+ "required": [
199
+ "passed",
200
+ "failed",
201
+ "running",
202
+ "not-run"
203
+ ]
204
+ },
205
+ "avgMs": {
206
+ "type": [
207
+ "number",
208
+ "null"
209
+ ]
210
+ }
211
+ },
212
+ "required": [
213
+ "name",
214
+ "tests",
215
+ "counts",
216
+ "avgMs"
217
+ ],
218
+ "additionalProperties": {}
219
+ }
220
+ },
221
+ "domains": {
222
+ "type": "array",
223
+ "items": {
224
+ "type": "object",
225
+ "properties": {
226
+ "name": {
227
+ "type": "string"
228
+ },
229
+ "tests": {
230
+ "type": "integer",
231
+ "minimum": 0,
232
+ "maximum": 9007199254740991
233
+ },
234
+ "counts": {
235
+ "type": "object",
236
+ "propertyNames": {
237
+ "type": "string",
238
+ "enum": [
239
+ "passed",
240
+ "failed",
241
+ "running",
242
+ "not-run"
243
+ ]
244
+ },
245
+ "additionalProperties": {
246
+ "type": "integer",
247
+ "minimum": 0,
248
+ "maximum": 9007199254740991
249
+ },
250
+ "required": [
251
+ "passed",
252
+ "failed",
253
+ "running",
254
+ "not-run"
255
+ ]
256
+ },
257
+ "avgMs": {
258
+ "type": [
259
+ "number",
260
+ "null"
261
+ ]
262
+ }
263
+ },
264
+ "required": [
265
+ "name",
266
+ "tests",
267
+ "counts",
268
+ "avgMs"
269
+ ],
270
+ "additionalProperties": {}
271
+ }
272
+ },
273
+ "slowest": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "object",
277
+ "properties": {
278
+ "key": {
279
+ "type": "string"
280
+ },
281
+ "title": {
282
+ "type": "string"
283
+ },
284
+ "specPath": {
285
+ "type": [
286
+ "string",
287
+ "null"
288
+ ]
289
+ },
290
+ "status": {
291
+ "type": "string",
292
+ "enum": [
293
+ "passed",
294
+ "failed",
295
+ "running",
296
+ "not-run"
297
+ ]
298
+ },
299
+ "value": {
300
+ "type": "number"
301
+ }
302
+ },
303
+ "required": [
304
+ "key",
305
+ "title",
306
+ "specPath",
307
+ "status",
308
+ "value"
309
+ ],
310
+ "additionalProperties": {}
311
+ }
312
+ },
313
+ "flakiest": {
314
+ "type": "array",
315
+ "items": {
316
+ "type": "object",
317
+ "properties": {
318
+ "key": {
319
+ "type": "string"
320
+ },
321
+ "title": {
322
+ "type": "string"
323
+ },
324
+ "specPath": {
325
+ "type": [
326
+ "string",
327
+ "null"
328
+ ]
329
+ },
330
+ "status": {
331
+ "type": "string",
332
+ "enum": [
333
+ "passed",
334
+ "failed",
335
+ "running",
336
+ "not-run"
337
+ ]
338
+ },
339
+ "value": {
340
+ "type": "number"
341
+ }
342
+ },
343
+ "required": [
344
+ "key",
345
+ "title",
346
+ "specPath",
347
+ "status",
348
+ "value"
349
+ ],
350
+ "additionalProperties": {}
351
+ }
352
+ },
353
+ "failing": {
354
+ "type": "array",
355
+ "items": {
356
+ "type": "object",
357
+ "properties": {
358
+ "key": {
359
+ "type": "string"
360
+ },
361
+ "title": {
362
+ "type": "string"
363
+ },
364
+ "specPath": {
365
+ "type": [
366
+ "string",
367
+ "null"
368
+ ]
369
+ },
370
+ "status": {
371
+ "type": "string",
372
+ "enum": [
373
+ "passed",
374
+ "failed",
375
+ "running",
376
+ "not-run"
377
+ ]
378
+ },
379
+ "value": {
380
+ "type": "number"
381
+ }
382
+ },
383
+ "required": [
384
+ "key",
385
+ "title",
386
+ "specPath",
387
+ "status",
388
+ "value"
389
+ ],
390
+ "additionalProperties": {}
391
+ }
392
+ },
393
+ "runs": {
394
+ "type": "integer",
395
+ "minimum": 0,
396
+ "maximum": 9007199254740991
397
+ },
398
+ "lastRecordedAtMs": {
399
+ "type": [
400
+ "number",
401
+ "null"
402
+ ]
403
+ },
404
+ "history": {
405
+ "type": "boolean"
406
+ }
407
+ },
408
+ "required": [
409
+ "tests",
410
+ "counts",
411
+ "outcomes",
412
+ "flaky",
413
+ "durations",
414
+ "measured",
415
+ "withAttachments",
416
+ "environments",
417
+ "producers",
418
+ "domains",
419
+ "slowest",
420
+ "flakiest",
421
+ "failing",
422
+ "runs",
423
+ "lastRecordedAtMs",
424
+ "history"
425
+ ],
426
+ "additionalProperties": {}
427
+ },
428
+ "facets": {
429
+ "type": "object",
430
+ "properties": {
431
+ "statuses": {
432
+ "type": "array",
433
+ "items": {
434
+ "type": "object",
435
+ "properties": {
436
+ "value": {
437
+ "type": "string"
438
+ },
439
+ "count": {
440
+ "type": "integer",
441
+ "minimum": 0,
442
+ "maximum": 9007199254740991
443
+ }
444
+ },
445
+ "required": [
446
+ "value",
447
+ "count"
448
+ ],
449
+ "additionalProperties": {}
450
+ }
451
+ },
452
+ "environments": {
453
+ "type": "array",
454
+ "items": {
455
+ "type": "object",
456
+ "properties": {
457
+ "value": {
458
+ "type": "string"
459
+ },
460
+ "count": {
461
+ "type": "integer",
462
+ "minimum": 0,
463
+ "maximum": 9007199254740991
464
+ }
465
+ },
466
+ "required": [
467
+ "value",
468
+ "count"
469
+ ],
470
+ "additionalProperties": {}
471
+ }
472
+ },
473
+ "producers": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "object",
477
+ "properties": {
478
+ "value": {
479
+ "type": "string"
480
+ },
481
+ "count": {
482
+ "type": "integer",
483
+ "minimum": 0,
484
+ "maximum": 9007199254740991
485
+ }
486
+ },
487
+ "required": [
488
+ "value",
489
+ "count"
490
+ ],
491
+ "additionalProperties": {}
492
+ }
493
+ },
494
+ "domains": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "object",
498
+ "properties": {
499
+ "value": {
500
+ "type": "string"
501
+ },
502
+ "count": {
503
+ "type": "integer",
504
+ "minimum": 0,
505
+ "maximum": 9007199254740991
506
+ }
507
+ },
508
+ "required": [
509
+ "value",
510
+ "count"
511
+ ],
512
+ "additionalProperties": {}
513
+ }
514
+ },
515
+ "specs": {
516
+ "type": "array",
517
+ "items": {
518
+ "type": "object",
519
+ "properties": {
520
+ "path": {
521
+ "type": "string"
522
+ },
523
+ "title": {
524
+ "type": "string"
525
+ },
526
+ "domain": {
527
+ "type": "string"
528
+ },
529
+ "kind": {
530
+ "type": "string"
531
+ },
532
+ "tests": {
533
+ "type": "integer",
534
+ "minimum": 0,
535
+ "maximum": 9007199254740991
536
+ },
537
+ "counts": {
538
+ "type": "object",
539
+ "propertyNames": {
540
+ "type": "string",
541
+ "enum": [
542
+ "passed",
543
+ "failed",
544
+ "running",
545
+ "not-run"
546
+ ]
547
+ },
548
+ "additionalProperties": {
549
+ "type": "integer",
550
+ "minimum": 0,
551
+ "maximum": 9007199254740991
552
+ },
553
+ "required": [
554
+ "passed",
555
+ "failed",
556
+ "running",
557
+ "not-run"
558
+ ]
559
+ }
560
+ },
561
+ "required": [
562
+ "path",
563
+ "title",
564
+ "domain",
565
+ "kind",
566
+ "tests",
567
+ "counts"
568
+ ],
569
+ "additionalProperties": {}
570
+ }
571
+ },
572
+ "tags": {
573
+ "type": "array",
574
+ "items": {
575
+ "type": "object",
576
+ "properties": {
577
+ "value": {
578
+ "type": "string"
579
+ },
580
+ "count": {
581
+ "type": "integer",
582
+ "minimum": 0,
583
+ "maximum": 9007199254740991
584
+ }
585
+ },
586
+ "required": [
587
+ "value",
588
+ "count"
589
+ ],
590
+ "additionalProperties": {}
591
+ }
592
+ },
593
+ "branches": {
594
+ "type": "array",
595
+ "items": {
596
+ "type": "object",
597
+ "properties": {
598
+ "value": {
599
+ "type": "string"
600
+ },
601
+ "count": {
602
+ "type": "integer",
603
+ "minimum": 0,
604
+ "maximum": 9007199254740991
605
+ }
606
+ },
607
+ "required": [
608
+ "value",
609
+ "count"
610
+ ],
611
+ "additionalProperties": {}
612
+ }
613
+ },
614
+ "labels": {
615
+ "type": "object",
616
+ "propertyNames": {
617
+ "type": "string"
618
+ },
619
+ "additionalProperties": {
620
+ "type": "array",
621
+ "items": {
622
+ "type": "object",
623
+ "properties": {
624
+ "value": {
625
+ "type": "string"
626
+ },
627
+ "count": {
628
+ "type": "integer",
629
+ "minimum": 0,
630
+ "maximum": 9007199254740991
631
+ }
632
+ },
633
+ "required": [
634
+ "value",
635
+ "count"
636
+ ],
637
+ "additionalProperties": {}
638
+ }
639
+ }
640
+ }
641
+ },
642
+ "required": [
643
+ "statuses",
644
+ "environments",
645
+ "producers",
646
+ "domains",
647
+ "specs",
648
+ "tags",
649
+ "branches",
650
+ "labels"
651
+ ],
652
+ "additionalProperties": {}
653
+ },
654
+ "total": {
655
+ "type": "integer",
656
+ "minimum": 0,
657
+ "maximum": 9007199254740991,
658
+ "description": "Tests the query matched, before offset and limit"
659
+ },
660
+ "offset": {
661
+ "type": "integer",
662
+ "minimum": 0,
663
+ "maximum": 9007199254740991
664
+ },
665
+ "limit": {
666
+ "type": "integer",
667
+ "minimum": 0,
668
+ "maximum": 9007199254740991
669
+ },
670
+ "tests": {
671
+ "type": "array",
672
+ "items": {
673
+ "type": "object",
674
+ "properties": {
675
+ "key": {
676
+ "type": "string",
677
+ "description": "The test's identity, `JSON.stringify([specPath, id])`. Pass it to `/api/reports/tests/history?key=`"
678
+ },
679
+ "id": {
680
+ "type": "string"
681
+ },
682
+ "title": {
683
+ "type": "string"
684
+ },
685
+ "specPath": {
686
+ "type": [
687
+ "string",
688
+ "null"
689
+ ]
690
+ },
691
+ "spec": {
692
+ "anyOf": [
693
+ {
694
+ "type": "object",
695
+ "properties": {
696
+ "path": {
697
+ "type": "string"
698
+ },
699
+ "title": {
700
+ "type": "string"
701
+ },
702
+ "domain": {
703
+ "type": "string"
704
+ },
705
+ "kind": {
706
+ "type": "string"
707
+ }
708
+ },
709
+ "required": [
710
+ "path",
711
+ "title",
712
+ "domain",
713
+ "kind"
714
+ ],
715
+ "additionalProperties": {}
716
+ },
717
+ {
718
+ "type": "null"
719
+ }
720
+ ],
721
+ "description": "The spec it belongs to: recorded by its layers, published in a spec set, or derived from the path"
722
+ },
723
+ "status": {
724
+ "type": "string",
725
+ "enum": [
726
+ "passed",
727
+ "failed",
728
+ "running",
729
+ "not-run"
730
+ ],
731
+ "description": "The worst current result across environments: failed, then running, then not-run, then passed"
732
+ },
733
+ "environments": {
734
+ "type": "array",
735
+ "items": {
736
+ "type": "string"
737
+ }
738
+ },
739
+ "producers": {
740
+ "type": "array",
741
+ "items": {
742
+ "type": "string"
743
+ }
744
+ },
745
+ "outcomes": {
746
+ "type": "array",
747
+ "items": {
748
+ "type": "object",
749
+ "properties": {
750
+ "at": {
751
+ "type": "number",
752
+ "description": "When it was recorded, epoch milliseconds"
753
+ },
754
+ "status": {
755
+ "type": "string",
756
+ "enum": [
757
+ "passed",
758
+ "failed",
759
+ "running",
760
+ "not-run"
761
+ ]
762
+ },
763
+ "durationMs": {
764
+ "description": "How long it took, or null when the producer did not measure it",
765
+ "type": [
766
+ "number",
767
+ "null"
768
+ ]
769
+ },
770
+ "environment": {
771
+ "description": "The client it checked, such as `desktop-web` or `ios`",
772
+ "type": [
773
+ "string",
774
+ "null"
775
+ ]
776
+ },
777
+ "producer": {
778
+ "type": "string"
779
+ },
780
+ "kind": {
781
+ "type": "string"
782
+ },
783
+ "parameters": {
784
+ "type": "object",
785
+ "propertyNames": {
786
+ "type": "string"
787
+ },
788
+ "additionalProperties": {
789
+ "type": "string"
790
+ }
791
+ },
792
+ "branch": {
793
+ "type": [
794
+ "string",
795
+ "null"
796
+ ]
797
+ },
798
+ "sha": {
799
+ "type": [
800
+ "string",
801
+ "null"
802
+ ]
803
+ },
804
+ "runUrl": {
805
+ "type": [
806
+ "string",
807
+ "null"
808
+ ]
809
+ },
810
+ "run": {
811
+ "type": "string",
812
+ "description": "The key of the run it belongs to, as `GET /api/reports/runs` lists it"
813
+ },
814
+ "layer": {
815
+ "type": "string",
816
+ "description": "The id of the layer that recorded it"
817
+ },
818
+ "backend": {
819
+ "type": "string"
820
+ },
821
+ "detail": {
822
+ "type": "string",
823
+ "description": "Why it has its status, at most 500 characters"
824
+ },
825
+ "evidence": {
826
+ "type": "object",
827
+ "properties": {
828
+ "attachments": {
829
+ "type": "integer",
830
+ "minimum": 0,
831
+ "maximum": 9007199254740991
832
+ },
833
+ "steps": {
834
+ "type": "integer",
835
+ "minimum": 0,
836
+ "maximum": 9007199254740991
837
+ },
838
+ "annotations": {
839
+ "type": "integer",
840
+ "minimum": 0,
841
+ "maximum": 9007199254740991
842
+ },
843
+ "attempts": {
844
+ "type": "integer",
845
+ "minimum": 0,
846
+ "maximum": 9007199254740991
847
+ },
848
+ "links": {
849
+ "type": "integer",
850
+ "minimum": 0,
851
+ "maximum": 9007199254740991
852
+ },
853
+ "tags": {
854
+ "type": "array",
855
+ "items": {
856
+ "type": "string"
857
+ }
858
+ },
859
+ "labels": {
860
+ "type": "object",
861
+ "propertyNames": {
862
+ "type": "string"
863
+ },
864
+ "additionalProperties": {
865
+ "type": "string"
866
+ }
867
+ },
868
+ "roles": {
869
+ "type": "array",
870
+ "items": {
871
+ "type": "string"
872
+ }
873
+ }
874
+ },
875
+ "required": [
876
+ "attachments",
877
+ "steps",
878
+ "annotations",
879
+ "attempts",
880
+ "links",
881
+ "tags",
882
+ "labels",
883
+ "roles"
884
+ ],
885
+ "additionalProperties": {}
886
+ }
887
+ },
888
+ "required": [
889
+ "at",
890
+ "status",
891
+ "durationMs",
892
+ "environment",
893
+ "producer",
894
+ "kind",
895
+ "parameters",
896
+ "branch",
897
+ "sha",
898
+ "runUrl",
899
+ "run",
900
+ "layer",
901
+ "backend",
902
+ "detail"
903
+ ],
904
+ "additionalProperties": {}
905
+ },
906
+ "description": "The current result per producer, environment and parameter set, newest first"
907
+ },
908
+ "stats": {
909
+ "type": "object",
910
+ "properties": {
911
+ "results": {
912
+ "type": "integer",
913
+ "minimum": 0,
914
+ "maximum": 9007199254740991
915
+ },
916
+ "passed": {
917
+ "type": "integer",
918
+ "minimum": 0,
919
+ "maximum": 9007199254740991
920
+ },
921
+ "failed": {
922
+ "type": "integer",
923
+ "minimum": 0,
924
+ "maximum": 9007199254740991
925
+ },
926
+ "passRate": {
927
+ "description": "passed / (passed + failed), or null with no completed result",
928
+ "type": [
929
+ "number",
930
+ "null"
931
+ ]
932
+ },
933
+ "flaky": {
934
+ "type": "boolean"
935
+ },
936
+ "flakyReason": {
937
+ "type": "string"
938
+ },
939
+ "flips": {
940
+ "type": "integer",
941
+ "minimum": 0,
942
+ "maximum": 9007199254740991
943
+ },
944
+ "durations": {
945
+ "anyOf": [
946
+ {
947
+ "type": "object",
948
+ "properties": {
949
+ "count": {
950
+ "type": "integer",
951
+ "minimum": 0,
952
+ "maximum": 9007199254740991
953
+ },
954
+ "totalMs": {
955
+ "type": "number"
956
+ },
957
+ "avgMs": {
958
+ "type": "number"
959
+ },
960
+ "p50Ms": {
961
+ "type": "number"
962
+ },
963
+ "p95Ms": {
964
+ "type": "number"
965
+ },
966
+ "minMs": {
967
+ "type": "number"
968
+ },
969
+ "maxMs": {
970
+ "type": "number"
971
+ },
972
+ "lastMs": {
973
+ "type": "number"
974
+ }
975
+ },
976
+ "required": [
977
+ "count",
978
+ "totalMs",
979
+ "avgMs",
980
+ "p50Ms",
981
+ "p95Ms",
982
+ "minMs",
983
+ "maxMs",
984
+ "lastMs"
985
+ ],
986
+ "additionalProperties": {}
987
+ },
988
+ {
989
+ "type": "null"
990
+ }
991
+ ]
992
+ },
993
+ "firstSeenMs": {
994
+ "type": [
995
+ "number",
996
+ "null"
997
+ ]
998
+ },
999
+ "lastSeenMs": {
1000
+ "type": [
1001
+ "number",
1002
+ "null"
1003
+ ]
1004
+ },
1005
+ "lastPassedAtMs": {
1006
+ "type": [
1007
+ "number",
1008
+ "null"
1009
+ ]
1010
+ },
1011
+ "lastFailedAtMs": {
1012
+ "type": [
1013
+ "number",
1014
+ "null"
1015
+ ]
1016
+ },
1017
+ "runs": {
1018
+ "type": "integer",
1019
+ "minimum": 0,
1020
+ "maximum": 9007199254740991
1021
+ },
1022
+ "branches": {
1023
+ "type": "array",
1024
+ "items": {
1025
+ "type": "string"
1026
+ }
1027
+ }
1028
+ },
1029
+ "required": [
1030
+ "results",
1031
+ "passed",
1032
+ "failed",
1033
+ "passRate",
1034
+ "flaky",
1035
+ "flakyReason",
1036
+ "flips",
1037
+ "durations",
1038
+ "firstSeenMs",
1039
+ "lastSeenMs",
1040
+ "lastPassedAtMs",
1041
+ "lastFailedAtMs",
1042
+ "runs",
1043
+ "branches"
1044
+ ],
1045
+ "additionalProperties": {}
1046
+ },
1047
+ "tags": {
1048
+ "type": "array",
1049
+ "items": {
1050
+ "type": "string"
1051
+ }
1052
+ },
1053
+ "labels": {
1054
+ "type": "object",
1055
+ "propertyNames": {
1056
+ "type": "string"
1057
+ },
1058
+ "additionalProperties": {
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "evidence": {
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "attachments": {
1066
+ "type": "integer",
1067
+ "minimum": 0,
1068
+ "maximum": 9007199254740991
1069
+ },
1070
+ "steps": {
1071
+ "type": "integer",
1072
+ "minimum": 0,
1073
+ "maximum": 9007199254740991
1074
+ },
1075
+ "attempts": {
1076
+ "type": "integer",
1077
+ "minimum": 0,
1078
+ "maximum": 9007199254740991
1079
+ },
1080
+ "roles": {
1081
+ "type": "array",
1082
+ "items": {
1083
+ "type": "string"
1084
+ }
1085
+ }
1086
+ },
1087
+ "required": [
1088
+ "attachments",
1089
+ "steps",
1090
+ "attempts",
1091
+ "roles"
1092
+ ],
1093
+ "additionalProperties": {}
1094
+ },
1095
+ "lastRecordedAtMs": {
1096
+ "type": "number"
1097
+ },
1098
+ "live": {
1099
+ "type": "boolean"
1100
+ }
1101
+ },
1102
+ "required": [
1103
+ "key",
1104
+ "id",
1105
+ "title",
1106
+ "specPath",
1107
+ "spec",
1108
+ "status",
1109
+ "environments",
1110
+ "producers",
1111
+ "outcomes",
1112
+ "stats",
1113
+ "tags",
1114
+ "labels",
1115
+ "evidence",
1116
+ "lastRecordedAtMs",
1117
+ "live"
1118
+ ],
1119
+ "additionalProperties": {}
1120
+ }
1121
+ }
1122
+ },
1123
+ "required": [
1124
+ "schemaVersion",
1125
+ "version",
1126
+ "generatedAtMs",
1127
+ "summary",
1128
+ "facets",
1129
+ "total",
1130
+ "offset",
1131
+ "limit",
1132
+ "tests"
1133
+ ],
1134
+ "additionalProperties": {}
1135
+ }