karafka-web 0.11.5 → 0.11.6

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 (517) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile +9 -10
  4. data/Gemfile.lint +14 -0
  5. data/Gemfile.lint.lock +123 -0
  6. data/Gemfile.lock +15 -16
  7. data/README.md +15 -15
  8. data/Rakefile +2 -2
  9. data/bin/balance_specs +120 -0
  10. data/bin/check_coverage +31 -0
  11. data/bin/collect_timings +83 -0
  12. data/bin/rspecs +10 -0
  13. data/bin/rspecs_parallel +111 -0
  14. data/docker-compose.yml +1 -1
  15. data/karafka-web.gemspec +35 -35
  16. data/lib/karafka/web/cli/base.rb +2 -2
  17. data/lib/karafka/web/cli/help.rb +2 -2
  18. data/lib/karafka/web/cli/install.rb +3 -3
  19. data/lib/karafka/web/cli/migrate.rb +3 -3
  20. data/lib/karafka/web/cli/reset.rb +3 -3
  21. data/lib/karafka/web/cli/uninstall.rb +1 -1
  22. data/lib/karafka/web/config.rb +40 -32
  23. data/lib/karafka/web/contracts/base.rb +2 -2
  24. data/lib/karafka/web/deserializer.rb +5 -5
  25. data/lib/karafka/web/installer.rb +14 -14
  26. data/lib/karafka/web/management/actions/base.rb +5 -5
  27. data/lib/karafka/web/management/actions/clean_boot_file.rb +3 -3
  28. data/lib/karafka/web/management/actions/create_initial_states.rb +8 -8
  29. data/lib/karafka/web/management/actions/enable.rb +3 -3
  30. data/lib/karafka/web/management/actions/extend_boot_file.rb +3 -3
  31. data/lib/karafka/web/management/migrations/base.rb +3 -3
  32. data/lib/karafka/web/management/migrations/consumers_metrics/0_set_initial.rb +1 -1
  33. data/lib/karafka/web/management/migrations/consumers_metrics/1699543515_fill_missing_received_and_sent_bytes.rb +1 -1
  34. data/lib/karafka/web/management/migrations/consumers_metrics/1700234522_introduce_waiting.rb +1 -1
  35. data/lib/karafka/web/management/migrations/consumers_metrics/1700234522_remove_processing.rb +1 -1
  36. data/lib/karafka/web/management/migrations/consumers_metrics/1704722380_split_listeners_into_active_and_paused.rb +7 -7
  37. data/lib/karafka/web/management/migrations/consumers_metrics/1706607960_introduce_lag_total.rb +1 -1
  38. data/lib/karafka/web/management/migrations/consumers_metrics/1706611396_rename_lag_total_to_lag_hybrid.rb +1 -1
  39. data/lib/karafka/web/management/migrations/consumers_metrics/1716218393_populate_jobs_metrics.rb +1 -1
  40. data/lib/karafka/web/management/migrations/consumers_reports/1761645571_rename_process_name_to_id.rb +1 -1
  41. data/lib/karafka/web/management/migrations/consumers_reports/1765657887_add_group_instance_id_to_subscription_groups.rb +42 -0
  42. data/lib/karafka/web/management/migrations/consumers_states/0_set_initial.rb +2 -2
  43. data/lib/karafka/web/management/migrations/consumers_states/1699543515_fill_missing_received_and_sent_bytes.rb +1 -1
  44. data/lib/karafka/web/management/migrations/consumers_states/1700234522_introduce_waiting.rb +1 -1
  45. data/lib/karafka/web/management/migrations/consumers_states/1700234522_remove_processing.rb +1 -1
  46. data/lib/karafka/web/management/migrations/consumers_states/1704722380_split_listeners_into_active_and_paused.rb +7 -7
  47. data/lib/karafka/web/management/migrations/consumers_states/1706607960_introduce_lag_total.rb +1 -1
  48. data/lib/karafka/web/management/migrations/consumers_states/1706611396_rename_lag_total_to_lag_hybrid.rb +1 -1
  49. data/lib/karafka/web/management/migrations/consumers_states/1716218393_add_jobs_counter.rb +1 -1
  50. data/lib/karafka/web/management/migrator.rb +2 -2
  51. data/lib/karafka/web/pro/commanding/commands/base.rb +20 -4
  52. data/lib/karafka/web/pro/commanding/commands/consumers/quiet.rb +22 -5
  53. data/lib/karafka/web/pro/commanding/commands/consumers/stop.rb +22 -5
  54. data/lib/karafka/web/pro/commanding/commands/consumers/trace.rb +21 -4
  55. data/lib/karafka/web/pro/commanding/commands/partitions/pause.rb +20 -3
  56. data/lib/karafka/web/pro/commanding/commands/partitions/resume.rb +20 -3
  57. data/lib/karafka/web/pro/commanding/commands/partitions/seek.rb +20 -3
  58. data/lib/karafka/web/pro/commanding/commands/topics/pause.rb +48 -0
  59. data/lib/karafka/web/pro/commanding/commands/topics/resume.rb +49 -0
  60. data/lib/karafka/web/pro/commanding/config.rb +23 -5
  61. data/lib/karafka/web/pro/commanding/contracts/config.rb +21 -4
  62. data/lib/karafka/web/pro/commanding/dispatcher.rb +61 -26
  63. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/base.rb +20 -3
  64. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/pause.rb +21 -4
  65. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/resume.rb +20 -3
  66. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/seek.rb +24 -7
  67. data/lib/karafka/web/pro/commanding/handlers/partitions/executor.rb +36 -12
  68. data/lib/karafka/web/pro/commanding/handlers/partitions/listener.rb +47 -8
  69. data/lib/karafka/web/pro/commanding/handlers/partitions/tracker.rb +62 -13
  70. data/lib/karafka/web/pro/commanding/handlers/topics/commands/base.rb +109 -0
  71. data/lib/karafka/web/pro/commanding/handlers/topics/commands/pause.rb +76 -0
  72. data/lib/karafka/web/pro/commanding/handlers/topics/commands/resume.rb +56 -0
  73. data/lib/karafka/web/pro/commanding/handlers/topics/executor.rb +75 -0
  74. data/lib/karafka/web/pro/commanding/handlers/topics/listener.rb +82 -0
  75. data/lib/karafka/web/pro/commanding/handlers/topics/tracker.rb +81 -0
  76. data/lib/karafka/web/pro/commanding/listener.rb +23 -6
  77. data/lib/karafka/web/pro/commanding/manager.rb +44 -23
  78. data/lib/karafka/web/pro/commanding/matcher.rb +46 -18
  79. data/lib/karafka/web/pro/commanding/matchers/base.rb +87 -0
  80. data/lib/karafka/web/pro/commanding/matchers/consumer_group_id.rb +58 -0
  81. data/lib/karafka/web/pro/commanding/matchers/message_type.rb +49 -0
  82. data/lib/karafka/web/pro/commanding/matchers/partition_id.rb +61 -0
  83. data/lib/karafka/web/pro/commanding/matchers/process_id.rb +58 -0
  84. data/lib/karafka/web/pro/commanding/matchers/schema_version.rb +44 -0
  85. data/lib/karafka/web/pro/commanding/matchers/topic.rb +58 -0
  86. data/lib/karafka/web/pro/commanding/request.rb +19 -2
  87. data/lib/karafka/web/pro/commanding.rb +19 -2
  88. data/lib/karafka/web/pro/loader.rb +20 -3
  89. data/lib/karafka/web/pro/ui/app.rb +25 -8
  90. data/lib/karafka/web/pro/ui/controllers/base_controller.rb +19 -2
  91. data/lib/karafka/web/pro/ui/controllers/cluster_controller.rb +19 -2
  92. data/lib/karafka/web/pro/ui/controllers/consumers/base_controller.rb +19 -2
  93. data/lib/karafka/web/pro/ui/controllers/consumers/commanding_controller.rb +37 -15
  94. data/lib/karafka/web/pro/ui/controllers/consumers/commands_controller.rb +23 -6
  95. data/lib/karafka/web/pro/ui/controllers/consumers/consumers_controller.rb +19 -2
  96. data/lib/karafka/web/pro/ui/controllers/consumers/controls_controller.rb +19 -2
  97. data/lib/karafka/web/pro/ui/controllers/consumers/jobs_controller.rb +19 -2
  98. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/base_controller.rb +43 -42
  99. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/offsets_controller.rb +36 -17
  100. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb +59 -33
  101. data/lib/karafka/web/pro/ui/controllers/consumers/topics/pauses_controller.rb +164 -0
  102. data/lib/karafka/web/pro/ui/controllers/dashboard_controller.rb +19 -2
  103. data/lib/karafka/web/pro/ui/controllers/dlq_controller.rb +26 -9
  104. data/lib/karafka/web/pro/ui/controllers/errors_controller.rb +25 -9
  105. data/lib/karafka/web/pro/ui/controllers/explorer/base_controller.rb +19 -2
  106. data/lib/karafka/web/pro/ui/controllers/explorer/explorer_controller.rb +22 -5
  107. data/lib/karafka/web/pro/ui/controllers/explorer/messages_controller.rb +26 -9
  108. data/lib/karafka/web/pro/ui/controllers/explorer/search_controller.rb +23 -6
  109. data/lib/karafka/web/pro/ui/controllers/health_controller.rb +19 -2
  110. data/lib/karafka/web/pro/ui/controllers/jobs_controller.rb +19 -2
  111. data/lib/karafka/web/pro/ui/controllers/recurring_tasks_controller.rb +22 -5
  112. data/lib/karafka/web/pro/ui/controllers/routing_controller.rb +19 -2
  113. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/base_controller.rb +19 -2
  114. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/explorer_controller.rb +25 -8
  115. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/messages_controller.rb +21 -4
  116. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/schedules_controller.rb +26 -9
  117. data/lib/karafka/web/pro/ui/controllers/status_controller.rb +19 -2
  118. data/lib/karafka/web/pro/ui/controllers/support_controller.rb +19 -2
  119. data/lib/karafka/web/pro/ui/controllers/topics/base_controller.rb +19 -2
  120. data/lib/karafka/web/pro/ui/controllers/topics/configs_controller.rb +20 -3
  121. data/lib/karafka/web/pro/ui/controllers/topics/distributions_controller.rb +20 -3
  122. data/lib/karafka/web/pro/ui/controllers/topics/offsets_controller.rb +19 -2
  123. data/lib/karafka/web/pro/ui/controllers/topics/replications_controller.rb +41 -2
  124. data/lib/karafka/web/pro/ui/controllers/topics/topics_controller.rb +24 -7
  125. data/lib/karafka/web/pro/ui/controllers/ux_controller.rb +19 -2
  126. data/lib/karafka/web/pro/ui/lib/branding/config.rb +19 -2
  127. data/lib/karafka/web/pro/ui/lib/branding/contracts/config.rb +21 -4
  128. data/lib/karafka/web/pro/ui/lib/branding.rb +19 -2
  129. data/lib/karafka/web/pro/ui/lib/features.rb +19 -2
  130. data/lib/karafka/web/pro/ui/lib/patterns_detector.rb +19 -2
  131. data/lib/karafka/web/pro/ui/lib/policies/config.rb +19 -2
  132. data/lib/karafka/web/pro/ui/lib/policies/contracts/config.rb +21 -4
  133. data/lib/karafka/web/pro/ui/lib/policies/messages.rb +20 -3
  134. data/lib/karafka/web/pro/ui/lib/policies/requests.rb +19 -2
  135. data/lib/karafka/web/pro/ui/lib/policies.rb +19 -2
  136. data/lib/karafka/web/pro/ui/lib/safe_runner.rb +20 -3
  137. data/lib/karafka/web/pro/ui/lib/search/config.rb +19 -2
  138. data/lib/karafka/web/pro/ui/lib/search/contracts/config.rb +21 -4
  139. data/lib/karafka/web/pro/ui/lib/search/contracts/form.rb +24 -6
  140. data/lib/karafka/web/pro/ui/lib/search/matchers/base.rb +21 -4
  141. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_header_includes.rb +19 -2
  142. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_key_includes.rb +19 -2
  143. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_payload_includes.rb +20 -3
  144. data/lib/karafka/web/pro/ui/lib/search/normalizer.rb +26 -9
  145. data/lib/karafka/web/pro/ui/lib/search/runner.rb +33 -16
  146. data/lib/karafka/web/pro/ui/lib/search.rb +19 -2
  147. data/lib/karafka/web/pro/ui/routes/base.rb +19 -2
  148. data/lib/karafka/web/pro/ui/routes/cluster.rb +21 -4
  149. data/lib/karafka/web/pro/ui/routes/consumers.rb +83 -49
  150. data/lib/karafka/web/pro/ui/routes/dashboard.rb +20 -3
  151. data/lib/karafka/web/pro/ui/routes/dlq.rb +20 -3
  152. data/lib/karafka/web/pro/ui/routes/errors.rb +21 -4
  153. data/lib/karafka/web/pro/ui/routes/explorer.rb +33 -16
  154. data/lib/karafka/web/pro/ui/routes/health.rb +26 -9
  155. data/lib/karafka/web/pro/ui/routes/jobs.rb +23 -6
  156. data/lib/karafka/web/pro/ui/routes/recurring_tasks.rb +29 -12
  157. data/lib/karafka/web/pro/ui/routes/routing.rb +20 -3
  158. data/lib/karafka/web/pro/ui/routes/scheduled_messages.rb +28 -11
  159. data/lib/karafka/web/pro/ui/routes/status.rb +20 -3
  160. data/lib/karafka/web/pro/ui/routes/support.rb +20 -3
  161. data/lib/karafka/web/pro/ui/routes/topics.rb +29 -12
  162. data/lib/karafka/web/pro/ui/routes/ux.rb +20 -3
  163. data/lib/karafka/web/pro/ui/views/cluster/_breadcrumbs.erb +13 -2
  164. data/lib/karafka/web/pro/ui/views/cluster/_broker.erb +13 -2
  165. data/lib/karafka/web/pro/ui/views/cluster/_config.erb +14 -3
  166. data/lib/karafka/web/pro/ui/views/cluster/_tabs.erb +13 -2
  167. data/lib/karafka/web/pro/ui/views/cluster/index.erb +13 -2
  168. data/lib/karafka/web/pro/ui/views/cluster/show.erb +13 -2
  169. data/lib/karafka/web/pro/ui/views/consumers/commands/_backtrace.erb +13 -2
  170. data/lib/karafka/web/pro/ui/views/consumers/commands/_breadcrumbs.erb +13 -2
  171. data/lib/karafka/web/pro/ui/views/consumers/commands/_command.erb +24 -66
  172. data/lib/karafka/web/pro/ui/views/consumers/commands/_command_details.erb +13 -2
  173. data/lib/karafka/web/pro/ui/views/consumers/commands/_empty.erb +13 -2
  174. data/lib/karafka/web/pro/ui/views/consumers/commands/_incompatible_command.erb +19 -0
  175. data/lib/karafka/web/pro/ui/views/consumers/commands/_incompatible_schema.erb +13 -2
  176. data/lib/karafka/web/pro/ui/views/consumers/commands/_table.erb +15 -4
  177. data/lib/karafka/web/pro/ui/views/consumers/commands/details/_acceptance.erb +19 -0
  178. data/lib/karafka/web/pro/ui/views/consumers/commands/details/_request.erb +19 -0
  179. data/lib/karafka/web/pro/ui/views/consumers/commands/details/_result.erb +27 -0
  180. data/lib/karafka/web/pro/ui/views/consumers/commands/index.erb +13 -2
  181. data/lib/karafka/web/pro/ui/views/consumers/commands/metadata/_request.erb +52 -0
  182. data/lib/karafka/web/pro/ui/views/consumers/commands/metadata/_response.erb +46 -0
  183. data/lib/karafka/web/pro/ui/views/consumers/commands/rows/_command_name_badge.erb +40 -0
  184. data/lib/karafka/web/pro/ui/views/consumers/commands/rows/_request.erb +47 -0
  185. data/lib/karafka/web/pro/ui/views/consumers/commands/rows/_response.erb +46 -0
  186. data/lib/karafka/web/pro/ui/views/consumers/commands/show.erb +14 -15
  187. data/lib/karafka/web/pro/ui/views/consumers/consumers/_breadcrumbs.erb +13 -2
  188. data/lib/karafka/web/pro/ui/views/consumers/consumers/_consumer.erb +13 -2
  189. data/lib/karafka/web/pro/ui/views/consumers/consumers/_consumer_performance.erb +13 -2
  190. data/lib/karafka/web/pro/ui/views/consumers/consumers/_tabs.erb +13 -2
  191. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_commands.erb +13 -2
  192. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_consumer_group.erb +13 -2
  193. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_metrics.erb +13 -2
  194. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_no_subscriptions.erb +13 -2
  195. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_partition.erb +15 -5
  196. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_partition_edit_options.erb +16 -5
  197. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_stopped.erb +13 -2
  198. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_subscription_group.erb +31 -7
  199. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_tabs.erb +13 -2
  200. data/lib/karafka/web/pro/ui/views/consumers/consumers/details.erb +13 -2
  201. data/lib/karafka/web/pro/ui/views/consumers/consumers/index.erb +13 -2
  202. data/lib/karafka/web/pro/ui/views/consumers/consumers/performance.erb +13 -2
  203. data/lib/karafka/web/pro/ui/views/consumers/consumers/subscriptions.erb +13 -2
  204. data/lib/karafka/web/pro/ui/views/consumers/controls/_breadcrumbs.erb +13 -2
  205. data/lib/karafka/web/pro/ui/views/consumers/controls/_controls.erb +14 -3
  206. data/lib/karafka/web/pro/ui/views/consumers/controls/index.erb +35 -7
  207. data/lib/karafka/web/pro/ui/views/consumers/jobs/_breadcrumbs.erb +13 -2
  208. data/lib/karafka/web/pro/ui/views/consumers/jobs/_job.erb +14 -3
  209. data/lib/karafka/web/pro/ui/views/consumers/jobs/_no_jobs.erb +13 -2
  210. data/lib/karafka/web/pro/ui/views/consumers/jobs/pending.erb +13 -2
  211. data/lib/karafka/web/pro/ui/views/consumers/jobs/running.erb +13 -2
  212. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_basics.erb +20 -13
  213. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_breadcrumbs.erb +37 -46
  214. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_form.erb +25 -14
  215. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_not_running_error.erb +13 -2
  216. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_running_warning.erb +13 -2
  217. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/edit.erb +17 -6
  218. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_active_not_editable.erb +13 -2
  219. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_adjusting_warning.erb +14 -3
  220. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_breadcrumbs.erb +40 -48
  221. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_edit_form.erb +18 -8
  222. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_lrj_not_manageable.erb +13 -2
  223. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_new_form.erb +22 -11
  224. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_not_running.erb +13 -2
  225. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_partition_info.erb +57 -0
  226. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/edit.erb +16 -5
  227. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/new.erb +16 -5
  228. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_adjusting_warning.erb +38 -0
  229. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_breadcrumbs.erb +46 -0
  230. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_edit_form.erb +66 -0
  231. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_lrj_not_manageable.erb +30 -0
  232. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_new_form.erb +86 -0
  233. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_not_running.erb +27 -0
  234. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/_topic_info.erb +72 -0
  235. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/edit.erb +29 -0
  236. data/lib/karafka/web/pro/ui/views/consumers/topics/pauses/new.erb +29 -0
  237. data/lib/karafka/web/pro/ui/views/dashboard/index.erb +13 -2
  238. data/lib/karafka/web/pro/ui/views/dlq/_breadcrumbs.erb +13 -2
  239. data/lib/karafka/web/pro/ui/views/dlq/_no_topics.erb +13 -2
  240. data/lib/karafka/web/pro/ui/views/dlq/_topic.erb +13 -2
  241. data/lib/karafka/web/pro/ui/views/dlq/index.erb +13 -2
  242. data/lib/karafka/web/pro/ui/views/errors/_breadcrumbs.erb +13 -2
  243. data/lib/karafka/web/pro/ui/views/errors/_error.erb +14 -3
  244. data/lib/karafka/web/pro/ui/views/errors/_partition_option.erb +18 -5
  245. data/lib/karafka/web/pro/ui/views/errors/_selector.erb +14 -3
  246. data/lib/karafka/web/pro/ui/views/errors/_table.erb +14 -3
  247. data/lib/karafka/web/pro/ui/views/errors/index.erb +39 -26
  248. data/lib/karafka/web/pro/ui/views/errors/partition.erb +50 -37
  249. data/lib/karafka/web/pro/ui/views/errors/show.erb +14 -3
  250. data/lib/karafka/web/pro/ui/views/explorer/explorer/_breadcrumbs.erb +13 -2
  251. data/lib/karafka/web/pro/ui/views/explorer/explorer/_failed_deserialization.erb +13 -2
  252. data/lib/karafka/web/pro/ui/views/explorer/explorer/_filtered.erb +13 -2
  253. data/lib/karafka/web/pro/ui/views/explorer/explorer/_message.erb +14 -3
  254. data/lib/karafka/web/pro/ui/views/explorer/explorer/_no_topics.erb +13 -2
  255. data/lib/karafka/web/pro/ui/views/explorer/explorer/_partition_option.erb +18 -5
  256. data/lib/karafka/web/pro/ui/views/explorer/explorer/_selector.erb +14 -3
  257. data/lib/karafka/web/pro/ui/views/explorer/explorer/_topic.erb +13 -2
  258. data/lib/karafka/web/pro/ui/views/explorer/explorer/index.erb +13 -2
  259. data/lib/karafka/web/pro/ui/views/explorer/explorer/message/_metadata.erb +13 -2
  260. data/lib/karafka/web/pro/ui/views/explorer/explorer/message/_payload.erb +13 -2
  261. data/lib/karafka/web/pro/ui/views/explorer/explorer/message/_resources_utilization.erb +13 -2
  262. data/lib/karafka/web/pro/ui/views/explorer/explorer/message/_too_big_to_be_displayed.erb +15 -4
  263. data/lib/karafka/web/pro/ui/views/explorer/explorer/messages/_detail.erb +13 -2
  264. data/lib/karafka/web/pro/ui/views/explorer/explorer/messages/_headers.erb +13 -2
  265. data/lib/karafka/web/pro/ui/views/explorer/explorer/messages/_key.erb +13 -2
  266. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_cleaned.erb +13 -2
  267. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_empty.erb +13 -2
  268. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_messages.erb +14 -3
  269. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_time_selector.erb +14 -3
  270. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_timestamp_selector.erb +15 -3
  271. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition.erb +52 -39
  272. data/lib/karafka/web/pro/ui/views/explorer/explorer/show.erb +13 -2
  273. data/lib/karafka/web/pro/ui/views/explorer/explorer/topic/_actions.erb +39 -26
  274. data/lib/karafka/web/pro/ui/views/explorer/explorer/topic/_empty.erb +13 -2
  275. data/lib/karafka/web/pro/ui/views/explorer/explorer/topic/_limited.erb +13 -2
  276. data/lib/karafka/web/pro/ui/views/explorer/explorer/topic.erb +13 -2
  277. data/lib/karafka/web/pro/ui/views/explorer/messages/_breadcrumbs.erb +13 -2
  278. data/lib/karafka/web/pro/ui/views/explorer/messages/forward.erb +28 -16
  279. data/lib/karafka/web/pro/ui/views/explorer/search/_breadcrumbs.erb +13 -2
  280. data/lib/karafka/web/pro/ui/views/explorer/search/_fix_errors.erb +13 -2
  281. data/lib/karafka/web/pro/ui/views/explorer/search/_metadata.erb +13 -2
  282. data/lib/karafka/web/pro/ui/views/explorer/search/_no_results.erb +13 -2
  283. data/lib/karafka/web/pro/ui/views/explorer/search/_no_search_criteria.erb +13 -2
  284. data/lib/karafka/web/pro/ui/views/explorer/search/_search_criteria.erb +14 -3
  285. data/lib/karafka/web/pro/ui/views/explorer/search/_search_modal.erb +27 -15
  286. data/lib/karafka/web/pro/ui/views/explorer/search/_timeout.erb +13 -2
  287. data/lib/karafka/web/pro/ui/views/explorer/search/index.erb +13 -2
  288. data/lib/karafka/web/pro/ui/views/health/_breadcrumbs.erb +13 -2
  289. data/lib/karafka/web/pro/ui/views/health/_no_data.erb +13 -2
  290. data/lib/karafka/web/pro/ui/views/health/_no_partition_data.erb +13 -2
  291. data/lib/karafka/web/pro/ui/views/health/_partition.erb +22 -6
  292. data/lib/karafka/web/pro/ui/views/health/_partition_lags.erb +13 -2
  293. data/lib/karafka/web/pro/ui/views/health/_partition_offset.erb +13 -2
  294. data/lib/karafka/web/pro/ui/views/health/_partition_times.erb +13 -2
  295. data/lib/karafka/web/pro/ui/views/health/_partitions_with_fallback.erb +15 -2
  296. data/lib/karafka/web/pro/ui/views/health/_table_metadata.erb +13 -2
  297. data/lib/karafka/web/pro/ui/views/health/_tabs.erb +13 -2
  298. data/lib/karafka/web/pro/ui/views/health/_topic_edit_options.erb +64 -0
  299. data/lib/karafka/web/pro/ui/views/health/changes.erb +14 -2
  300. data/lib/karafka/web/pro/ui/views/health/cluster_lags.erb +13 -2
  301. data/lib/karafka/web/pro/ui/views/health/lags.erb +14 -2
  302. data/lib/karafka/web/pro/ui/views/health/offsets.erb +14 -2
  303. data/lib/karafka/web/pro/ui/views/health/overview.erb +29 -5
  304. data/lib/karafka/web/pro/ui/views/jobs/_job.erb +14 -3
  305. data/lib/karafka/web/pro/ui/views/jobs/_no_jobs.erb +13 -2
  306. data/lib/karafka/web/pro/ui/views/jobs/pending.erb +13 -2
  307. data/lib/karafka/web/pro/ui/views/jobs/running.erb +13 -2
  308. data/lib/karafka/web/pro/ui/views/recurring_tasks/_actions.erb +13 -2
  309. data/lib/karafka/web/pro/ui/views/recurring_tasks/_batch_actions.erb +13 -2
  310. data/lib/karafka/web/pro/ui/views/recurring_tasks/_breadcrumbs.erb +13 -2
  311. data/lib/karafka/web/pro/ui/views/recurring_tasks/_log.erb +13 -2
  312. data/lib/karafka/web/pro/ui/views/recurring_tasks/_not_active.erb +13 -2
  313. data/lib/karafka/web/pro/ui/views/recurring_tasks/_tabs.erb +13 -2
  314. data/lib/karafka/web/pro/ui/views/recurring_tasks/_task.erb +14 -3
  315. data/lib/karafka/web/pro/ui/views/recurring_tasks/logs.erb +13 -2
  316. data/lib/karafka/web/pro/ui/views/recurring_tasks/schedule.erb +14 -3
  317. data/lib/karafka/web/pro/ui/views/routing/_consumer_group.erb +14 -3
  318. data/lib/karafka/web/pro/ui/views/routing/_detail.erb +13 -2
  319. data/lib/karafka/web/pro/ui/views/routing/_topic.erb +14 -3
  320. data/lib/karafka/web/pro/ui/views/routing/index.erb +13 -2
  321. data/lib/karafka/web/pro/ui/views/routing/show.erb +13 -2
  322. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_breadcrumbs.erb +13 -2
  323. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_key.erb +13 -2
  324. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_message.erb +13 -2
  325. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_messages.erb +14 -3
  326. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_cancel.erb +14 -3
  327. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_compacted.erb +13 -2
  328. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_schedule.erb +14 -3
  329. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_tombstone.erb +14 -3
  330. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_unknown.erb +14 -3
  331. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/partition.erb +52 -39
  332. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/topic.erb +13 -2
  333. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_breadcrumbs.erb +13 -2
  334. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_no_groups.erb +13 -2
  335. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/index.erb +13 -2
  336. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/show.erb +14 -3
  337. data/lib/karafka/web/pro/ui/views/shared/_navigation.erb +14 -3
  338. data/lib/karafka/web/pro/ui/views/shared/_rdkafka_form_error_alert_box.erb +13 -2
  339. data/lib/karafka/web/pro/ui/views/shared/branding/_label.erb +13 -2
  340. data/lib/karafka/web/pro/ui/views/shared/branding/_notice.erb +13 -2
  341. data/lib/karafka/web/pro/ui/views/topics/configs/_breadcrumbs.erb +13 -2
  342. data/lib/karafka/web/pro/ui/views/topics/configs/_config.erb +14 -3
  343. data/lib/karafka/web/pro/ui/views/topics/configs/_delete_button.erb +13 -2
  344. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_form.erb +17 -6
  345. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_plan.erb +13 -2
  346. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_warning.erb +13 -2
  347. data/lib/karafka/web/pro/ui/views/topics/configs/edit.erb +21 -10
  348. data/lib/karafka/web/pro/ui/views/topics/configs/index.erb +14 -3
  349. data/lib/karafka/web/pro/ui/views/topics/distributions/_add_partitions_button.erb +13 -2
  350. data/lib/karafka/web/pro/ui/views/topics/distributions/_badges.erb +13 -2
  351. data/lib/karafka/web/pro/ui/views/topics/distributions/_breadcrumbs.erb +13 -2
  352. data/lib/karafka/web/pro/ui/views/topics/distributions/_chart.erb +13 -2
  353. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_form.erb +18 -6
  354. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_hints.erb +13 -2
  355. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_warnings.erb +13 -2
  356. data/lib/karafka/web/pro/ui/views/topics/distributions/_empty_partitions.erb +13 -2
  357. data/lib/karafka/web/pro/ui/views/topics/distributions/_limited.erb +13 -2
  358. data/lib/karafka/web/pro/ui/views/topics/distributions/_partition.erb +13 -2
  359. data/lib/karafka/web/pro/ui/views/topics/distributions/edit.erb +13 -2
  360. data/lib/karafka/web/pro/ui/views/topics/distributions/show.erb +13 -2
  361. data/lib/karafka/web/pro/ui/views/topics/offsets/_breadcrumbs.erb +13 -2
  362. data/lib/karafka/web/pro/ui/views/topics/offsets/_partition.erb +13 -2
  363. data/lib/karafka/web/pro/ui/views/topics/offsets/show.erb +13 -2
  364. data/lib/karafka/web/pro/ui/views/topics/replications/_breadcrumbs.erb +13 -2
  365. data/lib/karafka/web/pro/ui/views/topics/replications/_metric_box.erb +20 -0
  366. data/lib/karafka/web/pro/ui/views/topics/replications/_partition.erb +13 -2
  367. data/lib/karafka/web/pro/ui/views/topics/replications/_replication_info.erb +65 -0
  368. data/lib/karafka/web/pro/ui/views/topics/replications/_resilience_success.erb +24 -0
  369. data/lib/karafka/web/pro/ui/views/topics/replications/_warning_low_durability.erb +67 -0
  370. data/lib/karafka/web/pro/ui/views/topics/replications/_warning_no_redundancy.erb +66 -0
  371. data/lib/karafka/web/pro/ui/views/topics/replications/_warning_zero_fault_tolerance.erb +67 -0
  372. data/lib/karafka/web/pro/ui/views/topics/replications/show.erb +15 -2
  373. data/lib/karafka/web/pro/ui/views/topics/topics/_breadcrumbs.erb +13 -2
  374. data/lib/karafka/web/pro/ui/views/topics/topics/_create_button.erb +13 -2
  375. data/lib/karafka/web/pro/ui/views/topics/topics/_create_hints.erb +13 -2
  376. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_form.erb +13 -2
  377. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_hints.erb +13 -2
  378. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_warning.erb +13 -2
  379. data/lib/karafka/web/pro/ui/views/topics/topics/_new_form.erb +25 -11
  380. data/lib/karafka/web/pro/ui/views/topics/topics/_tabs.erb +13 -2
  381. data/lib/karafka/web/pro/ui/views/topics/topics/_topic.erb +13 -2
  382. data/lib/karafka/web/pro/ui/views/topics/topics/edit.erb +13 -2
  383. data/lib/karafka/web/pro/ui/views/topics/topics/index.erb +13 -2
  384. data/lib/karafka/web/pro/ui/views/topics/topics/new.erb +13 -2
  385. data/lib/karafka/web/processing/consumer.rb +1 -1
  386. data/lib/karafka/web/processing/consumers/aggregators/metrics.rb +11 -11
  387. data/lib/karafka/web/processing/consumers/aggregators/state.rb +4 -3
  388. data/lib/karafka/web/processing/consumers/reports_migrator.rb +2 -2
  389. data/lib/karafka/web/processing/consumers/schema_manager.rb +1 -1
  390. data/lib/karafka/web/processing/publisher.rb +2 -2
  391. data/lib/karafka/web/producer.rb +61 -0
  392. data/lib/karafka/web/tracking/consumers/contracts/report.rb +2 -2
  393. data/lib/karafka/web/tracking/consumers/contracts/subscription_group.rb +1 -0
  394. data/lib/karafka/web/tracking/consumers/listeners/booting.rb +1 -1
  395. data/lib/karafka/web/tracking/consumers/listeners/connections.rb +7 -2
  396. data/lib/karafka/web/tracking/consumers/listeners/errors.rb +10 -10
  397. data/lib/karafka/web/tracking/consumers/listeners/pausing.rb +1 -1
  398. data/lib/karafka/web/tracking/consumers/listeners/processing.rb +25 -25
  399. data/lib/karafka/web/tracking/consumers/listeners/statistics.rb +35 -35
  400. data/lib/karafka/web/tracking/consumers/reporter.rb +2 -2
  401. data/lib/karafka/web/tracking/consumers/sampler/enrichers/consumer_groups.rb +1 -0
  402. data/lib/karafka/web/tracking/consumers/sampler/metrics/base.rb +2 -1
  403. data/lib/karafka/web/tracking/consumers/sampler/metrics/container.rb +15 -15
  404. data/lib/karafka/web/tracking/consumers/sampler/metrics/network.rb +6 -6
  405. data/lib/karafka/web/tracking/consumers/sampler/metrics/os.rb +41 -37
  406. data/lib/karafka/web/tracking/consumers/sampler.rb +7 -7
  407. data/lib/karafka/web/tracking/helpers/error_info.rb +10 -10
  408. data/lib/karafka/web/tracking/helpers/sysconf.rb +2 -2
  409. data/lib/karafka/web/tracking/helpers/ttls/array.rb +1 -1
  410. data/lib/karafka/web/tracking/helpers/ttls/hash.rb +1 -1
  411. data/lib/karafka/web/tracking/helpers/ttls/stats.rb +4 -4
  412. data/lib/karafka/web/tracking/producers/listeners/booting.rb +1 -1
  413. data/lib/karafka/web/tracking/producers/listeners/errors.rb +2 -2
  414. data/lib/karafka/web/tracking/producers/reporter.rb +2 -2
  415. data/lib/karafka/web/tracking/producers/sampler.rb +1 -1
  416. data/lib/karafka/web/tracking/ui/errors.rb +4 -4
  417. data/lib/karafka/web/ui/app.rb +2 -2
  418. data/lib/karafka/web/ui/base.rb +30 -30
  419. data/lib/karafka/web/ui/controllers/base_controller.rb +24 -24
  420. data/lib/karafka/web/ui/controllers/cluster_controller.rb +3 -3
  421. data/lib/karafka/web/ui/controllers/requests/params.rb +6 -6
  422. data/lib/karafka/web/ui/helpers/application_helper.rb +59 -59
  423. data/lib/karafka/web/ui/helpers/paths_helper.rb +15 -7
  424. data/lib/karafka/web/ui/helpers/tailwind_helper.rb +6 -6
  425. data/lib/karafka/web/ui/helpers/time_helper.rb +1 -1
  426. data/lib/karafka/web/ui/helpers/topics_helper.rb +4 -4
  427. data/lib/karafka/web/ui/lib/admin.rb +2 -2
  428. data/lib/karafka/web/ui/lib/paginations/base.rb +7 -7
  429. data/lib/karafka/web/ui/lib/paginations/offset_based.rb +2 -2
  430. data/lib/karafka/web/ui/lib/paginations/page_based.rb +1 -1
  431. data/lib/karafka/web/ui/lib/paginations/paginators/arrays.rb +3 -3
  432. data/lib/karafka/web/ui/lib/paginations/watermark_offsets_based.rb +1 -1
  433. data/lib/karafka/web/ui/lib/sorter.rb +2 -2
  434. data/lib/karafka/web/ui/models/counters.rb +1 -1
  435. data/lib/karafka/web/ui/models/health.rb +1 -0
  436. data/lib/karafka/web/ui/models/jobs.rb +2 -2
  437. data/lib/karafka/web/ui/models/message.rb +9 -9
  438. data/lib/karafka/web/ui/models/metrics/charts/aggregated.rb +3 -3
  439. data/lib/karafka/web/ui/models/metrics/charts/topics.rb +3 -3
  440. data/lib/karafka/web/ui/models/metrics/topics.rb +8 -8
  441. data/lib/karafka/web/ui/models/processes.rb +3 -3
  442. data/lib/karafka/web/ui/models/recurring_tasks/schedule.rb +2 -2
  443. data/lib/karafka/web/ui/models/status/checks/base.rb +127 -0
  444. data/lib/karafka/web/ui/models/status/checks/commands_topic_presence.rb +52 -0
  445. data/lib/karafka/web/ui/models/status/checks/connection.rb +68 -0
  446. data/lib/karafka/web/ui/models/status/checks/consumers_reports.rb +34 -0
  447. data/lib/karafka/web/ui/models/status/checks/consumers_reports_schema_state.rb +32 -0
  448. data/lib/karafka/web/ui/models/status/checks/consumers_schemas.rb +44 -0
  449. data/lib/karafka/web/ui/models/status/checks/enabled.rb +39 -0
  450. data/lib/karafka/web/ui/models/status/checks/initial_consumers_metrics.rb +48 -0
  451. data/lib/karafka/web/ui/models/status/checks/initial_consumers_state.rb +48 -0
  452. data/lib/karafka/web/ui/models/status/checks/live_reporting.rb +31 -0
  453. data/lib/karafka/web/ui/models/status/checks/materializing_lag.rb +49 -0
  454. data/lib/karafka/web/ui/models/status/checks/partitions.rb +45 -0
  455. data/lib/karafka/web/ui/models/status/checks/pro_subscription.rb +29 -0
  456. data/lib/karafka/web/ui/models/status/checks/replication.rb +51 -0
  457. data/lib/karafka/web/ui/models/status/checks/routing_topics_presence.rb +53 -0
  458. data/lib/karafka/web/ui/models/status/checks/state_calculation.rb +39 -0
  459. data/lib/karafka/web/ui/models/status/checks/topics.rb +44 -0
  460. data/lib/karafka/web/ui/models/status/context.rb +142 -0
  461. data/lib/karafka/web/ui/models/status/step.rb +64 -0
  462. data/lib/karafka/web/ui/models/status.rb +70 -356
  463. data/lib/karafka/web/ui/models/topic.rb +2 -2
  464. data/lib/karafka/web/ui/public/javascripts/application.min.js +1 -1
  465. data/lib/karafka/web/ui/public/javascripts/application.min.js.br +0 -0
  466. data/lib/karafka/web/ui/public/javascripts/application.min.js.gz +0 -0
  467. data/lib/karafka/web/ui/public/javascripts/components/live_poll.js +2 -2
  468. data/lib/karafka/web/ui/public/stylesheets/application.min.css +4660 -2524
  469. data/lib/karafka/web/ui/public/stylesheets/application.min.css.br +0 -0
  470. data/lib/karafka/web/ui/public/stylesheets/application.min.css.gz +0 -0
  471. data/lib/karafka/web/ui/public/stylesheets/libs/tailwind.css +62 -3
  472. data/lib/karafka/web/ui/routes/assets.rb +7 -7
  473. data/lib/karafka/web/ui/routes/cluster.rb +4 -4
  474. data/lib/karafka/web/ui/routes/consumers.rb +2 -2
  475. data/lib/karafka/web/ui/routes/dashboard.rb +1 -1
  476. data/lib/karafka/web/ui/routes/errors.rb +2 -2
  477. data/lib/karafka/web/ui/routes/jobs.rb +4 -4
  478. data/lib/karafka/web/ui/routes/routing.rb +1 -1
  479. data/lib/karafka/web/ui/routes/status.rb +1 -1
  480. data/lib/karafka/web/ui/routes/support.rb +1 -1
  481. data/lib/karafka/web/ui/routes/ux.rb +1 -1
  482. data/lib/karafka/web/ui/views/cluster/_partition.erb +1 -0
  483. data/lib/karafka/web/ui/views/dashboard/_counters.erb +16 -16
  484. data/lib/karafka/web/ui/views/errors/_detail.erb +2 -3
  485. data/lib/karafka/web/ui/views/errors/_error.erb +1 -1
  486. data/lib/karafka/web/ui/views/errors/index.erb +1 -1
  487. data/lib/karafka/web/ui/views/errors/show.erb +1 -1
  488. data/lib/karafka/web/ui/views/jobs/_job.erb +1 -1
  489. data/lib/karafka/web/ui/views/layout.erb +1 -1
  490. data/lib/karafka/web/ui/views/routing/_consumer_group.erb +1 -1
  491. data/lib/karafka/web/ui/views/routing/_topic.erb +1 -1
  492. data/lib/karafka/web/ui/views/shared/_header.erb +5 -5
  493. data/lib/karafka/web/ui/views/shared/_navigation.erb +1 -1
  494. data/lib/karafka/web/ui/views/shared/alerts/_error.erb +2 -2
  495. data/lib/karafka/web/ui/views/shared/alerts/_info.erb +1 -1
  496. data/lib/karafka/web/ui/views/shared/alerts/_primary.erb +1 -1
  497. data/lib/karafka/web/ui/views/shared/alerts/_secondary.erb +1 -1
  498. data/lib/karafka/web/ui/views/shared/alerts/_success.erb +1 -1
  499. data/lib/karafka/web/ui/views/shared/alerts/_warning.erb +2 -2
  500. data/lib/karafka/web/ui/views/shared/exceptions/not_allowed.erb +3 -3
  501. data/lib/karafka/web/ui/views/shared/exceptions/not_found.erb +4 -4
  502. data/lib/karafka/web/ui/views/shared/exceptions/pro_only.erb +4 -4
  503. data/lib/karafka/web/ui/views/shared/exceptions/unhandled_error.erb +4 -4
  504. data/lib/karafka/web/ui/views/status/show.erb +15 -0
  505. data/lib/karafka/web/ui/views/status/warnings/_commands_topic_presence.erb +14 -0
  506. data/lib/karafka/web/ui/views/ux/_code.erb +0 -1
  507. data/lib/karafka/web/ui/views/ux/_data_table.erb +79 -0
  508. data/lib/karafka/web/ui/views/ux/_headers.erb +1 -1
  509. data/lib/karafka/web/ui/views/ux/_pagination.erb +1 -1
  510. data/lib/karafka/web/version.rb +1 -1
  511. data/lib/karafka/web.rb +17 -17
  512. data/package-lock.json +480 -92
  513. data/package.json +3 -1
  514. data/renovate.json +12 -11
  515. data/tailwind.config.js +4 -7
  516. metadata +72 -3
  517. data/lib/karafka/web/pro/ui/views/consumers/commands/_metadata.erb +0 -44
