@checkstack/healthcheck-backend 1.3.0 → 1.5.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. package/CHANGELOG.md +409 -0
  2. package/drizzle/0015_quiet_meggan.sql +12 -0
  3. package/drizzle/0016_complex_maginty.sql +1 -0
  4. package/drizzle/0017_pretty_caretaker.sql +1 -0
  5. package/drizzle/meta/0015_snapshot.json +764 -0
  6. package/drizzle/meta/0016_snapshot.json +644 -0
  7. package/drizzle/meta/0017_snapshot.json +563 -0
  8. package/drizzle/meta/_journal.json +21 -0
  9. package/package.json +24 -21
  10. package/src/automations.test.ts +6 -27
  11. package/src/automations.ts +32 -30
  12. package/src/collector-script-test.test.ts +236 -0
  13. package/src/collector-script-test.ts +221 -0
  14. package/src/health-entity.test.ts +694 -0
  15. package/src/health-entity.ts +367 -0
  16. package/src/health-state.test.ts +115 -0
  17. package/src/health-state.ts +333 -0
  18. package/src/healthcheck-gitops-kinds.test.ts +6 -32
  19. package/src/healthcheck-gitops-kinds.ts +4 -19
  20. package/src/hooks.test.ts +19 -6
  21. package/src/hooks.ts +13 -68
  22. package/src/index.ts +118 -48
  23. package/src/queue-executor.test.ts +13 -0
  24. package/src/queue-executor.ts +251 -444
  25. package/src/retention-job.ts +65 -1
  26. package/src/retention-state-transitions.test.ts +49 -0
  27. package/src/router.test.ts +13 -0
  28. package/src/router.ts +44 -0
  29. package/src/schema.ts +34 -54
  30. package/src/service-notification-policy.test.ts +28 -71
  31. package/src/service.ts +89 -0
  32. package/src/state-evaluator.test.ts +50 -5
  33. package/src/state-evaluator.ts +9 -2
  34. package/src/state-transitions.test.ts +126 -0
  35. package/src/state-transitions.ts +112 -0
  36. package/tsconfig.json +9 -0
  37. package/src/auto-incident-close-job.ts +0 -164
  38. package/src/auto-incident.test.ts +0 -196
  39. package/src/auto-incident.ts +0 -332
