haveapi 0.30.1 → 0.31.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile +1 -0
  4. data/benchmarks/Gemfile +30 -0
  5. data/benchmarks/Gemfile.lock +296 -0
  6. data/benchmarks/documentation.rb +277 -0
  7. data/benchmarks/endpoints.rb +786 -0
  8. data/benchmarks/performance_budgets.json +1354 -0
  9. data/benchmarks/performance_compare.rb +678 -0
  10. data/benchmarks/shell.nix +21 -0
  11. data/doc/client-examples.md +179 -26
  12. data/doc/performance.md +310 -0
  13. data/haveapi.gemspec +1 -1
  14. data/lib/haveapi/client_examples/ts_generated_client.rb +36 -0
  15. data/lib/haveapi/documentation_clients.rb +49 -6
  16. data/lib/haveapi/documentation_context.rb +42 -12
  17. data/lib/haveapi/version.rb +1 -1
  18. data/lib/haveapi/views/version_page.erb +2 -2
  19. data/spec/client_examples/context_performance_spec.rb +72 -0
  20. data/spec/client_examples/context_spec.rb +206 -0
  21. data/spec/client_examples/profile_mount_spec.rb +45 -0
  22. data/spec/client_examples/ts_generated_client_spec.rb +53 -0
  23. data/spec/client_examples/typescript_profiles_spec.rb +113 -0
  24. data/spec/documentation/client_examples_spec.rb +2 -2
  25. data/spec/documentation/performance_spec.rb +79 -0
  26. data/spec/performance/comparator_spec.rb +472 -0
  27. data/spec/performance/endpoint_contract_spec.rb +226 -0
  28. data/spec/performance/endpoint_scaling_spec.rb +82 -0
  29. data/spec/performance/event_baseline_spec.rb +407 -0
  30. data/spec/performance/json_activation_spec.rb +151 -0
  31. data/spec/performance/release_lineage_spec.rb +470 -0
  32. data/spec/performance/runner_spec.rb +610 -0
  33. data/spec/performance/sqlite_spec.rb +194 -0
  34. data/spec/performance/support/live_worker.rb +44 -0
  35. data/spec/performance/support/samples.rb +72 -0
  36. data/test_support/documentation_performance_fixture.rb +106 -0
  37. data/test_support/performance_endpoint_fixture.rb +350 -0
  38. data/test_support/performance_sqlite_fixture.rb +384 -0
  39. metadata +29 -3