@@ -0,0 +1,65 @@
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
14
+
15
+ <div class="flex flex-wrap justify-center gap-4 mb-6">
16
+ <%==
17
+ partial(
18
+ 'topics/replications/metric_box',
19
+ locals: {
20
+ title: 'Replication Factor',
21
+ content: badge_info(@replication_factor)
22
+ }
23
+ )
24
+ %>
25
+
26
+ <%==
27
+ partial(
28
+ 'topics/replications/metric_box',
29
+ locals: {
30
+ title: 'Min In-Sync Replicas',
31
+ content: badge_info(@min_isr)
32
+ }
33
+ )
34
+ %>
35
+
36
+ <%==
37
+ partial(
38
+ 'topics/replications/metric_box',
39
+ locals: {
40
+ title: 'Fault Tolerance',
41
+ content: @has_zero_fault_tolerance || @has_no_redundancy ? badge_warning('0 brokers') : badge_success("#{@replication_factor - @min_isr} broker(s)")
42
+ }
43
+ )
44
+ %>
45
+
46
+ <%==
47
+ partial(
48
+ 'topics/replications/metric_box',
49
+ locals: {
50
+ title: 'Environment',
51
+ content: Karafka.env.production? ? badge_error('production') : badge_info(Karafka.env.to_s)
52
+ }
53
+ )
54
+ %>
55
+ </div>
56
+
57
+ <% if @has_no_redundancy %>
58
+ <%== partial 'topics/replications/warning_no_redundancy' %>
59
+ <% elsif @has_zero_fault_tolerance %>
60
+ <%== partial 'topics/replications/warning_zero_fault_tolerance' %>
61
+ <% elsif @has_low_durability %>
62
+ <%== partial 'topics/replications/warning_low_durability' %>
63
+ <% else %>
64
+ <%== partial 'topics/replications/resilience_success' %>
65
+ <% end %>
@@ -0,0 +1,24 @@
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
14
+
15
+ <div class="mb-6">
16
+ <% alert_box_success('Replication Configuration is Fault Tolerant') do %>
17
+ <p>
18
+ This topic can tolerate up to <strong><%= @replication_factor - @min_isr %></strong> broker failure(s)
19
+ while maintaining write availability. With a replication factor of <strong><%= @replication_factor %></strong>
20
+ and <code>min.insync.replicas</code> set to <strong><%= @min_isr %></strong>, your data remains
21
+ available even during broker maintenance or unexpected outages.
22
+ </p>
23
+ <% end %>
24
+ </div>
@@ -0,0 +1,67 @@
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
14
+
15
+ <div class="mb-6">
16
+ <% alert_box_warning('Low Data Durability Configuration') do %>
17
+ <div class="space-y-4">
18
+ <p>
19
+ This topic has <code>min.insync.replicas</code> set to <strong>1</strong> with a
20
+ replication factor of <strong><%= @replication_factor %></strong>.
21
+ </p>
22
+
23
+ <p>
24
+ <strong>Impact:</strong> When using <code>acks=all</code>, messages are acknowledged as soon as
25
+ the leader replica receives them, <strong>before</strong> replication to followers completes.
26
+ If the leader broker fails immediately after acknowledging a write, that data may be
27
+ <strong>permanently</strong> lost even though the producer received a success confirmation.
28
+ </p>
29
+
30
+ <% if Karafka.env.production? %>
31
+ <p>
32
+ This configuration <strong>does not</strong> guarantee data durability and should be
33
+ reviewed for production workloads where data loss is unacceptable.
34
+ </p>
35
+ <% else %>
36
+ <p>
37
+ While this configuration may be acceptable for development and testing, be aware that
38
+ this setup <strong>risks</strong> data loss in production. Consider using production-like
39
+ settings in staging environments to catch such issues before deployment.
40
+ </p>
41
+ <% end %>
42
+
43
+ <p><strong>Recommended Actions:</strong></p>
44
+ <ul class="list-disc ml-6">
45
+ <li>
46
+ Increase <code>min.insync.replicas</code> to at least <strong>2</strong> to ensure
47
+ messages are replicated to multiple brokers before acknowledgment.
48
+ </li>
49
+ <li>
50
+ Ensure your producers use <code>acks=all</code> to leverage the <code>min.insync.replicas</code>
51
+ guarantee for durable writes.
52
+ </li>
53
+ </ul>
54
+
55
+ <p class="mt-4 text-sm">
56
+ For more details, see the
57
+ <a
58
+ href="https://karafka.io/docs/Broker-Failures-and-Fault-Tolerance/#critical-configuration-replication-factor-and-mininsyncreplicas"
59
+ target="_blank"
60
+ class="link"
61
+ >
62
+ Broker Failures and Fault Tolerance</a>
63
+ documentation.
64
+ </p>
65
+ </div>
66
+ <% end %>
67
+ </div>
@@ -0,0 +1,66 @@
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
14
+
15
+ <div class="mb-6">
16
+ <% alert_box_warning('No Replication Redundancy') do %>
17
+ <div class="space-y-4">
18
+ <p>
19
+ This topic has a replication factor of <strong>1</strong>, meaning each partition exists on
20
+ only a single broker with <strong>no</strong> redundant copies.
21
+ </p>
22
+
23
+ <p>
24
+ <strong>Impact:</strong> If the broker hosting a partition fails, that partition becomes
25
+ completely unavailable. Any data not yet consumed will be <strong>permanently lost</strong>
26
+ and producers will be unable to write to affected partitions until the broker recovers.
27
+ </p>
28
+
29
+ <% if Karafka.env.production? %>
30
+ <p>
31
+ This is a <strong>critical issue</strong> for production workloads where data durability
32
+ and availability are essential.
33
+ </p>
34
+ <% else %>
35
+ <p>
36
+ While this configuration may be acceptable for development and testing, be aware that
37
+ this setup <strong>can cause data loss in production</strong>. Consider using production-like
38
+ settings in staging environments to catch such issues before deployment.
39
+ </p>
40
+ <% end %>
41
+
42
+ <p><strong>Recommended Actions:</strong></p>
43
+ <ul class="list-disc ml-6">
44
+ <li>
45
+ Increase the replication factor to at least <strong>2</strong> (preferably 3) to ensure
46
+ partition data is replicated across multiple brokers.
47
+ </li>
48
+ <li>
49
+ Set <code>min.insync.replicas</code> to at least <strong>2</strong> when using
50
+ <code>acks=all</code> to ensure writes are durably replicated before acknowledgment.
51
+ </li>
52
+ </ul>
53
+
54
+ <p class="mt-4 text-sm">
55
+ For more details, see the
56
+ <a
57
+ href="https://karafka.io/docs/Broker-Failures-and-Fault-Tolerance/#critical-configuration-replication-factor-and-mininsyncreplicas"
58
+ target="_blank"
59
+ class="link"
60
+ >
61
+ Broker Failures and Fault Tolerance</a>
62
+ documentation.
63
+ </p>
64
+ </div>
65
+ <% end %>
66
+ </div>
@@ -0,0 +1,67 @@
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
14
+
15
+ <div class="mb-6">
16
+ <% alert_box_warning('Replication Resilience Issue Detected') do %>
17
+ <div class="space-y-4">
18
+ <p>
19
+ This topic has a replication factor of <strong><%= @replication_factor %></strong> and
20
+ <code>min.insync.replicas</code> set to <strong><%= @min_isr %></strong>.
21
+ When these values are equal, your Kafka setup has <strong>zero</strong> fault tolerance.
22
+ </p>
23
+
24
+ <p>
25
+ <strong>Impact:</strong> Any single broker failure or maintenance operation will block
26
+ writes to this topic until all replicas are back in sync. This can cause producer timeouts,
27
+ message loss, and application failures.
28
+ </p>
29
+
30
+ <% if Karafka.env.production? %>
31
+ <p>
32
+ This is a <strong>critical issue</strong> that should be addressed immediately to ensure
33
+ high availability of your Kafka cluster.
34
+ </p>
35
+ <% else %>
36
+ <p>
37
+ While this configuration may be acceptable for development and testing, be aware that
38
+ <strong>this setup would cause outages in production</strong>. Consider using production-like
39
+ settings in staging environments to catch such issues before deployment.
40
+ </p>
41
+ <% end %>
42
+
43
+ <p><strong>Recommended Actions:</strong></p>
44
+ <ul class="list-disc ml-6">
45
+ <li>
46
+ <code>min.insync.replicas</code> should always be at least <strong>one</strong> less
47
+ than the replication factor to maintain write availability during broker failures.
48
+ </li>
49
+ <li>
50
+ For production workloads, consider using a replication factor of <strong>3</strong> or higher
51
+ with <code>min.insync.replicas</code> of <strong>2</strong>.
52
+ </li>
53
+ </ul>
54
+
55
+ <p class="mt-4 text-sm">
56
+ For more details, see the
57
+ <a
58
+ href="https://karafka.io/docs/Broker-Failures-and-Fault-Tolerance/#critical-configuration-replication-factor-and-mininsyncreplicas"
59
+ target="_blank"
60
+ class="link"
61
+ >
62
+ Broker Failures and Fault Tolerance</a>
63
+ documentation.
64
+ </p>
65
+ </div>
66
+ <% end %>
67
+ </div>
@@ -1,10 +1,23 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% view_title "#{@topic.topic_name} Replication" %>
5
16
 
