stoplight 5.8.3 → 6.0.0.rc2

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 (323) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/LICENSE.md +1 -0
  4. data/README.md +132 -79
  5. data/UPGRADING.md +265 -6
  6. data/lib/stoplight/admin/actions/action.rb +4 -12
  7. data/lib/stoplight/admin/actions/lock.rb +12 -9
  8. data/lib/stoplight/admin/actions/lock_all.rb +27 -0
  9. data/lib/stoplight/admin/actions/remove.rb +12 -9
  10. data/lib/stoplight/admin/actions/stats.rb +15 -12
  11. data/lib/stoplight/admin/actions/unlock.rb +10 -9
  12. data/lib/stoplight/admin/assets/apple-touch-icon.png +0 -0
  13. data/lib/stoplight/admin/assets/favicon.ico +0 -0
  14. data/lib/stoplight/admin/assets/flowbite.min.css +2 -0
  15. data/lib/stoplight/admin/assets/flowbite.min.js +1 -0
  16. data/lib/stoplight/admin/assets/icon.svg +7 -0
  17. data/lib/stoplight/admin/assets/turbo.es2017-esm.min.js +34 -0
  18. data/lib/stoplight/admin/config_registry.rb +40 -0
  19. data/lib/stoplight/admin/dependencies.rb +29 -28
  20. data/lib/stoplight/admin/helpers.rb +50 -17
  21. data/lib/stoplight/admin/light_view.rb +184 -0
  22. data/lib/stoplight/admin/lights_stats.rb +7 -9
  23. data/lib/stoplight/admin/views/_card.erb +19 -21
  24. data/lib/stoplight/admin/views/index.erb +9 -3
  25. data/lib/stoplight/admin/views/layout.erb +45 -13
  26. data/lib/stoplight/admin.rb +110 -21
  27. data/lib/stoplight/data_store.rb +18 -8
  28. data/lib/stoplight/domain/config.rb +4 -1
  29. data/lib/stoplight/domain/error_tracking_policy.rb +9 -0
  30. data/lib/stoplight/domain/failure.rb +4 -0
  31. data/lib/stoplight/domain/id.rb +13 -0
  32. data/lib/stoplight/domain/light.rb +35 -77
  33. data/lib/stoplight/domain/lock_control.rb +55 -0
  34. data/lib/stoplight/domain/matcher_validator.rb +24 -0
  35. data/lib/stoplight/domain/state_snapshot.rb +2 -6
  36. data/lib/stoplight/domain/strategies/green_run_strategy.rb +33 -19
  37. data/lib/stoplight/domain/strategies/red_run_strategy.rb +8 -2
  38. data/lib/stoplight/domain/strategies/yellow_run_strategy.rb +56 -32
  39. data/lib/stoplight/domain/telemetry/bus.rb +90 -0
  40. data/lib/stoplight/domain/telemetry/consumer.rb +18 -0
  41. data/lib/stoplight/domain/telemetry/emitter.rb +45 -0
  42. data/lib/stoplight/domain/telemetry/envelope.rb +15 -0
  43. data/lib/stoplight/domain/telemetry/failure.rb +13 -0
  44. data/lib/stoplight/domain/telemetry/light_registered.rb +12 -0
  45. data/lib/stoplight/domain/telemetry/lock_changed.rb +19 -0
  46. data/lib/stoplight/domain/telemetry/metrics.rb +15 -0
  47. data/lib/stoplight/domain/telemetry/recovery_failed.rb +20 -0
  48. data/lib/stoplight/domain/telemetry/recovery_probe_completed.rb +15 -0
  49. data/lib/stoplight/domain/telemetry/recovery_started.rb +18 -0
  50. data/lib/stoplight/domain/telemetry/recovery_succeeded.rb +19 -0
  51. data/lib/stoplight/domain/telemetry/run_completed.rb +17 -0
  52. data/lib/stoplight/domain/telemetry/run_recorder.rb +58 -0
  53. data/lib/stoplight/domain/telemetry/settings.rb +21 -0
  54. data/lib/stoplight/domain/telemetry/state_transitioned.rb +11 -0
  55. data/lib/stoplight/domain/telemetry/subscription.rb +11 -0
  56. data/lib/stoplight/domain/telemetry/traffic_breached.rb +20 -0
  57. data/lib/stoplight/domain/tracker/recovery_probe.rb +61 -17
  58. data/lib/stoplight/domain/tracker/request.rb +17 -8
  59. data/lib/stoplight/domain/traffic_control/consecutive_errors.rb +13 -3
  60. data/lib/stoplight/domain/traffic_control/error_rate.rb +16 -12
  61. data/lib/stoplight/domain/traffic_recovery/consecutive_successes.rb +9 -3
  62. data/lib/stoplight/error.rb +10 -1
  63. data/lib/stoplight/infrastructure/config_serializer.rb +50 -0
  64. data/lib/stoplight/infrastructure/fail_safe/error_notifier.rb +25 -0
  65. data/lib/stoplight/infrastructure/fail_safe/storage/registry.rb +68 -0
  66. data/lib/stoplight/infrastructure/memory/storage/registry.rb +18 -0
  67. data/lib/stoplight/infrastructure/memory/storage/unbounded_metrics.rb +29 -32
  68. data/lib/stoplight/infrastructure/memory/storage/window_metrics/sliding_window.rb +74 -0
  69. data/lib/stoplight/infrastructure/memory/storage/window_metrics.rb +25 -24
  70. data/lib/stoplight/infrastructure/notifier/fail_safe.rb +3 -8
  71. data/lib/stoplight/infrastructure/notifier/generic.rb +3 -3
  72. data/lib/stoplight/infrastructure/redis/key.rb +25 -0
  73. data/lib/stoplight/infrastructure/redis/storage/now.lua +9 -0
  74. data/lib/stoplight/infrastructure/redis/storage/recovery_lock.rb +2 -4
  75. data/lib/stoplight/infrastructure/redis/storage/recovery_metrics.rb +1 -1
  76. data/lib/stoplight/infrastructure/redis/storage/registry.rb +73 -0
  77. data/lib/stoplight/infrastructure/redis/storage/scripting.rb +54 -3
  78. data/lib/stoplight/infrastructure/redis/storage/state/transition_to_green.lua +3 -1
  79. data/lib/stoplight/infrastructure/redis/storage/state/transition_to_red.lua +4 -2
  80. data/lib/stoplight/infrastructure/redis/storage/state/transition_to_yellow.lua +3 -1
  81. data/lib/stoplight/infrastructure/redis/storage/state.rb +8 -8
  82. data/lib/stoplight/infrastructure/redis/storage/unbounded_metrics/record_failure.lua +20 -21
  83. data/lib/stoplight/infrastructure/redis/storage/unbounded_metrics/record_success.lua +11 -19
  84. data/lib/stoplight/infrastructure/redis/storage/unbounded_metrics.rb +20 -16
  85. data/lib/stoplight/infrastructure/redis/storage/window_metrics/_evict.lua +44 -0
  86. data/lib/stoplight/infrastructure/redis/storage/window_metrics/metrics_snapshot.lua +14 -21
  87. data/lib/stoplight/infrastructure/redis/storage/window_metrics/record_failure.lua +38 -36
  88. data/lib/stoplight/infrastructure/redis/storage/window_metrics/record_success.lua +23 -30
  89. data/lib/stoplight/infrastructure/redis/storage/window_metrics.rb +45 -135
  90. data/lib/stoplight/infrastructure/system_clock.rb +4 -0
  91. data/lib/stoplight/telemetry.rb +19 -0
  92. data/lib/stoplight/types.rb +15 -2
  93. data/lib/stoplight/version.rb +1 -1
  94. data/lib/stoplight/wiring/config_compatibility_validator.rb +25 -2
  95. data/lib/stoplight/wiring/default.rb +1 -1
  96. data/lib/stoplight/wiring/default_config.rb +2 -1
  97. data/lib/stoplight/wiring/default_configuration.rb +3 -2
  98. data/lib/stoplight/wiring/external_caller.rb +27 -0
  99. data/lib/stoplight/wiring/fail_safe_config.rb +11 -0
  100. data/lib/stoplight/wiring/global_state.rb +93 -0
  101. data/lib/stoplight/wiring/{light_factory → light_configuration_dsl}/traffic_control_dsl.rb +3 -5
  102. data/lib/stoplight/wiring/{light_factory → light_configuration_dsl}/traffic_recovery_dsl.rb +2 -2
  103. data/lib/stoplight/wiring/light_configuration_dsl.rb +97 -0
  104. data/lib/stoplight/wiring/light_factory.rb +154 -97
  105. data/lib/stoplight/wiring/notifier_bridge.rb +33 -0
  106. data/lib/stoplight/wiring/redis/backend.rb +1 -1
  107. data/lib/stoplight/wiring/system/storage.rb +69 -0
  108. data/lib/stoplight/wiring/system.rb +125 -56
  109. data/lib/stoplight/wiring/{configuration_dsl.rb → system_configuration_dsl.rb} +13 -43
  110. data/lib/stoplight.rb +50 -194
  111. data/sig/sinatra/base.rbs +6 -0
  112. data/sig/stdlib/securerandom.rbs +4 -0
  113. data/sig/stoplight/admin/actions/action.rbs +10 -0
  114. data/sig/stoplight/admin/actions/lock.rbs +17 -0
  115. data/sig/stoplight/admin/actions/lock_all.rbs +17 -0
  116. data/sig/stoplight/admin/actions/remove.rbs +22 -0
  117. data/sig/stoplight/admin/actions/stats.rbs +28 -0
  118. data/sig/stoplight/admin/actions/unlock.rbs +17 -0
  119. data/sig/stoplight/admin/config_registry.rbs +20 -0
  120. data/sig/stoplight/admin/dependencies.rbs +16 -0
  121. data/sig/stoplight/admin/helpers.rbs +17 -0
  122. data/sig/stoplight/admin/light_view.rbs +39 -0
  123. data/sig/stoplight/admin/lights_stats.rbs +30 -0
  124. data/sig/stoplight/admin.rbs +14 -0
  125. data/sig/stoplight/color.rbs +3 -3
  126. data/sig/{_private/stoplight/data_store.rbs → stoplight/data_store/base.rbs} +1 -0
  127. data/sig/stoplight/data_store/memory.rbs +9 -0
  128. data/sig/stoplight/data_store/redis.rbs +17 -0
  129. data/sig/{_private/stoplight → stoplight}/domain/config.rbs +28 -24
  130. data/sig/{_private/stoplight → stoplight}/domain/error_tracking_policy.rbs +4 -0
  131. data/sig/{_private/stoplight → stoplight}/domain/failure.rbs +2 -0
  132. data/sig/stoplight/domain/id.rbs +7 -0
  133. data/sig/stoplight/domain/light.rbs +39 -0
  134. data/sig/{_private/stoplight → stoplight}/domain/light_info.rbs +1 -5
  135. data/sig/stoplight/domain/lock_control.rbs +16 -0
  136. data/sig/stoplight/domain/matcher_validator.rbs +11 -0
  137. data/sig/{_private/stoplight → stoplight}/domain/ports/clock.rbs +6 -0
  138. data/sig/stoplight/domain/ports/data_store.rbs +9 -0
  139. data/sig/stoplight/domain/ports/error_notifier.rbs +12 -0
  140. data/sig/stoplight/domain/ports/exception_matcher.rbs +10 -0
  141. data/sig/{_private/stoplight → stoplight}/domain/ports/metrics_store.rbs +2 -2
  142. data/sig/stoplight/domain/ports/registry.rbs +13 -0
  143. data/sig/{_private/stoplight → stoplight}/domain/ports/run_strategy.rbs +2 -1
  144. data/sig/stoplight/domain/ports/state_transition_notifier.rbs +18 -0
  145. data/sig/stoplight/domain/ports/telemetry.rbs +28 -0
  146. data/sig/stoplight/domain/ports/telemetry_publisher.rbs +14 -0
  147. data/sig/{_private/stoplight → stoplight}/domain/ports/traffic_control.rbs +7 -0
  148. data/sig/{_private/stoplight → stoplight}/domain/ports/traffic_recovery.rbs +2 -3
  149. data/sig/stoplight/domain/strategies/green_run_strategy.rbs +22 -0
  150. data/sig/stoplight/domain/strategies/red_run_strategy.rbs +19 -0
  151. data/sig/{_private/stoplight → stoplight}/domain/strategies/yellow_run_strategy.rbs +23 -12
  152. data/sig/stoplight/domain/telemetry/bus.rbs +49 -0
  153. data/sig/stoplight/domain/telemetry/consumer.rbs +13 -0
  154. data/sig/stoplight/domain/telemetry/emitter.rbs +51 -0
  155. data/sig/stoplight/domain/telemetry/envelope.rbs +30 -0
  156. data/sig/stoplight/domain/telemetry/failure.rbs +23 -0
  157. data/sig/stoplight/domain/telemetry/light_registered.rbs +23 -0
  158. data/sig/stoplight/domain/telemetry/lock_changed.rbs +31 -0
  159. data/sig/stoplight/domain/telemetry/metrics.rbs +27 -0
  160. data/sig/stoplight/domain/telemetry/recovery_failed.rbs +36 -0
  161. data/sig/stoplight/domain/telemetry/recovery_probe_completed.rbs +29 -0
  162. data/sig/stoplight/domain/telemetry/recovery_started.rbs +26 -0
  163. data/sig/stoplight/domain/telemetry/recovery_succeeded.rbs +31 -0
  164. data/sig/stoplight/domain/telemetry/run_completed.rbs +38 -0
  165. data/sig/stoplight/domain/telemetry/run_recorder.rbs +27 -0
  166. data/sig/stoplight/domain/telemetry/settings.rbs +47 -0
  167. data/sig/stoplight/domain/telemetry/state_transitioned.rbs +11 -0
  168. data/sig/stoplight/domain/telemetry/subscription.rbs +9 -0
  169. data/sig/stoplight/domain/telemetry/traffic_breached.rbs +36 -0
  170. data/sig/stoplight/domain/telemetry/types.rbs +32 -0
  171. data/sig/{_private/stoplight → stoplight}/domain/tracker/recovery_probe.rbs +10 -6
  172. data/sig/{_private/stoplight → stoplight}/domain/tracker/request.rbs +3 -3
  173. data/sig/{_private/stoplight → stoplight}/domain/traffic_control/consecutive_errors.rbs +2 -0
  174. data/sig/{_private/stoplight → stoplight}/domain/traffic_control/error_rate.rbs +3 -2
  175. data/sig/{_private/stoplight → stoplight}/domain/traffic_recovery/consecutive_successes.rbs +2 -0
  176. data/sig/stoplight/domain/types.rbs +25 -0
  177. data/sig/stoplight/error.rbs +8 -0
  178. data/sig/stoplight/generators/rails_generators_base.rbs +11 -0
  179. data/sig/stoplight/infrastructure/config_serializer.rbs +12 -0
  180. data/sig/stoplight/infrastructure/fail_safe/error_notifier.rbs +13 -0
  181. data/sig/{_private/stoplight → stoplight}/infrastructure/fail_safe/storage/metrics.rbs +2 -2
  182. data/sig/{_private/stoplight → stoplight}/infrastructure/fail_safe/storage/recovery_lock.rbs +2 -2
  183. data/sig/stoplight/infrastructure/fail_safe/storage/registry.rbs +23 -0
  184. data/sig/{_private/stoplight → stoplight}/infrastructure/fail_safe/storage/state.rbs +4 -4
  185. data/sig/stoplight/infrastructure/memory/storage/registry.rbs +13 -0
  186. data/sig/{_private/stoplight → stoplight}/infrastructure/memory/storage/state.rbs +3 -3
  187. data/sig/{_private/stoplight → stoplight}/infrastructure/memory/storage/unbounded_metrics.rbs +7 -7
  188. data/sig/stoplight/infrastructure/memory/storage/window_metrics/sliding_window.rbs +27 -0
  189. data/sig/{_private/stoplight → stoplight}/infrastructure/memory/storage/window_metrics.rbs +7 -7
  190. data/sig/stoplight/infrastructure/notifier/fail_safe.rbs +15 -0
  191. data/sig/{_private/stoplight → stoplight}/infrastructure/notifier/generic.rbs +1 -1
  192. data/sig/{_private/stoplight → stoplight}/infrastructure/notifier/io.rbs +1 -1
  193. data/sig/{_private/stoplight → stoplight}/infrastructure/notifier/logger.rbs +1 -1
  194. data/sig/stoplight/infrastructure/redis/key.rbs +10 -0
  195. data/sig/{_private/stoplight → stoplight}/infrastructure/redis/storage/recovery_lock.rbs +2 -2
  196. data/sig/stoplight/infrastructure/redis/storage/registry.rbs +27 -0
  197. data/sig/stoplight/infrastructure/redis/storage/scripting.rbs +34 -0
  198. data/sig/{_private/stoplight → stoplight}/infrastructure/redis/storage/state.rbs +4 -4
  199. data/sig/{_private/stoplight → stoplight}/infrastructure/redis/storage/unbounded_metrics.rbs +8 -1
  200. data/sig/stoplight/infrastructure/redis/storage/window_metrics.rbs +35 -0
  201. data/sig/stoplight/infrastructure/types.rbs +6 -0
  202. data/sig/stoplight/notifier.rbs +1 -1
  203. data/sig/stoplight/ports/system.rbs +16 -10
  204. data/sig/stoplight/state.rbs +3 -3
  205. data/sig/stoplight/telemetry.rbs +17 -0
  206. data/sig/stoplight/types.rbs +9 -0
  207. data/sig/{_private/stoplight → stoplight}/wiring/config_compatibility_validator.rbs +2 -0
  208. data/sig/stoplight/wiring/default.rbs +26 -0
  209. data/sig/stoplight/wiring/default_configuration.rbs +39 -0
  210. data/sig/stoplight/wiring/external_caller.rbs +13 -0
  211. data/sig/stoplight/wiring/fail_safe_config.rbs +7 -0
  212. data/sig/stoplight/wiring/global_state.rbs +36 -0
  213. data/sig/{_private/stoplight/wiring/light_factory → stoplight/wiring/light_configuration_dsl}/traffic_control_dsl.rbs +1 -1
  214. data/sig/{_private/stoplight/wiring/light_factory → stoplight/wiring/light_configuration_dsl}/traffic_recovery_dsl.rbs +1 -1
  215. data/sig/stoplight/wiring/light_configuration_dsl.rbs +38 -0
  216. data/sig/stoplight/wiring/light_factory.rbs +78 -0
  217. data/sig/stoplight/wiring/notifier_bridge.rbs +15 -0
  218. data/sig/stoplight/wiring/notifier_factory.rbs +10 -0
  219. data/sig/{_private/stoplight → stoplight}/wiring/redis/backend.rbs +6 -6
  220. data/sig/stoplight/wiring/system/storage.rbs +35 -0
  221. data/sig/stoplight/wiring/system.rbs +30 -0
  222. data/sig/stoplight/wiring/system_configuration_dsl.rbs +39 -0
  223. data/sig/stoplight/wiring/types.rbs +6 -0
  224. data/sig/stoplight.rbs +37 -54
  225. metadata +190 -143
  226. data/lib/stoplight/admin/actions/lock_all_green.rb +0 -18
  227. data/lib/stoplight/admin/actions/lock_green.rb +0 -23
  228. data/lib/stoplight/admin/actions/lock_red.rb +0 -23
  229. data/lib/stoplight/admin/lights_repository/light.rb +0 -171
  230. data/lib/stoplight/admin/lights_repository.rb +0 -87
  231. data/lib/stoplight/domain/light/configuration_builder_interface.rb +0 -236
  232. data/lib/stoplight/infrastructure/fail_safe/data_store.rb +0 -152
  233. data/lib/stoplight/infrastructure/memory/data_store/metrics.rb +0 -27
  234. data/lib/stoplight/infrastructure/memory/data_store/recovery_lock_store.rb +0 -52
  235. data/lib/stoplight/infrastructure/memory/data_store/recovery_lock_token.rb +0 -17
  236. data/lib/stoplight/infrastructure/memory/data_store/sliding_window.rb +0 -74
  237. data/lib/stoplight/infrastructure/memory/data_store/state.rb +0 -21
  238. data/lib/stoplight/infrastructure/memory/data_store.rb +0 -342
  239. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/get_metrics.lua +0 -26
  240. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/record_failure.lua +0 -36
  241. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/record_recovery_probe_failure.lua +0 -27
  242. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/record_recovery_probe_success.lua +0 -23
  243. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/record_success.lua +0 -35
  244. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/release_lock.lua +0 -6
  245. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/transition_to_green.lua +0 -10
  246. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/transition_to_red.lua +0 -10
  247. data/lib/stoplight/infrastructure/redis/data_store/lua_scripts/transition_to_yellow.lua +0 -9
  248. data/lib/stoplight/infrastructure/redis/data_store/recovery_lock_store.rb +0 -60
  249. data/lib/stoplight/infrastructure/redis/data_store/recovery_lock_token.rb +0 -28
  250. data/lib/stoplight/infrastructure/redis/data_store/scripting.rb +0 -73
  251. data/lib/stoplight/infrastructure/redis/data_store.rb +0 -516
  252. data/lib/stoplight/infrastructure/redis/storage/key_space.rb +0 -51
  253. data/lib/stoplight/infrastructure/storage/compatibility_metrics.rb +0 -41
  254. data/lib/stoplight/infrastructure/storage/compatibility_recovery_lock.rb +0 -33
  255. data/lib/stoplight/infrastructure/storage/compatibility_recovery_metrics.rb +0 -47
  256. data/lib/stoplight/infrastructure/storage/compatibility_state.rb +0 -44
  257. data/lib/stoplight/wiring/light_builder.rb +0 -198
  258. data/lib/stoplight/wiring/notifier_factory.rb +0 -26
  259. data/lib/stoplight/wiring/system/light_builder.rb +0 -47
  260. data/lib/stoplight/wiring/system/light_factory.rb +0 -64
  261. data/sig/_private/stoplight/domain/light.rbs +0 -25
  262. data/sig/_private/stoplight/domain/ports/data_store.rbs +0 -76
  263. data/sig/_private/stoplight/domain/ports/light_factory.rbs +0 -80
  264. data/sig/_private/stoplight/domain/strategies/green_run_strategy.rbs +0 -17
  265. data/sig/_private/stoplight/domain/strategies/red_run_strategy.rbs +0 -17
  266. data/sig/_private/stoplight/domain/tracker/base.rbs +0 -8
  267. data/sig/_private/stoplight/infrastructure/fail_safe/data_store.rbs +0 -26
  268. data/sig/_private/stoplight/infrastructure/memory/data_store/metrics.rbs +0 -25
  269. data/sig/_private/stoplight/infrastructure/memory/data_store/recovery_lock_store.rbs +0 -19
  270. data/sig/_private/stoplight/infrastructure/memory/data_store/recovery_lock_token.rbs +0 -17
  271. data/sig/_private/stoplight/infrastructure/memory/data_store/sliding_window.rbs +0 -27
  272. data/sig/_private/stoplight/infrastructure/memory/data_store/state.rbs +0 -17
  273. data/sig/_private/stoplight/infrastructure/memory/data_store.rbs +0 -30
  274. data/sig/_private/stoplight/infrastructure/notifier/fail_safe.rbs +0 -17
  275. data/sig/_private/stoplight/infrastructure/redis/data_store/recovery_lock_store.rbs +0 -24
  276. data/sig/_private/stoplight/infrastructure/redis/data_store/recovery_lock_token.rbs +0 -21
  277. data/sig/_private/stoplight/infrastructure/redis/data_store/scripting.rbs +0 -34
  278. data/sig/_private/stoplight/infrastructure/redis/data_store.rbs +0 -67
  279. data/sig/_private/stoplight/infrastructure/redis/storage/key_space.rbs +0 -19
  280. data/sig/_private/stoplight/infrastructure/redis/storage/scripting.rbs +0 -13
  281. data/sig/_private/stoplight/infrastructure/redis/storage/window_metrics.rbs +0 -34
  282. data/sig/_private/stoplight/infrastructure/storage/compatibility_metrics.rbs +0 -17
  283. data/sig/_private/stoplight/infrastructure/storage/compatibility_recovery_lock.rbs +0 -13
  284. data/sig/_private/stoplight/infrastructure/storage/compatibility_recovery_metrics.rbs +0 -14
  285. data/sig/_private/stoplight/infrastructure/storage/compatibility_state.rbs +0 -14
  286. data/sig/_private/stoplight/system/light_builder.rbs +0 -23
  287. data/sig/_private/stoplight/system/light_factory.rbs +0 -17
  288. data/sig/_private/stoplight/types.rbs +0 -6
  289. data/sig/_private/stoplight/wiring/configuration_dsl.rbs +0 -43
  290. data/sig/_private/stoplight/wiring/default.rbs +0 -26
  291. data/sig/_private/stoplight/wiring/default_configuration.rbs +0 -29
  292. data/sig/_private/stoplight/wiring/light_builder.rbs +0 -48
  293. data/sig/_private/stoplight/wiring/light_factory.rbs +0 -16
  294. data/sig/_private/stoplight/wiring/notifier_factory.rbs +0 -10
  295. data/sig/_private/stoplight/wiring/system.rbs +0 -15
  296. data/sig/_private/stoplight.rbs +0 -48
  297. data/sig/stoplight/data_store.rbs +0 -19
  298. data/sig/stoplight/ports/configuration.rbs +0 -19
  299. data/sig/stoplight/ports/exception_matcher.rbs +0 -8
  300. data/sig/stoplight/ports/light.rbs +0 -12
  301. data/sig/stoplight/ports/light_info.rbs +0 -5
  302. data/sig/stoplight/ports/state_transition_notifier.rbs +0 -15
  303. /data/sig/{_private/stoplight → stoplight}/common/deprecations.rbs +0 -0
  304. /data/sig/{_private/stoplight → stoplight}/domain/compatibility_result.rbs +0 -0
  305. /data/sig/{_private/stoplight → stoplight}/domain/metrics_snapshot.rbs +0 -0
  306. /data/sig/{_private/stoplight → stoplight}/domain/ports/recovery_lock_store.rbs +0 -0
  307. /data/sig/{_private/stoplight → stoplight}/domain/ports/recovery_lock_token.rbs +0 -0
  308. /data/sig/{_private/stoplight → stoplight}/domain/ports/state_store.rbs +0 -0
  309. /data/sig/{_private/stoplight → stoplight}/domain/state_snapshot.rbs +0 -0
  310. /data/sig/{_private/stoplight → stoplight}/domain/storage/recovery_lock_token.rbs +0 -0
  311. /data/sig/{_private/stoplight → stoplight}/domain/traffic_recovery.rbs +0 -0
  312. /data/sig/{_private → stoplight}/generators/stoplight/install/install_generator.rbs +0 -0
  313. /data/sig/{_private/stoplight → stoplight}/infrastructure/fail_safe/storage/recovery_lock_token.rbs +0 -0
  314. /data/sig/{_private/stoplight → stoplight}/infrastructure/memory/storage/recovery_lock.rbs +0 -0
  315. /data/sig/{_private/stoplight → stoplight}/infrastructure/memory/storage/recovery_metrics.rbs +0 -0
  316. /data/sig/{_private/stoplight → stoplight}/infrastructure/redis/storage/metrics.rbs +0 -0
  317. /data/sig/{_private/stoplight → stoplight}/infrastructure/redis/storage/recovery_metrics.rbs +0 -0
  318. /data/sig/{_private/stoplight → stoplight}/infrastructure/system_clock.rbs +0 -0
  319. /data/sig/{_private/stoplight → stoplight}/wiring/data_store_backend.rbs +0 -0
  320. /data/sig/{_private/stoplight → stoplight}/wiring/default_config.rbs +0 -0
  321. /data/sig/{_private/stoplight → stoplight}/wiring/memory/backend.rbs +0 -0
  322. /data/sig/{_private/stoplight → stoplight}/wiring/storage_set.rbs +0 -0
  323. /data/sig/{_private/stoplight → stoplight}/wiring/storage_set_builder.rbs +0 -0