@@ -0,0 +1,1354 @@
1
+ {
2
+ "schema_version": 1,
3
+ "reference_sha": "b85ec364057f536940d689b09e612512ffffaf82",
4
+ "environment": {
5
+ "quick": {
6
+ "ruby": {
7
+ "engine": "ruby",
8
+ "version": "3.4.11",
9
+ "platform": "x86_64-linux",
10
+ "abi": "3.4.0",
11
+ "executable": "/nix/store/7b77drpxxyywsxq9hf4y0fc8c56pfivl-ruby-3.4.11/bin/ruby"
12
+ },
13
+ "gems": {
14
+ "activemodel": {
15
+ "version": "8.1.4",
16
+ "platform": "ruby"
17
+ },
18
+ "activerecord": {
19
+ "version": "8.1.4",
20
+ "platform": "ruby"
21
+ },
22
+ "activesupport": {
23
+ "version": "8.1.4",
24
+ "platform": "ruby"
25
+ },
26
+ "aes_key_wrap": {
27
+ "version": "1.1.0",
28
+ "platform": "ruby"
29
+ },
30
+ "attr_required": {
31
+ "version": "1.0.2",
32
+ "platform": "ruby"
33
+ },
34
+ "base64": {
35
+ "version": "0.3.0",
36
+ "platform": "ruby"
37
+ },
38
+ "bigdecimal": {
39
+ "version": "4.1.3",
40
+ "platform": "ruby"
41
+ },
42
+ "bindata": {
43
+ "version": "3.0.1",
44
+ "platform": "ruby"
45
+ },
46
+ "cgi": {
47
+ "version": "0.4.2",
48
+ "platform": "ruby"
49
+ },
50
+ "concurrent-ruby": {
51
+ "version": "1.3.8",
52
+ "platform": "ruby"
53
+ },
54
+ "connection_pool": {
55
+ "version": "3.0.2",
56
+ "platform": "ruby"
57
+ },
58
+ "date": {
59
+ "version": "3.6.0",
60
+ "platform": "ruby"
61
+ },
62
+ "delegate": {
63
+ "version": "0.4.0",
64
+ "platform": "ruby"
65
+ },
66
+ "did_you_mean": {
67
+ "version": "2.0.0",
68
+ "platform": "ruby"
69
+ },
70
+ "digest": {
71
+ "version": "3.2.0",
72
+ "platform": "ruby"
73
+ },
74
+ "domain_name": {
75
+ "version": "0.7.20261007",
76
+ "platform": "ruby"
77
+ },
78
+ "erb": {
79
+ "version": "4.0.4.1",
80
+ "platform": "ruby"
81
+ },
82
+ "error_highlight": {
83
+ "version": "0.7.0",
84
+ "platform": "ruby"
85
+ },
86
+ "etc": {
87
+ "version": "1.4.6",
88
+ "platform": "ruby"
89
+ },
90
+ "faraday": {
91
+ "version": "2.15.0",
92
+ "platform": "ruby"
93
+ },
94
+ "faraday-follow_redirects": {
95
+ "version": "0.5.0",
96
+ "platform": "ruby"
97
+ },
98
+ "faraday-net_http": {
99
+ "version": "3.5.0",
100
+ "platform": "ruby"
101
+ },
102
+ "fileutils": {
103
+ "version": "1.7.3",
104
+ "platform": "ruby"
105
+ },
106
+ "forwardable": {
107
+ "version": "1.3.3",
108
+ "platform": "ruby"
109
+ },
110
+ "http-accept": {
111
+ "version": "1.7.0",
112
+ "platform": "ruby"
113
+ },
114
+ "http-cookie": {
115
+ "version": "1.1.6",
116
+ "platform": "ruby"
117
+ },
118
+ "i18n": {
119
+ "version": "1.15.2",
120
+ "platform": "ruby"
121
+ },
122
+ "io-console": {
123
+ "version": "0.9.4",
124
+ "platform": "ruby"
125
+ },
126
+ "io-nonblock": {
127
+ "version": "0.3.2",
128
+ "platform": "ruby"
129
+ },
130
+ "io-wait": {
131
+ "version": "0.3.2",
132
+ "platform": "ruby"
133
+ },
134
+ "ipaddr": {
135
+ "version": "1.2.7",
136
+ "platform": "ruby"
137
+ },
138
+ "json": {
139
+ "version": "2.21.2",
140
+ "platform": "ruby"
141
+ },
142
+ "json-jwt": {
143
+ "version": "1.17.2",
144
+ "platform": "ruby"
145
+ },
146
+ "logger": {
147
+ "version": "1.7.0",
148
+ "platform": "ruby"
149
+ },
150
+ "mail": {
151
+ "version": "2.9.1",
152
+ "platform": "ruby"
153
+ },
154
+ "mime-types": {
155
+ "version": "3.7.0",
156
+ "platform": "ruby"
157
+ },
158
+ "mime-types-data": {
159
+ "version": "3.2026.1020",
160
+ "platform": "ruby"
161
+ },
162
+ "mini_mime": {
163
+ "version": "1.1.5",
164
+ "platform": "ruby"
165
+ },
166
+ "multi_json": {
167
+ "version": "1.21.2",
168
+ "platform": "ruby"
169
+ },
170
+ "mustermann": {
171
+ "version": "3.1.1",
172
+ "platform": "ruby"
173
+ },
174
+ "nesty": {
175
+ "version": "1.0.2",
176
+ "platform": "ruby"
177
+ },
178
+ "net-http": {
179
+ "version": "0.10.0",
180
+ "platform": "ruby"
181
+ },
182
+ "net-pop": {
183
+ "version": "0.1.2",
184
+ "platform": "ruby"
185
+ },
186
+ "net-protocol": {
187
+ "version": "0.4.0",
188
+ "platform": "ruby"
189
+ },
190
+ "net-smtp": {
191
+ "version": "0.5.2",
192
+ "platform": "ruby"
193
+ },
194
+ "netrc": {
195
+ "version": "0.11.0",
196
+ "platform": "ruby"
197
+ },
198
+ "open3": {
199
+ "version": "0.2.1",
200
+ "platform": "ruby"
201
+ },
202
+ "openssl": {
203
+ "version": "3.3.3",
204
+ "platform": "ruby"
205
+ },
206
+ "optparse": {
207
+ "version": "0.6.0",
208
+ "platform": "ruby"
209
+ },
210
+ "pathname": {
211
+ "version": "0.4.0",
212
+ "platform": "ruby"
213
+ },
214
+ "pp": {
215
+ "version": "0.6.2",
216
+ "platform": "ruby"
217
+ },
218
+ "prettyprint": {
219
+ "version": "0.2.0",
220
+ "platform": "ruby"
221
+ },
222
+ "psych": {
223
+ "version": "5.2.2",
224
+ "platform": "ruby"
225
+ },
226
+ "rack": {
227
+ "version": "3.2.7",
228
+ "platform": "ruby"
229
+ },
230
+ "rack-oauth2": {
231
+ "version": "2.2.1",
232
+ "platform": "ruby"
233
+ },
234
+ "rack-protection": {
235
+ "version": "4.2.1",
236
+ "platform": "ruby"
237
+ },
238
+ "rack-session": {
239
+ "version": "2.1.2",
240
+ "platform": "ruby"
241
+ },
242
+ "rackup": {
243
+ "version": "2.3.1",
244
+ "platform": "ruby"
245
+ },
246
+ "redcarpet": {
247
+ "version": "3.6.1",
248
+ "platform": "ruby"
249
+ },
250
+ "require_all": {
251
+ "version": "2.0.0",
252
+ "platform": "ruby"
253
+ },
254
+ "resolv": {
255
+ "version": "0.7.2",
256
+ "platform": "ruby"
257
+ },
258
+ "rest-client": {
259
+ "version": "2.1.0",
260
+ "platform": "ruby"
261
+ },
262
+ "securerandom": {
263
+ "version": "0.4.1",
264
+ "platform": "ruby"
265
+ },
266
+ "set": {
267
+ "version": "1.1.1",
268
+ "platform": "ruby"
269
+ },
270
+ "shellwords": {
271
+ "version": "0.2.2",
272
+ "platform": "ruby"
273
+ },
274
+ "sinatra": {
275
+ "version": "4.2.1",
276
+ "platform": "ruby"
277
+ },
278
+ "sinatra-activerecord": {
279
+ "version": "2.0.28",
280
+ "platform": "ruby"
281
+ },
282
+ "sinatra-contrib": {
283
+ "version": "4.2.1",
284
+ "platform": "ruby"
285
+ },
286
+ "singleton": {
287
+ "version": "0.3.0",
288
+ "platform": "ruby"
289
+ },
290
+ "sqlite3": {
291
+ "version": "2.10.1",
292
+ "platform": "x86_64-linux-gnu"
293
+ },
294
+ "stringio": {
295
+ "version": "3.1.2",
296
+ "platform": "ruby"
297
+ },
298
+ "strscan": {
299
+ "version": "3.1.2",
300
+ "platform": "ruby"
301
+ },
302
+ "syntax_suggest": {
303
+ "version": "2.0.3",
304
+ "platform": "ruby"
305
+ },
306
+ "tempfile": {
307
+ "version": "0.3.1",
308
+ "platform": "ruby"
309
+ },
310
+ "tilt": {
311
+ "version": "2.9.0",
312
+ "platform": "ruby"
313
+ },
314
+ "time": {
315
+ "version": "0.4.1",
316
+ "platform": "ruby"
317
+ },
318
+ "timeout": {
319
+ "version": "0.6.1",
320
+ "platform": "ruby"
321
+ },
322
+ "tmpdir": {
323
+ "version": "0.3.1",
324
+ "platform": "ruby"
325
+ },
326
+ "tzinfo": {
327
+ "version": "2.0.6",
328
+ "platform": "ruby"
329
+ },
330
+ "uri": {
331
+ "version": "1.1.2",
332
+ "platform": "ruby"
333
+ },
334
+ "weakref": {
335
+ "version": "0.1.3",
336
+ "platform": "ruby"
337
+ },
338
+ "webrick": {
339
+ "version": "1.9.2",
340
+ "platform": "ruby"
341
+ },
342
+ "yaml": {
343
+ "version": "0.4.0",
344
+ "platform": "ruby"
345
+ },
346
+ "zlib": {
347
+ "version": "3.2.3",
348
+ "platform": "ruby"
349
+ }
350
+ }
351
+ },
352
+ "weekly": {
353
+ "ruby": {
354
+ "engine": "ruby",
355
+ "version": "3.4.11",
356
+ "platform": "x86_64-linux",
357
+ "abi": "3.4.0",
358
+ "executable": "/nix/store/7b77drpxxyywsxq9hf4y0fc8c56pfivl-ruby-3.4.11/bin/ruby"
359
+ },
360
+ "gems": {
361
+ "activemodel": {
362
+ "version": "8.1.4",
363
+ "platform": "ruby"
364
+ },
365
+ "activerecord": {
366
+ "version": "8.1.4",
367
+ "platform": "ruby"
368
+ },
369
+ "activesupport": {
370
+ "version": "8.1.4",
371
+ "platform": "ruby"
372
+ },
373
+ "aes_key_wrap": {
374
+ "version": "1.1.0",
375
+ "platform": "ruby"
376
+ },
377
+ "attr_required": {
378
+ "version": "1.0.2",
379
+ "platform": "ruby"
380
+ },
381
+ "base64": {
382
+ "version": "0.3.0",
383
+ "platform": "ruby"
384
+ },
385
+ "bigdecimal": {
386
+ "version": "4.1.3",
387
+ "platform": "ruby"
388
+ },
389
+ "bindata": {
390
+ "version": "3.0.1",
391
+ "platform": "ruby"
392
+ },
393
+ "cgi": {
394
+ "version": "0.4.2",
395
+ "platform": "ruby"
396
+ },
397
+ "concurrent-ruby": {
398
+ "version": "1.3.8",
399
+ "platform": "ruby"
400
+ },
401
+ "connection_pool": {
402
+ "version": "3.0.2",
403
+ "platform": "ruby"
404
+ },
405
+ "date": {
406
+ "version": "3.6.0",
407
+ "platform": "ruby"
408
+ },
409
+ "delegate": {
410
+ "version": "0.4.0",
411
+ "platform": "ruby"
412
+ },
413
+ "did_you_mean": {
414
+ "version": "2.0.0",
415
+ "platform": "ruby"
416
+ },
417
+ "digest": {
418
+ "version": "3.2.0",
419
+ "platform": "ruby"
420
+ },
421
+ "domain_name": {
422
+ "version": "0.7.20261007",
423
+ "platform": "ruby"
424
+ },
425
+ "erb": {
426
+ "version": "4.0.4.1",
427
+ "platform": "ruby"
428
+ },
429
+ "error_highlight": {
430
+ "version": "0.7.0",
431
+ "platform": "ruby"
432
+ },
433
+ "etc": {
434
+ "version": "1.4.6",
435
+ "platform": "ruby"
436
+ },
437
+ "faraday": {
438
+ "version": "2.15.0",
439
+ "platform": "ruby"
440
+ },
441
+ "faraday-follow_redirects": {
442
+ "version": "0.5.0",
443
+ "platform": "ruby"
444
+ },
445
+ "faraday-net_http": {
446
+ "version": "3.5.0",
447
+ "platform": "ruby"
448
+ },
449
+ "fiddle": {
450
+ "version": "1.1.8",
451
+ "platform": "ruby"
452
+ },
453
+ "fileutils": {
454
+ "version": "1.7.3",
455
+ "platform": "ruby"
456
+ },
457
+ "forwardable": {
458
+ "version": "1.3.3",
459
+ "platform": "ruby"
460
+ },
461
+ "http-accept": {
462
+ "version": "1.7.0",
463
+ "platform": "ruby"
464
+ },
465
+ "http-cookie": {
466
+ "version": "1.1.6",
467
+ "platform": "ruby"
468
+ },
469
+ "i18n": {
470
+ "version": "1.15.2",
471
+ "platform": "ruby"
472
+ },
473
+ "io-console": {
474
+ "version": "0.9.4",
475
+ "platform": "ruby"
476
+ },
477
+ "io-nonblock": {
478
+ "version": "0.3.2",
479
+ "platform": "ruby"
480
+ },
481
+ "io-wait": {
482
+ "version": "0.3.2",
483
+ "platform": "ruby"
484
+ },
485
+ "ipaddr": {
486
+ "version": "1.2.7",
487
+ "platform": "ruby"
488
+ },
489
+ "json": {
490
+ "version": "2.21.2",
491
+ "platform": "ruby"
492
+ },
493
+ "json-jwt": {
494
+ "version": "1.17.2",
495
+ "platform": "ruby"
496
+ },
497
+ "logger": {
498
+ "version": "1.7.0",
499
+ "platform": "ruby"
500
+ },
501
+ "mail": {
502
+ "version": "2.9.1",
503
+ "platform": "ruby"
504
+ },
505
+ "mime-types": {
506
+ "version": "3.7.0",
507
+ "platform": "ruby"
508
+ },
509
+ "mime-types-data": {
510
+ "version": "3.2026.1020",
511
+ "platform": "ruby"
512
+ },
513
+ "mini_mime": {
514
+ "version": "1.1.5",
515
+ "platform": "ruby"
516
+ },
517
+ "multi_json": {
518
+ "version": "1.21.2",
519
+ "platform": "ruby"
520
+ },
521
+ "mustermann": {
522
+ "version": "3.1.1",
523
+ "platform": "ruby"
524
+ },
525
+ "nesty": {
526
+ "version": "1.0.2",
527
+ "platform": "ruby"
528
+ },
529
+ "net-http": {
530
+ "version": "0.10.0",
531
+ "platform": "ruby"
532
+ },
533
+ "net-pop": {
534
+ "version": "0.1.2",
535
+ "platform": "ruby"
536
+ },
537
+ "net-protocol": {
538
+ "version": "0.4.0",
539
+ "platform": "ruby"
540
+ },
541
+ "net-smtp": {
542
+ "version": "0.5.2",
543
+ "platform": "ruby"
544
+ },
545
+ "netrc": {
546
+ "version": "0.11.0",
547
+ "platform": "ruby"
548
+ },
549
+ "open3": {
550
+ "version": "0.2.1",
551
+ "platform": "ruby"
552
+ },
553
+ "openssl": {
554
+ "version": "3.3.3",
555
+ "platform": "ruby"
556
+ },
557
+ "optparse": {
558
+ "version": "0.6.0",
559
+ "platform": "ruby"
560
+ },
561
+ "pathname": {
562
+ "version": "0.4.0",
563
+ "platform": "ruby"
564
+ },
565
+ "pp": {
566
+ "version": "0.6.2",
567
+ "platform": "ruby"
568
+ },
569
+ "prettyprint": {
570
+ "version": "0.2.0",
571
+ "platform": "ruby"
572
+ },
573
+ "psych": {
574
+ "version": "5.2.2",
575
+ "platform": "ruby"
576
+ },
577
+ "racc": {
578
+ "version": "1.8.1",
579
+ "platform": "ruby"
580
+ },
581
+ "rack": {
582
+ "version": "3.2.7",
583
+ "platform": "ruby"
584
+ },
585
+ "rack-oauth2": {
586
+ "version": "2.2.1",
587
+ "platform": "ruby"
588
+ },
589
+ "rack-protection": {
590
+ "version": "4.2.1",
591
+ "platform": "ruby"
592
+ },
593
+ "rack-session": {
594
+ "version": "2.1.2",
595
+ "platform": "ruby"
596
+ },
597
+ "rackup": {
598
+ "version": "2.3.1",
599
+ "platform": "ruby"
600
+ },
601
+ "redcarpet": {
602
+ "version": "3.6.1",
603
+ "platform": "ruby"
604
+ },
605
+ "require_all": {
606
+ "version": "2.0.0",
607
+ "platform": "ruby"
608
+ },
609
+ "resolv": {
610
+ "version": "0.7.2",
611
+ "platform": "ruby"
612
+ },
613
+ "rest-client": {
614
+ "version": "2.1.0",
615
+ "platform": "ruby"
616
+ },
617
+ "securerandom": {
618
+ "version": "0.4.1",
619
+ "platform": "ruby"
620
+ },
621
+ "set": {
622
+ "version": "1.1.1",
623
+ "platform": "ruby"
624
+ },
625
+ "shellwords": {
626
+ "version": "0.2.2",
627
+ "platform": "ruby"
628
+ },
629
+ "sinatra": {
630
+ "version": "4.2.1",
631
+ "platform": "ruby"
632
+ },
633
+ "sinatra-activerecord": {
634
+ "version": "2.0.28",
635
+ "platform": "ruby"
636
+ },
637
+ "sinatra-contrib": {
638
+ "version": "4.2.1",
639
+ "platform": "ruby"
640
+ },
641
+ "singleton": {
642
+ "version": "0.3.0",
643
+ "platform": "ruby"
644
+ },
645
+ "sqlite3": {
646
+ "version": "2.10.1",
647
+ "platform": "x86_64-linux-gnu"
648
+ },
649
+ "stringio": {
650
+ "version": "3.1.2",
651
+ "platform": "ruby"
652
+ },
653
+ "strscan": {
654
+ "version": "3.1.2",
655
+ "platform": "ruby"
656
+ },
657
+ "syntax_suggest": {
658
+ "version": "2.0.3",
659
+ "platform": "ruby"
660
+ },
661
+ "tempfile": {
662
+ "version": "0.3.1",
663
+ "platform": "ruby"
664
+ },
665
+ "tilt": {
666
+ "version": "2.9.0",
667
+ "platform": "ruby"
668
+ },
669
+ "time": {
670
+ "version": "0.4.1",
671
+ "platform": "ruby"
672
+ },
673
+ "timeout": {
674
+ "version": "0.6.1",
675
+ "platform": "ruby"
676
+ },
677
+ "tmpdir": {
678
+ "version": "0.3.1",
679
+ "platform": "ruby"
680
+ },
681
+ "tomlrb": {
682
+ "version": "2.0.5",
683
+ "platform": "ruby"
684
+ },
685
+ "tzinfo": {
686
+ "version": "2.0.6",
687
+ "platform": "ruby"
688
+ },
689
+ "uri": {
690
+ "version": "1.1.2",
691
+ "platform": "ruby"
692
+ },
693
+ "weakref": {
694
+ "version": "0.1.3",
695
+ "platform": "ruby"
696
+ },
697
+ "webrick": {
698
+ "version": "1.9.2",
699
+ "platform": "ruby"
700
+ },
701
+ "yaml": {
702
+ "version": "0.4.0",
703
+ "platform": "ruby"
704
+ },
705
+ "zlib": {
706
+ "version": "3.2.3",
707
+ "platform": "ruby"
708
+ }
709
+ }
710
+ }
711
+ },
712
+ "profiles": {
713
+ "quick": [
714
+ {
715
+ "id": "api.public_get",
716
+ "dimensions": {},
717
+ "reference_allocations": 493.0,
718
+ "allocation_ceiling": 649,
719
+ "counters": {
720
+ "queries": 0,
721
+ "authorizations": 1,
722
+ "executions": 1
723
+ }
724
+ },
725
+ {
726
+ "id": "api.basic_get",
727
+ "dimensions": {},
728
+ "reference_allocations": 495.0,
729
+ "allocation_ceiling": 651,
730
+ "counters": {
731
+ "queries": 0,
732
+ "authorizations": 1,
733
+ "executions": 1
734
+ }
735
+ },
736
+ {
737
+ "id": "api.token_get",
738
+ "dimensions": {},
739
+ "reference_allocations": 505.0,
740
+ "allocation_ceiling": 664,
741
+ "counters": {
742
+ "queries": 0,
743
+ "authorizations": 1,
744
+ "executions": 1
745
+ }
746
+ },
747
+ {
748
+ "id": "api.typed_post",
749
+ "dimensions": {},
750
+ "reference_allocations": 511.0,
751
+ "allocation_ceiling": 671,
752
+ "counters": {
753
+ "queries": 0,
754
+ "authorizations": 1,
755
+ "executions": 1
756
+ }
757
+ },
758
+ {
759
+ "id": "api.invalid_post",
760
+ "dimensions": {},
761
+ "reference_allocations": 539.0,
762
+ "allocation_ceiling": 706,
763
+ "counters": {
764
+ "queries": 0,
765
+ "authorizations": 1,
766
+ "executions": 0
767
+ }
768
+ },
769
+ {
770
+ "id": "api.nested_get",
771
+ "dimensions": {},
772
+ "reference_allocations": 545.0,
773
+ "allocation_ceiling": 714,
774
+ "counters": {
775
+ "queries": 0,
776
+ "authorizations": 1,
777
+ "executions": 1
778
+ }
779
+ },
780
+ {
781
+ "id": "api.list",
782
+ "dimensions": {
783
+ "rows": 32
784
+ },
785
+ "reference_allocations": 629.0,
786
+ "allocation_ceiling": 819,
787
+ "counters": {
788
+ "queries": 0,
789
+ "authorizations": 1,
790
+ "executions": 1
791
+ }
792
+ },
793
+ {
794
+ "id": "sqlite.page",
795
+ "dimensions": {
796
+ "rows": 128,
797
+ "page_size": 32
798
+ },
799
+ "reference_allocations": 2431.0,
800
+ "allocation_ceiling": 3071,
801
+ "counters": {
802
+ "queries": 1,
803
+ "authorizations": 1,
804
+ "executions": 1
805
+ }
806
+ },
807
+ {
808
+ "id": "sqlite.includes",
809
+ "dimensions": {
810
+ "rows": 32,
811
+ "include_depth": 2
812
+ },
813
+ "reference_allocations": 11256.0,
814
+ "allocation_ceiling": 14102,
815
+ "counters": {
816
+ "queries": 3,
817
+ "authorizations": 65,
818
+ "executions": 1
819
+ }
820
+ },
821
+ {
822
+ "id": "docs.options",
823
+ "dimensions": {
824
+ "size": 8
825
+ },
826
+ "reference_allocations": 2992.0,
827
+ "allocation_ceiling": 3772,
828
+ "counters": {
829
+ "queries": 0,
830
+ "authorizations": 9,
831
+ "executions": 0
832
+ }
833
+ },
834
+ {
835
+ "id": "docs.html_resources",
836
+ "dimensions": {
837
+ "size": 8
838
+ },
839
+ "reference_allocations": 162120.0,
840
+ "allocation_ceiling": 202682,
841
+ "counters": {
842
+ "queries": 0,
843
+ "authorizations": 9,
844
+ "executions": 0
845
+ }
846
+ },
847
+ {
848
+ "id": "docs.html_actions",
849
+ "dimensions": {
850
+ "size": 8
851
+ },
852
+ "reference_allocations": 488154.0,
853
+ "allocation_ceiling": 610225,
854
+ "counters": {
855
+ "queries": 0,
856
+ "authorizations": 9,
857
+ "executions": 0
858
+ }
859
+ }
860
+ ],
861
+ "weekly": [
862
+ {
863
+ "id": "api.public_get",
864
+ "dimensions": {},
865
+ "reference_allocations": 493.0,
866
+ "allocation_ceiling": 649,
867
+ "counters": {
868
+ "queries": 0,
869
+ "authorizations": 1,
870
+ "executions": 1
871
+ }
872
+ },
873
+ {
874
+ "id": "api.basic_get",
875
+ "dimensions": {},
876
+ "reference_allocations": 495.0,
877
+ "allocation_ceiling": 651,
878
+ "counters": {
879
+ "queries": 0,
880
+ "authorizations": 1,
881
+ "executions": 1
882
+ }
883
+ },
884
+ {
885
+ "id": "api.token_get",
886
+ "dimensions": {},
887
+ "reference_allocations": 505.0,
888
+ "allocation_ceiling": 664,
889
+ "counters": {
890
+ "queries": 0,
891
+ "authorizations": 1,
892
+ "executions": 1
893
+ }
894
+ },
895
+ {
896
+ "id": "api.typed_post",
897
+ "dimensions": {},
898
+ "reference_allocations": 511.0,
899
+ "allocation_ceiling": 671,
900
+ "counters": {
901
+ "queries": 0,
902
+ "authorizations": 1,
903
+ "executions": 1
904
+ }
905
+ },
906
+ {
907
+ "id": "api.invalid_post",
908
+ "dimensions": {},
909
+ "reference_allocations": 539.0,
910
+ "allocation_ceiling": 706,
911
+ "counters": {
912
+ "queries": 0,
913
+ "authorizations": 1,
914
+ "executions": 0
915
+ }
916
+ },
917
+ {
918
+ "id": "api.nested_get",
919
+ "dimensions": {},
920
+ "reference_allocations": 545.0,
921
+ "allocation_ceiling": 714,
922
+ "counters": {
923
+ "queries": 0,
924
+ "authorizations": 1,
925
+ "executions": 1
926
+ }
927
+ },
928
+ {
929
+ "id": "api.list",
930
+ "dimensions": {
931
+ "rows": 32
932
+ },
933
+ "reference_allocations": 629.0,
934
+ "allocation_ceiling": 819,
935
+ "counters": {
936
+ "queries": 0,
937
+ "authorizations": 1,
938
+ "executions": 1
939
+ }
940
+ },
941
+ {
942
+ "id": "api.list",
943
+ "dimensions": {
944
+ "rows": 1024,
945
+ "user": "member"
946
+ },
947
+ "reference_allocations": 5589.0,
948
+ "allocation_ceiling": 7019,
949
+ "counters": {
950
+ "queries": 0,
951
+ "authorizations": 1,
952
+ "executions": 1
953
+ }
954
+ },
955
+ {
956
+ "id": "api.list",
957
+ "dimensions": {
958
+ "rows": 1024,
959
+ "user": "admin"
960
+ },
961
+ "reference_allocations": 3539.0,
962
+ "allocation_ceiling": 4456,
963
+ "counters": {
964
+ "queries": 0,
965
+ "authorizations": 1,
966
+ "executions": 1
967
+ }
968
+ },
969
+ {
970
+ "id": "api.basic_get",
971
+ "dimensions": {
972
+ "user": "admin"
973
+ },
974
+ "reference_allocations": 491.0,
975
+ "allocation_ceiling": 646,
976
+ "counters": {
977
+ "queries": 0,
978
+ "authorizations": 1,
979
+ "executions": 1
980
+ }
981
+ },
982
+ {
983
+ "id": "sqlite.page",
984
+ "dimensions": {
985
+ "rows": 128,
986
+ "page_size": 32
987
+ },
988
+ "reference_allocations": 2430.0,
989
+ "allocation_ceiling": 3070,
990
+ "counters": {
991
+ "queries": 1,
992
+ "authorizations": 1,
993
+ "executions": 1
994
+ }
995
+ },
996
+ {
997
+ "id": "sqlite.includes",
998
+ "dimensions": {
999
+ "rows": 32,
1000
+ "include_depth": 2
1001
+ },
1002
+ "reference_allocations": 11256.0,
1003
+ "allocation_ceiling": 14102,
1004
+ "counters": {
1005
+ "queries": 3,
1006
+ "authorizations": 65,
1007
+ "executions": 1
1008
+ }
1009
+ },
1010
+ {
1011
+ "id": "sqlite.page",
1012
+ "dimensions": {
1013
+ "rows": 10000,
1014
+ "page_size": 32
1015
+ },
1016
+ "reference_allocations": 2430.0,
1017
+ "allocation_ceiling": 3070,
1018
+ "counters": {
1019
+ "queries": 1,
1020
+ "authorizations": 1,
1021
+ "executions": 1
1022
+ }
1023
+ },
1024
+ {
1025
+ "id": "sqlite.includes",
1026
+ "dimensions": {
1027
+ "rows": 32,
1028
+ "include_depth": 2,
1029
+ "user": "admin"
1030
+ },
1031
+ "reference_allocations": 11256.0,
1032
+ "allocation_ceiling": 14102,
1033
+ "counters": {
1034
+ "queries": 3,
1035
+ "authorizations": 65,
1036
+ "executions": 1
1037
+ }
1038
+ },
1039
+ {
1040
+ "id": "sqlite.includes",
1041
+ "dimensions": {
1042
+ "rows": 32,
1043
+ "include_depth": 2,
1044
+ "user": "member"
1045
+ },
1046
+ "reference_allocations": 7783.0,
1047
+ "allocation_ceiling": 9761,
1048
+ "counters": {
1049
+ "queries": 3,
1050
+ "authorizations": 49,
1051
+ "executions": 1
1052
+ }
1053
+ },
1054
+ {
1055
+ "id": "sqlite.includes",
1056
+ "dimensions": {
1057
+ "rows": 128,
1058
+ "include_depth": 2,
1059
+ "user": "admin"
1060
+ },
1061
+ "reference_allocations": 41688.0,
1062
+ "allocation_ceiling": 52142,
1063
+ "counters": {
1064
+ "queries": 3,
1065
+ "authorizations": 257,
1066
+ "executions": 1
1067
+ }
1068
+ },
1069
+ {
1070
+ "id": "sqlite.includes",
1071
+ "dimensions": {
1072
+ "rows": 128,
1073
+ "include_depth": 2,
1074
+ "user": "member"
1075
+ },
1076
+ "reference_allocations": 27735.0,
1077
+ "allocation_ceiling": 34701,
1078
+ "counters": {
1079
+ "queries": 3,
1080
+ "authorizations": 193,
1081
+ "executions": 1
1082
+ }
1083
+ },
1084
+ {
1085
+ "id": "sqlite.includes",
1086
+ "dimensions": {
1087
+ "rows": 1024,
1088
+ "include_depth": 2,
1089
+ "user": "admin"
1090
+ },
1091
+ "reference_allocations": 327790.0,
1092
+ "allocation_ceiling": 409770,
1093
+ "counters": {
1094
+ "queries": 3,
1095
+ "authorizations": 2049,
1096
+ "executions": 1
1097
+ }
1098
+ },
1099
+ {
1100
+ "id": "sqlite.includes",
1101
+ "dimensions": {
1102
+ "rows": 1024,
1103
+ "include_depth": 2,
1104
+ "user": "member"
1105
+ },
1106
+ "reference_allocations": 215983.0,
1107
+ "allocation_ceiling": 270011,
1108
+ "counters": {
1109
+ "queries": 3,
1110
+ "authorizations": 1537,
1111
+ "executions": 1
1112
+ }
1113
+ },
1114
+ {
1115
+ "id": "docs.options",
1116
+ "dimensions": {
1117
+ "size": 8
1118
+ },
1119
+ "reference_allocations": 2992.0,
1120
+ "allocation_ceiling": 3772,
1121
+ "counters": {
1122
+ "queries": 0,
1123
+ "authorizations": 9,
1124
+ "executions": 0
1125
+ }
1126
+ },
1127
+ {
1128
+ "id": "docs.html_resources",
1129
+ "dimensions": {
1130
+ "size": 8
1131
+ },
1132
+ "reference_allocations": 162118.0,
1133
+ "allocation_ceiling": 202680,
1134
+ "counters": {
1135
+ "queries": 0,
1136
+ "authorizations": 9,
1137
+ "executions": 0
1138
+ }
1139
+ },
1140
+ {
1141
+ "id": "docs.html_actions",
1142
+ "dimensions": {
1143
+ "size": 8
1144
+ },
1145
+ "reference_allocations": 488150.0,
1146
+ "allocation_ceiling": 610220,
1147
+ "counters": {
1148
+ "queries": 0,
1149
+ "authorizations": 9,
1150
+ "executions": 0
1151
+ }
1152
+ },
1153
+ {
1154
+ "id": "docs.options",
1155
+ "dimensions": {
1156
+ "size": 16,
1157
+ "user": "admin"
1158
+ },
1159
+ "reference_allocations": 5353.0,
1160
+ "allocation_ceiling": 6724,
1161
+ "counters": {
1162
+ "queries": 0,
1163
+ "authorizations": 17,
1164
+ "executions": 0
1165
+ }
1166
+ },
1167
+ {
1168
+ "id": "docs.options",
1169
+ "dimensions": {
1170
+ "size": 16,
1171
+ "user": "member"
1172
+ },
1173
+ "reference_allocations": 5080.0,
1174
+ "allocation_ceiling": 6382,
1175
+ "counters": {
1176
+ "queries": 0,
1177
+ "authorizations": 17,
1178
+ "executions": 0
1179
+ }
1180
+ },
1181
+ {
1182
+ "id": "docs.html_resources",
1183
+ "dimensions": {
1184
+ "size": 16,
1185
+ "user": "admin"
1186
+ },
1187
+ "reference_allocations": 311969.0,
1188
+ "allocation_ceiling": 389994,
1189
+ "counters": {
1190
+ "queries": 0,
1191
+ "authorizations": 17,
1192
+ "executions": 0
1193
+ }
1194
+ },
1195
+ {
1196
+ "id": "docs.html_resources",
1197
+ "dimensions": {
1198
+ "size": 16,
1199
+ "user": "member"
1200
+ },
1201
+ "reference_allocations": 154605.0,
1202
+ "allocation_ceiling": 193289,
1203
+ "counters": {
1204
+ "queries": 0,
1205
+ "authorizations": 17,
1206
+ "executions": 0
1207
+ }
1208
+ },
1209
+ {
1210
+ "id": "docs.html_actions",
1211
+ "dimensions": {
1212
+ "size": 16,
1213
+ "user": "admin"
1214
+ },
1215
+ "reference_allocations": 1644215.0,
1216
+ "allocation_ceiling": 2055301,
1217
+ "counters": {
1218
+ "queries": 0,
1219
+ "authorizations": 17,
1220
+ "executions": 0
1221
+ }
1222
+ },
1223
+ {
1224
+ "id": "docs.html_actions",
1225
+ "dimensions": {
1226
+ "size": 16,
1227
+ "user": "member"
1228
+ },
1229
+ "reference_allocations": 670099.0,
1230
+ "allocation_ceiling": 837656,
1231
+ "counters": {
1232
+ "queries": 0,
1233
+ "authorizations": 17,
1234
+ "executions": 0
1235
+ }
1236
+ },
1237
+ {
1238
+ "id": "rust.async_example",
1239
+ "dimensions": {
1240
+ "size": 16,
1241
+ "user": "admin"
1242
+ },
1243
+ "reference_allocations": 839.0,
1244
+ "allocation_ceiling": 1081,
1245
+ "counters": {
1246
+ "queries": 0,
1247
+ "authorizations": 0,
1248
+ "executions": 0
1249
+ }
1250
+ },
1251
+ {
1252
+ "id": "rust.async_auth",
1253
+ "dimensions": {
1254
+ "size": 16,
1255
+ "user": "admin"
1256
+ },
1257
+ "reference_allocations": 105.0,
1258
+ "allocation_ceiling": 164,
1259
+ "counters": {
1260
+ "queries": 0,
1261
+ "authorizations": 0,
1262
+ "executions": 0
1263
+ }
1264
+ },
1265
+ {
1266
+ "id": "rust.blocking_example",
1267
+ "dimensions": {
1268
+ "size": 16,
1269
+ "user": "admin"
1270
+ },
1271
+ "reference_allocations": 838.0,
1272
+ "allocation_ceiling": 1080,
1273
+ "counters": {
1274
+ "queries": 0,
1275
+ "authorizations": 0,
1276
+ "executions": 0
1277
+ }
1278
+ },
1279
+ {
1280
+ "id": "rust.blocking_auth",
1281
+ "dimensions": {
1282
+ "size": 16,
1283
+ "user": "admin"
1284
+ },
1285
+ "reference_allocations": 104.0,
1286
+ "allocation_ceiling": 162,
1287
+ "counters": {
1288
+ "queries": 0,
1289
+ "authorizations": 0,
1290
+ "executions": 0
1291
+ }
1292
+ }
1293
+ ]
1294
+ },
1295
+ "calibration": {
1296
+ "quick": {
1297
+ "schema_version": 1,
1298
+ "source_sha": "b85ec364057f536940d689b09e612512ffffaf82",
1299
+ "raw_sha256": "d31d9261848936f86dae2f7aa1ec785023c8ea7006b334cc27149306c316ad82",
1300
+ "warmup_batches": 2,
1301
+ "iterations": 1,
1302
+ "fixture_sha256": {
1303
+ "servers/ruby/test_support/performance_endpoint_fixture.rb": "66a8d68cb0951b690e259c2398ed78a7bf4bc14144533361084d66be482cca71",
1304
+ "servers/ruby/test_support/performance_sqlite_fixture.rb": "faa5073996e7c666604080873c303d5ee6f8bd97ceaf7e33418342ceb83b6f0a",
1305
+ "servers/ruby/test_support/documentation_performance_fixture.rb": "85a5f387f69556c91a615efe29ac3a9536bd5a3d4dcb29785f994f00a67cbeb4",
1306
+ "servers/ruby/benchmarks/endpoints.rb": "fcf0706a571b42b6b4da51c8b0e15432b597953286fc8a612b440025b0e0ae50",
1307
+ "servers/ruby/benchmarks/performance_compare.rb": "c265534f6a821e4daee1d0ca15d27f41b9bdf5c597e81bc5e63b19f3b8473542"
1308
+ },
1309
+ "inputs": {
1310
+ "manifests": {
1311
+ "flake.lock": "a52bdf3a3b9a069175d3af298234c3cf7adeba54540833eed6ad902e9ccc0a64",
1312
+ "servers/ruby/Gemfile": "6f9e6db83231e6677aa5142822f3ad31eebbab981d64fac0ab778140a6e0721f",
1313
+ "servers/ruby/haveapi.gemspec": "3e2b1d2764ab00cf195674946d49330fcaa69cf08a8a8bd7531093de539bfc85",
1314
+ "clients/ruby/Gemfile": "ead9407613eb801c7d74222fe473c5c7a666017de6744d7c8c39a1e505ca5a1c",
1315
+ "clients/ruby/haveapi-client.gemspec": "3ffaaaf1c71addb77a146e2920577b3f0c403319e6741018c8fd0e635d81289e"
1316
+ },
1317
+ "locks": {
1318
+ "Gemfile.lock": "0a48c3e68d0b78caf945cb5a0430d13841ee140eb1bdca5734d823617a42afe6",
1319
+ "servers/ruby/Gemfile.lock": "fdc5129f60f9ed2f6a56fbf7f9483af5d6a003fedb13a93e895e9cab87193b52"
1320
+ }
1321
+ }
1322
+ },
1323
+ "weekly": {
1324
+ "schema_version": 1,
1325
+ "source_sha": "b85ec364057f536940d689b09e612512ffffaf82",
1326
+ "raw_sha256": "175b5703eb8fc536500da36ee826e715897ce093a4e552ecff547d8e35d2fb34",
1327
+ "warmup_batches": 2,
1328
+ "iterations": 1,
1329
+ "fixture_sha256": {
1330
+ "servers/ruby/test_support/performance_endpoint_fixture.rb": "66a8d68cb0951b690e259c2398ed78a7bf4bc14144533361084d66be482cca71",
1331
+ "servers/ruby/test_support/performance_sqlite_fixture.rb": "5cb0930b87e8ecb6731f5ea869bd189f77cdccfa6b8b5af7fcd3b1fd404baed7",
1332
+ "servers/ruby/test_support/documentation_performance_fixture.rb": "85a5f387f69556c91a615efe29ac3a9536bd5a3d4dcb29785f994f00a67cbeb4",
1333
+ "servers/ruby/benchmarks/endpoints.rb": "fcf0706a571b42b6b4da51c8b0e15432b597953286fc8a612b440025b0e0ae50",
1334
+ "servers/ruby/benchmarks/performance_compare.rb": "67691bee966a0ab3d354fa6916b848edf4fbe7262c702426495965521b949c80"
1335
+ },
1336
+ "inputs": {
1337
+ "manifests": {
1338
+ "flake.lock": "a52bdf3a3b9a069175d3af298234c3cf7adeba54540833eed6ad902e9ccc0a64",
1339
+ "servers/ruby/Gemfile": "6f9e6db83231e6677aa5142822f3ad31eebbab981d64fac0ab778140a6e0721f",
1340
+ "servers/ruby/haveapi.gemspec": "3e2b1d2764ab00cf195674946d49330fcaa69cf08a8a8bd7531093de539bfc85",
1341
+ "clients/ruby/Gemfile": "ead9407613eb801c7d74222fe473c5c7a666017de6744d7c8c39a1e505ca5a1c",
1342
+ "clients/ruby/haveapi-client.gemspec": "3ffaaaf1c71addb77a146e2920577b3f0c403319e6741018c8fd0e635d81289e",
1343
+ "clients/rust/Gemfile": "4e5c68747083089d2c83b15563ada6414e3505b53ee5c9809c031e5303a86902",
1344
+ "clients/rust/haveapi-rust-client.gemspec": "6a291c1cfbd35bde57a6a2c662b045ce5aa72c36eff0eead9a151d77ea01ba82"
1345
+ },
1346
+ "locks": {
1347
+ "Gemfile.lock": "0a48c3e68d0b78caf945cb5a0430d13841ee140eb1bdca5734d823617a42afe6",
1348
+ "servers/ruby/Gemfile.lock": "fdc5129f60f9ed2f6a56fbf7f9483af5d6a003fedb13a93e895e9cab87193b52",
1349
+ "clients/rust/Gemfile.lock": "53b94ab0ef92f5dccfd413eb1e313ed65868f1e2ba41af8b95ce6e62ae8d447f"
1350
+ }
1351
+ }
1352
+ }
1353
+ }
1354
+ }