6
17
  <%== partial 'topics/topics/tabs' %>
7
18
 
19
+ <%== partial 'topics/replications/replication_info' %>
20
+
8
21
  <div class="data-table-wrapper">
9
22
  <table class="data-table">
10
23
  <thead>
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <li>
5
16
  <a href="<%= topics_path %>">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="col-span-12 flex justify-end space-x-2 mb-6">
5
16
  <a
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% alert_box_info('Topic Creation Settings') do %>
5
16
  <p>
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="card bg-base-100">
5
16
  <div class="card-body">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="alert">
5
16
  <div class="space-y-2">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% alert_box_warning('Topic Removal Warning') do %>
5
16
  <div class="space-y-4">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="card bg-base-100 mt-4">
5
16
  <div class="card-body border-error">
@@ -7,7 +18,7 @@
7
18
  <%== csrf_tag(topics_path) %>
8
19
 
9
20
  <div class="flex items-center w-full mb-8">
10
- <label class="w-1/4 text-gray-700">Topic Name:</label>
21
+ <label class="w-1/4 text-base-content/70">Topic Name:</label>
11
22
  <div class="w-3/4">
12
23
  <input
13
24
  type="text"
@@ -19,15 +30,16 @@
19
30
  maxlength="249"
20
31
  value="<%= params.fetch(:topic_name, '') %>"