@@ -1,43 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class ConfigurationDsl
4
- @tracked_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher]
5
- @skipped_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher]
6
- @traffic_control: optional[traffic_control]
7
- @traffic_recovery: optional[traffic_recovery]
8
-
9
- def initialize: (
10
- ?name: optional[String],
11
- ?cool_off_time: optional[duration],
12
- ?threshold: optional[percentage | Integer],
13
- ?recovery_threshold: optional[Integer],
14
- ?window_size: optional[duration?],
15
- ?tracked_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher],
16
- ?skipped_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher],
17
- ?data_store: optional[data_store],
18
- ?error_notifier: optional[error_notifier],
19
- ?notifiers: optional[Array[state_transition_notifier]],
20
- ?traffic_control: optional[traffic_control],
21
- ?traffic_recovery: optional[traffic_recovery],
22
- ) -> void
23
-
24
- def configure!: (Domain::Config default_config) -> Domain::Config
25
-
26
- private
27
-
28
- attr_reader name: optional[String]
29
- attr_reader cool_off_time: optional[duration]
30
- attr_reader threshold: optional[percentage | Integer]
31
- attr_reader recovery_threshold: optional[Integer]
32
- attr_reader window_size: optional[duration?]
33
- attr_reader data_store: optional[data_store]
34
- attr_reader error_notifier: optional[error_notifier]
35
- attr_reader notifiers: optional[Array[state_transition_notifier]]
36
-
37
- def tracked_errors: -> optional[Array[_ExceptionMatcher]]
38
- def skipped_errors: -> optional[Array[_ExceptionMatcher]]
39
- def traffic_control: -> optional[Domain::_TrafficControl]
40
- def traffic_recovery: -> optional[Domain::_TrafficRecovery]
41
- end
42
- end
43
- end
@@ -1,26 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- module Default
4
- COOL_OFF_TIME: duration
5
-
6
- DATA_STORE: data_store
7
-
8
- ERROR_NOTIFIER: error_notifier
9
-
10
- FORMATTER: notification_formatter
11
-
12
- NOTIFIERS: Array[state_transition_notifier]
13
-
14
- THRESHOLD: percentage | Integer
15
- RECOVERY_THRESHOLD: Integer
16
-
17
- WINDOW_SIZE: duration?
18
-
19
- TRACKED_ERRORS: Array[_ExceptionMatcher]
20
- SKIPPED_ERRORS: Array[_ExceptionMatcher]
21
-
22
- TRAFFIC_CONTROL: Domain::_TrafficControl
23
- TRAFFIC_RECOVERY: Domain::_TrafficRecovery
24
- end
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class DefaultConfiguration
4
- include _Configuration
5
-
6
- @config: Domain::Config
7
- @cool_off_time: optional[duration]
8
- @threshold: optional[percentage | Integer]
9
- @recovery_threshold: optional[Integer]
10
- @window_size: optional[duration?]
11
- @tracked_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher]
12
- @skipped_errors: optional[Array[_ExceptionMatcher] | _ExceptionMatcher]
13
- @traffic_control: optional[traffic_control]
14
- @traffic_recovery: optional[traffic_recovery]
15
- @error_notifier: optional[error_notifier]
16
- @data_store: optional[data_store]
17
- @notifiers: optional[Array[state_transition_notifier]]
18
-
19
- def to_config!: -> Domain::Config
20
-
21
- private
22
-
23
- def tracked_errors: -> optional[Array[_ExceptionMatcher]]
24
- def skipped_errors: -> optional[Array[_ExceptionMatcher]]
25
- def traffic_control: -> optional[Domain::_TrafficControl]
26
- def traffic_recovery: -> optional[Domain::_TrafficRecovery]
27
- end
28
- end
29
- end
@@ -1,48 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class LightBuilder
4
- FAILOVER_DATA_STORE_CONFIG: Stoplight::DataStore::Memory
5
- MEMORY_REGISTRY: Concurrent::Map[Integer, Infrastructure::Memory::DataStore]
6
-
7
- attr_reader data_store_config: data_store
8
- attr_reader error_notifier: error_notifier
9
- attr_reader factory: Domain::_LightFactory
10
- attr_reader clock: Domain::_Clock
11
-
12
- attr_reader traffic_recovery: Domain::_TrafficRecovery
13
- attr_reader traffic_control: Domain::_TrafficControl
14
- attr_reader config: Domain::Config
15
-
16
- @notifiers: Array[state_transition_notifier]
17
- @name: String
18
- @cool_off_time: duration
19
- @error_tracking_policy: Domain::ErrorTrackingPolicy
20
-
21
- def initialize: (config: Domain::Config, factory: Domain::_LightFactory) -> void
22
-
23
- def build: -> Domain::Light
24
-
25
- def state_store: -> Domain::_StateStore
26
- def notifiers: -> Array[state_transition_notifier]
27
- def redis_recovery_lock_store: -> Infrastructure::Redis::DataStore::RecoveryLockStore
28
- def scripting: -> Infrastructure::Redis::DataStore::Scripting
29
-
30
- def memory_recovery_lock_store: -> Infrastructure::Memory::DataStore::RecoveryLockStore
31
- def failover_data_store: -> Domain::_DataStore
32
- def data_store: -> Domain::_DataStore
33
-
34
- def metrics_store: -> Domain::_MetricsStore
35
- def recovery_lock_store: -> Domain::_RecoveryLockStore
36
- def request_tracker: -> Domain::Tracker::Request
37
- def recovery_probe_tracker: -> Domain::Tracker::RecoveryProbe
38
- def recovery_metrics_store: -> Domain::_MetricsStore
39
-
40
- def green_run_strategy: -> Domain::Strategies::GreenRunStrategy
41
- def yellow_run_strategy: -> Domain::Strategies::YellowRunStrategy
42
- def red_run_strategy: -> Domain::Strategies::RedRunStrategy
43
- def create_data_store: (data_store) -> Domain::_DataStore
44
- def memory_registry: -> Concurrent::Map[Integer, Infrastructure::Memory::DataStore]
45
- def redis: -> redis
46
- end
47
- end
48
- end
@@ -1,16 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class LightFactory
4
- include Domain::_LightFactory
5
- attr_reader config: Domain::Config
6
-
7
- def initialize: (config: Domain::Config) -> void
8
-
9
- def eql: (untyped other) -> bool
10
- def hash: -> Integer
11
-
12
- def light_builder: (config: Domain::Config) -> LightBuilder
13
- def light_factory: -> Domain::_LightFactory
14
- end
15
- end
16
- end
@@ -1,10 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class NotifierFactory
4
- def self.create: (
5
- notifier: _StateTransitionNotifier,
6
- error_notifier: error_notifier,
7
- ) -> _StateTransitionNotifier
8
- end
9
- end
10
- end
@@ -1,15 +0,0 @@
1
- module Stoplight
2
- module Wiring
3
- class System
4
- include _System
5
-
6
- @name: String
7
-
8
- attr_reader light_factory: Domain::_LightFactory
9
- attr_reader lights: Concurrent::Map[String, [_Light, Domain::Config]]
10
- attr_reader system_config: Domain::Config
11
-
12
- def initialize: (config: Domain::Config) -> void
13
- end
14
- end
15
- end
@@ -1,48 +0,0 @@
1
- module Stoplight
2
- T: singleton(Types)
3
- CONFIG_MUTEX: Mutex
4
-
5
- self.@configured: bool?
6
- self.@default_config: Domain::Config?
7
- self.@systems: Concurrent::Map[String, _System]
8
- self.@default_light_factory: Wiring::LightFactory?
9
-
10
- def self.warn_if_reconfiguring: (bool) { () -> void } -> void
11
- def self.configured?: -> bool
12
- def self.__stoplight__reset!: -> void
13
-
14
- def self.system_light: (
15
- String name,
16
- ?cool_off_time: optional[duration],
17
- ?threshold: optional[percentage | Integer],
18
- ?recovery_threshold: optional[Integer],
19
- ?window_size: optional[duration?],
20
- ?tracked_errors: optional[Array[_ExceptionMatcher]],
21
- ?skipped_errors: optional[Array[_ExceptionMatcher]],
22
- ?data_store: optional[data_store],
23
- ?error_notifier: optional[error_notifier],
24
- ?notifiers: optional[Array[state_transition_notifier]],
25
- ?traffic_control: optional[traffic_control],
26
- ?traffic_recovery: optional[traffic_recovery],
27
- ) -> Domain::Light
28
-
29
- def self.systems: -> Concurrent::Map[String, _System]
30
- def self.default_config: -> Domain::Config
31
- def self.ensure_configured: -> void
32
- def self.__stoplight__system: (
33
- _ToS name,
34
- ?cool_off_time: optional[duration],
35
- ?threshold: optional[percentage | Integer],
36
- ?recovery_threshold: optional[Integer],
37
- ?window_size: optional[duration?],
38
- ?tracked_errors: optional[Array[_ExceptionMatcher]],
39
- ?skipped_errors: optional[Array[_ExceptionMatcher]],
40
- ?data_store: optional[data_store],
41
- ?error_notifier: optional[error_notifier],
42
- ?notifiers: optional[Array[state_transition_notifier]],
43
- ?traffic_control: optional[traffic_control],
44
- ?traffic_recovery: optional[traffic_recovery],
45
- ) -> _System
46
- def self.__stoplight__default_configuration: -> Domain::Config
47
- def self.__stoplight__default_light_factory: -> Wiring::LightFactory
48
- end
@@ -1,19 +0,0 @@
1
- module Stoplight
2
- module DataStore
3
- # Configuration for Redis-backed Stoplight storage.
4
- #
5
- # @note This is a configuration object, not the storage implementation itself.
6
- class Redis < Base
7
- attr_reader redis: redis
8
- attr_reader warn_on_clock_skew: bool
9
-
10
- def initialize: (redis, ?warn_on_clock_skew: bool) -> void
11
- end
12
-
13
- # Configuration for Memory-backed Stoplight storage.
14
- #
15
- # @note This is a configuration object, not the storage implementation itself.
16
- class Memory < Base
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Stoplight
4
- interface _Configuration
5
- def notifiers: -> Array[state_transition_notifier]
6
-
7
- def cool_off_time=: (duration) -> void
8
- def threshold=: (percentage | Integer) -> void
9
- def recovery_threshold=: (Integer) -> void
10
- def window_size=: (duration?) -> void
11
- def tracked_errors=: (Array[_ExceptionMatcher] | _ExceptionMatcher) -> void
12
- def skipped_errors=: (Array[_ExceptionMatcher] | _ExceptionMatcher) -> void
13
- def traffic_control=: (traffic_control) -> void
14
- def traffic_recovery=: (traffic_recovery) -> void
15
- def error_notifier=: (error_notifier) -> void
16
- def data_store=: (data_store) -> void
17
- def notifiers=:(Array[state_transition_notifier]) -> void
18
- end
19
- end
@@ -1,8 +0,0 @@
1
- module Stoplight
2
- interface _ExceptionMatcher
3
- def ===: (untyped) -> bool
4
-
5
- # Object methods
6
- def is_a?: (untyped) -> bool
7
- end
8
- end
@@ -1,12 +0,0 @@
1
- module Stoplight
2
- interface _Light
3
- def name: -> String
4
-
5
- def state: -> state
6
- def color: -> color
7
- def run: [T] (?(^(StandardError?) -> T)?) { () -> T } -> T
8
- def lock: (color) -> _Light
9
- def unlock: -> _Light
10
- def ==: (untyped) -> bool
11
- end
12
- end
@@ -1,5 +0,0 @@
1
- module Stoplight
2
- interface _LightInfo
3
- def name: -> String
4
- end
5
- end
@@ -1,15 +0,0 @@
1
- module Stoplight
2
- interface _StateTransitionNotifier
3
- # Sends a notification when a Stoplight changes state.
4
- #
5
- # @param config The Stoplight instance triggering the notification.
6
- # @param from_color The previous state color of the Stoplight.
7
- # @param to_color The new state color of the Stoplight.
8
- # @param error The error (if any) that caused the state change.
9
- def notify: (_LightInfo, color from_color, color to_color, ?StandardError? error) -> void
10
-
11
- # Object methods needed for comparison/inspection
12
- def ==: (untyped) -> bool
13
- def class: -> Class
14
- end
15
- end