@@ -0,0 +1,764 @@
1
+ {
2
+ "id": "a5bf5f4f-f128-4c9f-8898-f6f4e6cb8f2a",
3
+ "prevId": "b6feb0cc-aaac-43bc-a958-a52ff7b17809",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.health_check_aggregates": {
8
+ "name": "health_check_aggregates",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "configuration_id": {
19
+ "name": "configuration_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "system_id": {
25
+ "name": "system_id",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "bucket_start": {
31
+ "name": "bucket_start",
32
+ "type": "timestamp",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "bucket_size": {
37
+ "name": "bucket_size",
38
+ "type": "bucket_size",
39
+ "typeSchema": "public",
40
+ "primaryKey": false,
41
+ "notNull": true
42
+ },
43
+ "run_count": {
44
+ "name": "run_count",
45
+ "type": "integer",
46
+ "primaryKey": false,
47
+ "notNull": true
48
+ },
49
+ "healthy_count": {
50
+ "name": "healthy_count",
51
+ "type": "integer",
52
+ "primaryKey": false,
53
+ "notNull": true
54
+ },
55
+ "degraded_count": {
56
+ "name": "degraded_count",
57
+ "type": "integer",
58
+ "primaryKey": false,
59
+ "notNull": true
60
+ },
61
+ "unhealthy_count": {
62
+ "name": "unhealthy_count",
63
+ "type": "integer",
64
+ "primaryKey": false,
65
+ "notNull": true
66
+ },
67
+ "latency_sum_ms": {
68
+ "name": "latency_sum_ms",
69
+ "type": "integer",
70
+ "primaryKey": false,
71
+ "notNull": false
72
+ },
73
+ "avg_latency_ms": {
74
+ "name": "avg_latency_ms",
75
+ "type": "integer",
76
+ "primaryKey": false,
77
+ "notNull": false
78
+ },
79
+ "min_latency_ms": {
80
+ "name": "min_latency_ms",
81
+ "type": "integer",
82
+ "primaryKey": false,
83
+ "notNull": false
84
+ },
85
+ "max_latency_ms": {
86
+ "name": "max_latency_ms",
87
+ "type": "integer",
88
+ "primaryKey": false,
89
+ "notNull": false
90
+ },
91
+ "p95_latency_ms": {
92
+ "name": "p95_latency_ms",
93
+ "type": "integer",
94
+ "primaryKey": false,
95
+ "notNull": false
96
+ },
97
+ "aggregated_result": {
98
+ "name": "aggregated_result",
99
+ "type": "jsonb",
100
+ "primaryKey": false,
101
+ "notNull": false
102
+ },
103
+ "tdigest_state": {
104
+ "name": "tdigest_state",
105
+ "type": "jsonb",
106
+ "primaryKey": false,
107
+ "notNull": false
108
+ },
109
+ "source_id": {
110
+ "name": "source_id",
111
+ "type": "text",
112
+ "primaryKey": false,
113
+ "notNull": false
114
+ },
115
+ "source_label": {
116
+ "name": "source_label",
117
+ "type": "text",
118
+ "primaryKey": false,
119
+ "notNull": false
120
+ }
121
+ },
122
+ "indexes": {},
123
+ "foreignKeys": {
124
+ "health_check_aggregates_configuration_id_health_check_configurations_id_fk": {
125
+ "name": "health_check_aggregates_configuration_id_health_check_configurations_id_fk",
126
+ "tableFrom": "health_check_aggregates",
127
+ "tableTo": "health_check_configurations",
128
+ "columnsFrom": [
129
+ "configuration_id"
130
+ ],
131
+ "columnsTo": [
132
+ "id"
133
+ ],
134
+ "onDelete": "cascade",
135
+ "onUpdate": "no action"
136
+ }
137
+ },
138
+ "compositePrimaryKeys": {},
139
+ "uniqueConstraints": {
140
+ "health_check_aggregates_bucket_unique": {
141
+ "name": "health_check_aggregates_bucket_unique",
142
+ "nullsNotDistinct": true,
143
+ "columns": [
144
+ "configuration_id",
145
+ "system_id",
146
+ "bucket_start",
147
+ "bucket_size",
148
+ "source_id"
149
+ ]
150
+ }
151
+ },
152
+ "policies": {},
153
+ "checkConstraints": {},
154
+ "isRLSEnabled": false
155
+ },
156
+ "public.health_check_auto_incidents": {
157
+ "name": "health_check_auto_incidents",
158
+ "schema": "",
159
+ "columns": {
160
+ "id": {
161
+ "name": "id",
162
+ "type": "uuid",
163
+ "primaryKey": true,
164
+ "notNull": true,
165
+ "default": "gen_random_uuid()"
166
+ },
167
+ "incident_id": {
168
+ "name": "incident_id",
169
+ "type": "uuid",
170
+ "primaryKey": false,
171
+ "notNull": true
172
+ },
173
+ "system_id": {
174
+ "name": "system_id",
175
+ "type": "text",
176
+ "primaryKey": false,
177
+ "notNull": true
178
+ },
179
+ "configuration_id": {
180
+ "name": "configuration_id",
181
+ "type": "uuid",
182
+ "primaryKey": false,
183
+ "notNull": true
184
+ },
185
+ "opened_at": {
186
+ "name": "opened_at",
187
+ "type": "timestamp",
188
+ "primaryKey": false,
189
+ "notNull": true,
190
+ "default": "now()"
191
+ },
192
+ "closed_at": {
193
+ "name": "closed_at",
194
+ "type": "timestamp",
195
+ "primaryKey": false,
196
+ "notNull": false
197
+ },
198
+ "cooldown_minutes": {
199
+ "name": "cooldown_minutes",
200
+ "type": "integer",
201
+ "primaryKey": false,
202
+ "notNull": false
203
+ }
204
+ },
205
+ "indexes": {
206
+ "health_check_auto_incidents_active_by_system_idx": {
207
+ "name": "health_check_auto_incidents_active_by_system_idx",
208
+ "columns": [
209
+ {
210
+ "expression": "system_id",
211
+ "isExpression": false,
212
+ "asc": true,
213
+ "nulls": "last"
214
+ },
215
+ {
216
+ "expression": "closed_at",
217
+ "isExpression": false,
218
+ "asc": true,
219
+ "nulls": "last"
220
+ }
221
+ ],
222
+ "isUnique": false,
223
+ "concurrently": false,
224
+ "method": "btree",
225
+ "with": {}
226
+ },
227
+ "health_check_auto_incidents_last_close_idx": {
228
+ "name": "health_check_auto_incidents_last_close_idx",
229
+ "columns": [
230
+ {
231
+ "expression": "configuration_id",
232
+ "isExpression": false,
233
+ "asc": true,
234
+ "nulls": "last"
235
+ },
236
+ {
237
+ "expression": "system_id",
238
+ "isExpression": false,
239
+ "asc": true,
240
+ "nulls": "last"
241
+ },
242
+ {
243
+ "expression": "closed_at",
244
+ "isExpression": false,
245
+ "asc": true,
246
+ "nulls": "last"
247
+ }
248
+ ],
249
+ "isUnique": false,
250
+ "concurrently": false,
251
+ "method": "btree",
252
+ "with": {}
253
+ }
254
+ },
255
+ "foreignKeys": {
256
+ "health_check_auto_incidents_configuration_id_health_check_configurations_id_fk": {
257
+ "name": "health_check_auto_incidents_configuration_id_health_check_configurations_id_fk",
258
+ "tableFrom": "health_check_auto_incidents",
259
+ "tableTo": "health_check_configurations",
260
+ "columnsFrom": [
261
+ "configuration_id"
262
+ ],
263
+ "columnsTo": [
264
+ "id"
265
+ ],
266
+ "onDelete": "cascade",
267
+ "onUpdate": "no action"
268
+ }
269
+ },
270
+ "compositePrimaryKeys": {},
271
+ "uniqueConstraints": {},
272
+ "policies": {},
273
+ "checkConstraints": {},
274
+ "isRLSEnabled": false
275
+ },
276
+ "public.health_check_configurations": {
277
+ "name": "health_check_configurations",
278
+ "schema": "",
279
+ "columns": {
280
+ "id": {
281
+ "name": "id",
282
+ "type": "uuid",
283
+ "primaryKey": true,
284
+ "notNull": true,
285
+ "default": "gen_random_uuid()"
286
+ },
287
+ "name": {
288
+ "name": "name",
289
+ "type": "text",
290
+ "primaryKey": false,
291
+ "notNull": true
292
+ },
293
+ "strategy_id": {
294
+ "name": "strategy_id",
295
+ "type": "text",
296
+ "primaryKey": false,
297
+ "notNull": true
298
+ },
299
+ "config": {
300
+ "name": "config",
301
+ "type": "jsonb",
302
+ "primaryKey": false,
303
+ "notNull": true
304
+ },
305
+ "collectors": {
306
+ "name": "collectors",
307
+ "type": "jsonb",
308
+ "primaryKey": false,
309
+ "notNull": false
310
+ },
311
+ "interval_seconds": {
312
+ "name": "interval_seconds",
313
+ "type": "integer",
314
+ "primaryKey": false,
315
+ "notNull": true
316
+ },
317
+ "is_template": {
318
+ "name": "is_template",
319
+ "type": "boolean",
320
+ "primaryKey": false,
321
+ "notNull": false,
322
+ "default": false
323
+ },
324
+ "paused": {
325
+ "name": "paused",
326
+ "type": "boolean",
327
+ "primaryKey": false,
328
+ "notNull": true,
329
+ "default": false
330
+ },
331
+ "created_at": {
332
+ "name": "created_at",
333
+ "type": "timestamp",
334
+ "primaryKey": false,
335
+ "notNull": true,
336
+ "default": "now()"
337
+ },
338
+ "updated_at": {
339
+ "name": "updated_at",
340
+ "type": "timestamp",
341
+ "primaryKey": false,
342
+ "notNull": true,
343
+ "default": "now()"
344
+ }
345
+ },
346
+ "indexes": {},
347
+ "foreignKeys": {},
348
+ "compositePrimaryKeys": {},
349
+ "uniqueConstraints": {},
350
+ "policies": {},
351
+ "checkConstraints": {},
352
+ "isRLSEnabled": false
353
+ },
354
+ "public.health_check_runs": {
355
+ "name": "health_check_runs",
356
+ "schema": "",
357
+ "columns": {
358
+ "id": {
359
+ "name": "id",
360
+ "type": "uuid",
361
+ "primaryKey": true,
362
+ "notNull": true,
363
+ "default": "gen_random_uuid()"
364
+ },
365
+ "configuration_id": {
366
+ "name": "configuration_id",
367
+ "type": "uuid",
368
+ "primaryKey": false,
369
+ "notNull": true
370
+ },
371
+ "system_id": {
372
+ "name": "system_id",
373
+ "type": "text",
374
+ "primaryKey": false,
375
+ "notNull": true
376
+ },
377
+ "status": {
378
+ "name": "status",
379
+ "type": "health_check_status",
380
+ "typeSchema": "public",
381
+ "primaryKey": false,
382
+ "notNull": true
383
+ },
384
+ "latency_ms": {
385
+ "name": "latency_ms",
386
+ "type": "integer",
387
+ "primaryKey": false,
388
+ "notNull": false
389
+ },
390
+ "result": {
391
+ "name": "result",
392
+ "type": "jsonb",
393
+ "primaryKey": false,
394
+ "notNull": false
395
+ },
396
+ "source_id": {
397
+ "name": "source_id",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": false
401
+ },
402
+ "source_label": {
403
+ "name": "source_label",
404
+ "type": "text",
405
+ "primaryKey": false,
406
+ "notNull": false
407
+ },
408
+ "timestamp": {
409
+ "name": "timestamp",
410
+ "type": "timestamp",
411
+ "primaryKey": false,
412
+ "notNull": true,
413
+ "default": "now()"
414
+ }
415
+ },
416
+ "indexes": {},
417
+ "foreignKeys": {
418
+ "health_check_runs_configuration_id_health_check_configurations_id_fk": {
419
+ "name": "health_check_runs_configuration_id_health_check_configurations_id_fk",
420
+ "tableFrom": "health_check_runs",
421
+ "tableTo": "health_check_configurations",
422
+ "columnsFrom": [
423
+ "configuration_id"
424
+ ],
425
+ "columnsTo": [
426
+ "id"
427
+ ],
428
+ "onDelete": "cascade",
429
+ "onUpdate": "no action"
430
+ }
431
+ },
432
+ "compositePrimaryKeys": {},
433
+ "uniqueConstraints": {},
434
+ "policies": {},
435
+ "checkConstraints": {},
436
+ "isRLSEnabled": false
437
+ },
438
+ "public.health_check_state_transitions": {
439
+ "name": "health_check_state_transitions",
440
+ "schema": "",
441
+ "columns": {
442
+ "id": {
443
+ "name": "id",
444
+ "type": "uuid",
445
+ "primaryKey": true,
446
+ "notNull": true,
447
+ "default": "gen_random_uuid()"
448
+ },
449
+ "system_id": {
450
+ "name": "system_id",
451
+ "type": "text",
452
+ "primaryKey": false,
453
+ "notNull": true
454
+ },
455
+ "configuration_id": {
456
+ "name": "configuration_id",
457
+ "type": "uuid",
458
+ "primaryKey": false,
459
+ "notNull": true
460
+ },
461
+ "from_status": {
462
+ "name": "from_status",
463
+ "type": "health_check_status",
464
+ "typeSchema": "public",
465
+ "primaryKey": false,
466
+ "notNull": false
467
+ },
468
+ "to_status": {
469
+ "name": "to_status",
470
+ "type": "health_check_status",
471
+ "typeSchema": "public",
472
+ "primaryKey": false,
473
+ "notNull": true
474
+ },
475
+ "transitioned_at": {
476
+ "name": "transitioned_at",
477
+ "type": "timestamp",
478
+ "primaryKey": false,
479
+ "notNull": true,
480
+ "default": "now()"
481
+ }
482
+ },
483
+ "indexes": {
484
+ "health_check_state_transitions_lookup_idx": {
485
+ "name": "health_check_state_transitions_lookup_idx",
486
+ "columns": [
487
+ {
488
+ "expression": "system_id",
489
+ "isExpression": false,
490
+ "asc": true,
491
+ "nulls": "last"
492
+ },
493
+ {
494
+ "expression": "to_status",
495
+ "isExpression": false,
496
+ "asc": true,
497
+ "nulls": "last"
498
+ },
499
+ {
500
+ "expression": "transitioned_at",
501
+ "isExpression": false,
502
+ "asc": true,
503
+ "nulls": "last"
504
+ }
505
+ ],
506
+ "isUnique": false,
507
+ "concurrently": false,
508
+ "method": "btree",
509
+ "with": {}
510
+ },
511
+ "health_check_state_transitions_system_recent_idx": {
512
+ "name": "health_check_state_transitions_system_recent_idx",
513
+ "columns": [
514
+ {
515
+ "expression": "system_id",
516
+ "isExpression": false,
517
+ "asc": true,
518
+ "nulls": "last"
519
+ },
520
+ {
521
+ "expression": "transitioned_at",
522
+ "isExpression": false,
523
+ "asc": true,
524
+ "nulls": "last"
525
+ }
526
+ ],
527
+ "isUnique": false,
528
+ "concurrently": false,
529
+ "method": "btree",
530
+ "with": {}
531
+ }
532
+ },
533
+ "foreignKeys": {
534
+ "health_check_state_transitions_configuration_id_health_check_configurations_id_fk": {
535
+ "name": "health_check_state_transitions_configuration_id_health_check_configurations_id_fk",
536
+ "tableFrom": "health_check_state_transitions",
537
+ "tableTo": "health_check_configurations",
538
+ "columnsFrom": [
539
+ "configuration_id"
540
+ ],
541
+ "columnsTo": [
542
+ "id"
543
+ ],
544
+ "onDelete": "cascade",
545
+ "onUpdate": "no action"
546
+ }
547
+ },
548
+ "compositePrimaryKeys": {},
549
+ "uniqueConstraints": {},
550
+ "policies": {},
551
+ "checkConstraints": {},
552
+ "isRLSEnabled": false
553
+ },
554
+ "public.health_check_unhealthy_transitions": {
555
+ "name": "health_check_unhealthy_transitions",
556
+ "schema": "",
557
+ "columns": {
558
+ "id": {
559
+ "name": "id",
560
+ "type": "uuid",
561
+ "primaryKey": true,
562
+ "notNull": true,
563
+ "default": "gen_random_uuid()"
564
+ },
565
+ "configuration_id": {
566
+ "name": "configuration_id",
567
+ "type": "uuid",
568
+ "primaryKey": false,
569
+ "notNull": true
570
+ },
571
+ "system_id": {
572
+ "name": "system_id",
573
+ "type": "text",
574
+ "primaryKey": false,
575
+ "notNull": true
576
+ },
577
+ "transitioned_at": {
578
+ "name": "transitioned_at",
579
+ "type": "timestamp",
580
+ "primaryKey": false,
581
+ "notNull": true,
582
+ "default": "now()"
583
+ }
584
+ },
585
+ "indexes": {
586
+ "health_check_unhealthy_transitions_lookup_idx": {
587
+ "name": "health_check_unhealthy_transitions_lookup_idx",
588
+ "columns": [
589
+ {
590
+ "expression": "configuration_id",
591
+ "isExpression": false,
592
+ "asc": true,
593
+ "nulls": "last"
594
+ },
595
+ {
596
+ "expression": "system_id",
597
+ "isExpression": false,
598
+ "asc": true,
599
+ "nulls": "last"
600
+ },
601
+ {
602
+ "expression": "transitioned_at",
603
+ "isExpression": false,
604
+ "asc": true,
605
+ "nulls": "last"
606
+ }
607
+ ],
608
+ "isUnique": false,
609
+ "concurrently": false,
610
+ "method": "btree",
611
+ "with": {}
612
+ }
613
+ },
614
+ "foreignKeys": {
615
+ "health_check_unhealthy_transitions_configuration_id_health_check_configurations_id_fk": {
616
+ "name": "health_check_unhealthy_transitions_configuration_id_health_check_configurations_id_fk",
617
+ "tableFrom": "health_check_unhealthy_transitions",
618
+ "tableTo": "health_check_configurations",
619
+ "columnsFrom": [
620
+ "configuration_id"
621
+ ],
622
+ "columnsTo": [
623
+ "id"
624
+ ],
625
+ "onDelete": "cascade",
626
+ "onUpdate": "no action"
627
+ }
628
+ },
629
+ "compositePrimaryKeys": {},
630
+ "uniqueConstraints": {},
631
+ "policies": {},
632
+ "checkConstraints": {},
633
+ "isRLSEnabled": false
634
+ },
635
+ "public.system_health_checks": {
636
+ "name": "system_health_checks",
637
+ "schema": "",
638
+ "columns": {
639
+ "system_id": {
640
+ "name": "system_id",
641
+ "type": "text",
642
+ "primaryKey": false,
643
+ "notNull": true
644
+ },
645
+ "configuration_id": {
646
+ "name": "configuration_id",
647
+ "type": "uuid",
648
+ "primaryKey": false,
649
+ "notNull": true
650
+ },
651
+ "enabled": {
652
+ "name": "enabled",
653
+ "type": "boolean",
654
+ "primaryKey": false,
655
+ "notNull": true,
656
+ "default": true
657
+ },
658
+ "state_thresholds": {
659
+ "name": "state_thresholds",
660
+ "type": "jsonb",
661
+ "primaryKey": false,
662
+ "notNull": false
663
+ },
664
+ "retention_config": {
665
+ "name": "retention_config",
666
+ "type": "jsonb",
667
+ "primaryKey": false,
668
+ "notNull": false
669
+ },
670
+ "satellite_ids": {
671
+ "name": "satellite_ids",
672
+ "type": "jsonb",
673
+ "primaryKey": false,
674
+ "notNull": false
675
+ },
676
+ "include_local": {
677
+ "name": "include_local",
678
+ "type": "boolean",
679
+ "primaryKey": false,
680
+ "notNull": true,
681
+ "default": true
682
+ },
683
+ "notification_policy": {
684
+ "name": "notification_policy",
685
+ "type": "jsonb",
686
+ "primaryKey": false,
687
+ "notNull": false
688
+ },
689
+ "created_at": {
690
+ "name": "created_at",
691
+ "type": "timestamp",
692
+ "primaryKey": false,
693
+ "notNull": true,
694
+ "default": "now()"
695
+ },
696
+ "updated_at": {
697
+ "name": "updated_at",
698
+ "type": "timestamp",
699
+ "primaryKey": false,
700
+ "notNull": true,
701
+ "default": "now()"
702
+ }
703
+ },
704
+ "indexes": {},
705
+ "foreignKeys": {
706
+ "system_health_checks_configuration_id_health_check_configurations_id_fk": {
707
+ "name": "system_health_checks_configuration_id_health_check_configurations_id_fk",
708
+ "tableFrom": "system_health_checks",
709
+ "tableTo": "health_check_configurations",
710
+ "columnsFrom": [
711
+ "configuration_id"
712
+ ],
713
+ "columnsTo": [
714
+ "id"
715
+ ],
716
+ "onDelete": "cascade",
717
+ "onUpdate": "no action"
718
+ }
719
+ },
720
+ "compositePrimaryKeys": {
721
+ "system_health_checks_system_id_configuration_id_pk": {
722
+ "name": "system_health_checks_system_id_configuration_id_pk",
723
+ "columns": [
724
+ "system_id",
725
+ "configuration_id"
726
+ ]
727
+ }
728
+ },
729
+ "uniqueConstraints": {},
730
+ "policies": {},
731
+ "checkConstraints": {},
732
+ "isRLSEnabled": false
733
+ }
734
+ },
735
+ "enums": {
736
+ "public.bucket_size": {
737
+ "name": "bucket_size",
738
+ "schema": "public",
739
+ "values": [
740
+ "hourly",
741
+ "daily"
742
+ ]
743
+ },
744
+ "public.health_check_status": {
745
+ "name": "health_check_status",
746
+ "schema": "public",
747
+ "values": [
748
+ "healthy",
749
+ "unhealthy",
750
+ "degraded"
751
+ ]
752
+ }
753
+ },
754
+ "schemas": {},
755
+ "sequences": {},
756
+ "roles": {},
757
+ "policies": {},
758
+ "views": {},
759
+ "_meta": {
760
+ "columns": {},
761
+ "schemas": {},
762
+ "tables": {}
763
+ }
764
+ }