21
32
  required
22
- />
23
- <div class="text-sm text-gray-500 mt-1">
33
+ autocomplete="on"
34
+ >
35
+ <div class="text-sm text-base-content/70 mt-1">
24
36
  Only alphanumeric characters, dots, underscores, and hyphens are allowed
25
37
  </div>
26
38
  </div>
27
39
  </div>
28
40
 
29
41
  <div class="flex items-center w-full mb-8">
30
- <label class="w-1/4 text-gray-700">Number of Partitions:</label>
42
+ <label class="w-1/4 text-base-content/70">Number of Partitions:</label>
31
43
  <div class="w-3/4">
32
44
  <input
33
45
  type="number"
@@ -38,15 +50,16 @@
38
50
  placeholder="Enter number of partitions"
39
51
  value="<%= params.fetch(:partitions_count, 5) %>"
40
52
  required
41
- />
42
- <div class="text-sm text-gray-500 mt-1">
53
+ autocomplete="on"
54
+ >
55
+ <div class="text-sm text-base-content/70 mt-1">
43
56
  Minimum 1 partition, cannot be decreased after creation
44
57
  </div>
45
58
  </div>
46
59
  </div>
47
60
 
48
61
  <div class="flex items-center w-full">
49
- <label class="w-1/4 text-gray-700">Replication Factor:</label>
62
+ <label class="w-1/4 text-base-content/70">Replication Factor:</label>
50
63
  <div class="w-3/4">
51
64
  <input
52
65
  type="number"
@@ -57,8 +70,9 @@
57
70
  placeholder="Enter replication factor"
58
71
  value="<%= params.fetch(:replication_factor, 1) %>"
59
72
  required
60
- />
61
- <div class="text-sm text-gray-500 mt-1">
73
+ autocomplete="on"
74
+ >
75
+ <div class="text-sm text-base-content/70 mt-1">
62
76
  Number of replicas for each partition (minimum 1, recommended 3 for production)
63
77
  </div>
64
78
  </div>
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="tab-container-wrapper">
5
16
  <div class="tab-container">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <div class="topic-tile">
5
16
  <div class="topic-tile-body">
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% view_title "Topic #{@topic.topic_name} Removal Confirmation" %>
5
16
 
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% view_title 'Topics' %>
5
16
 
@@ -1,5 +1,16 @@
1
- <%# This code is part of Karafka Pro, a commercial component not licensed under LGPL. %>
2
- <%# See LICENSE for details. %>
1
+ <%# Karafka Pro - Source Available Commercial Software %>
2
+ <%# Copyright (c) 2017-present Maciej Mensfeld. All rights reserved. %>
3
+ <%# This software is NOT open source. It is source-available commercial software %>
4
+ <%# requiring a paid license for use. It is NOT covered by LGPL. %>
5
+ <%# PROHIBITED: Use without a valid commercial license %>
6
+ <%# PROHIBITED: Redistribution, modification, or derivative works without authorization %>
7
+ <%# PROHIBITED: Use as training data for AI/ML models or inclusion in datasets %>
8
+ <%# PROHIBITED: Scraping, crawling, or automated collection for any purpose %>
9
+ <%# PERMITTED: Reading, referencing, and linking for personal or commercial use %>
10
+ <%# PERMITTED: Runtime retrieval by AI assistants, coding agents, and RAG systems %>
11
+ <%# PERMITTED: for the purpose of providing contextual help to Karafka users %>
12
+ <%# License: https://karafka.io/docs/Pro-License-Comm/ %>
13
+ <%# Contact: contact@karafka.io %>
3
14
 
4
15
  <% view_title "Creating New Topic" %>
5
16
 
@@ -15,7 +15,7 @@ module Karafka
15
15
  def consume
16
16
  bootstrap!
17
17
 
18
- consumers_messages = messages.select { |message| message.payload[:type] == 'consumer' }
18
+ consumers_messages = messages.select { |message| message.payload[:type] == "consumer" }
19
19
 
20
20
  # If there is even one incompatible message, we need to stop
21
21
  consumers_messages.each do |message|