karafka-web 0.10.4 → 0.11.0.beta1

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 (479) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +54 -176
  4. data/Gemfile +4 -0
  5. data/Gemfile.lock +87 -43
  6. data/LICENSE +6 -2
  7. data/bin/verify_kafka_warnings +35 -0
  8. data/bin/verify_topics_naming +35 -0
  9. data/config/locales/pro_errors.yml +1 -0
  10. data/docker-compose.yml +1 -1
  11. data/gulpfile.js +0 -2
  12. data/karafka-web.gemspec +2 -2
  13. data/lib/karafka/web/config.rb +80 -9
  14. data/lib/karafka/web/contracts/config.rb +44 -5
  15. data/lib/karafka/web/errors.rb +10 -0
  16. data/lib/karafka/web/management/actions/create_initial_states.rb +6 -6
  17. data/lib/karafka/web/management/actions/create_topics.rb +30 -64
  18. data/lib/karafka/web/management/actions/delete_topics.rb +5 -5
  19. data/lib/karafka/web/management/actions/enable.rb +5 -5
  20. data/lib/karafka/web/pro/commanding/commands/base.rb +37 -13
  21. data/lib/karafka/web/pro/commanding/commands/consumers/quiet.rb +33 -0
  22. data/lib/karafka/web/pro/commanding/commands/consumers/stop.rb +32 -0
  23. data/lib/karafka/web/pro/commanding/commands/consumers/trace.rb +37 -0
  24. data/lib/karafka/web/pro/commanding/commands/partitions/pause.rb +30 -0
  25. data/lib/karafka/web/pro/commanding/commands/partitions/resume.rb +30 -0
  26. data/lib/karafka/web/pro/commanding/commands/partitions/seek.rb +30 -0
  27. data/lib/karafka/web/pro/commanding/config.rb +6 -10
  28. data/lib/karafka/web/pro/commanding/contracts/config.rb +2 -10
  29. data/lib/karafka/web/pro/commanding/dispatcher.rb +45 -24
  30. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/base.rb +67 -0
  31. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/pause.rb +44 -0
  32. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/resume.rb +29 -0
  33. data/lib/karafka/web/pro/commanding/handlers/partitions/commands/seek.rb +86 -0
  34. data/lib/karafka/web/pro/commanding/handlers/partitions/executor.rb +56 -0
  35. data/lib/karafka/web/pro/commanding/handlers/partitions/listener.rb +55 -0
  36. data/lib/karafka/web/pro/commanding/handlers/partitions/tracker.rb +62 -0
  37. data/lib/karafka/web/pro/commanding/listener.rb +4 -12
  38. data/lib/karafka/web/pro/commanding/manager.rb +36 -24
  39. data/lib/karafka/web/pro/commanding/matcher.rb +7 -17
  40. data/lib/karafka/web/pro/commanding/request.rb +39 -0
  41. data/lib/karafka/web/pro/commanding.rb +2 -10
  42. data/lib/karafka/web/pro/loader.rb +13 -10
  43. data/lib/karafka/web/pro/ui/app.rb +31 -390
  44. data/lib/karafka/web/pro/ui/controllers/base_controller.rb +8 -10
  45. data/lib/karafka/web/pro/ui/controllers/cluster_controller.rb +2 -10
  46. data/lib/karafka/web/pro/ui/controllers/consumers/base_controller.rb +21 -0
  47. data/lib/karafka/web/pro/ui/controllers/consumers/commanding_controller.rb +148 -0
  48. data/lib/karafka/web/pro/ui/controllers/consumers/commands_controller.rb +96 -0
  49. data/lib/karafka/web/pro/ui/controllers/consumers/consumers_controller.rb +101 -0
  50. data/lib/karafka/web/pro/ui/controllers/consumers/controls_controller.rb +36 -0
  51. data/lib/karafka/web/pro/ui/controllers/consumers/jobs_controller.rb +57 -0
  52. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/base_controller.rb +86 -0
  53. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/offsets_controller.rb +75 -0
  54. data/lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb +110 -0
  55. data/lib/karafka/web/pro/ui/controllers/dashboard_controller.rb +2 -10
  56. data/lib/karafka/web/pro/ui/controllers/dlq_controller.rb +2 -10
  57. data/lib/karafka/web/pro/ui/controllers/errors_controller.rb +3 -11
  58. data/lib/karafka/web/pro/ui/controllers/explorer/base_controller.rb +21 -0
  59. data/lib/karafka/web/pro/ui/controllers/explorer/explorer_controller.rb +215 -0
  60. data/lib/karafka/web/pro/ui/controllers/explorer/messages_controller.rb +145 -0
  61. data/lib/karafka/web/pro/ui/controllers/explorer/search_controller.rb +68 -0
  62. data/lib/karafka/web/pro/ui/controllers/health_controller.rb +2 -10
  63. data/lib/karafka/web/pro/ui/controllers/jobs_controller.rb +2 -10
  64. data/lib/karafka/web/pro/ui/controllers/recurring_tasks_controller.rb +12 -13
  65. data/lib/karafka/web/pro/ui/controllers/routing_controller.rb +2 -10
  66. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/base_controller.rb +2 -10
  67. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/explorer_controller.rb +8 -16
  68. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/messages_controller.rb +9 -15
  69. data/lib/karafka/web/pro/ui/controllers/scheduled_messages/schedules_controller.rb +2 -10
  70. data/lib/karafka/web/pro/ui/controllers/status_controller.rb +2 -10
  71. data/lib/karafka/web/pro/ui/controllers/support_controller.rb +2 -10
  72. data/lib/karafka/web/pro/ui/controllers/topics/base_controller.rb +21 -0
  73. data/lib/karafka/web/pro/ui/controllers/topics/configs_controller.rb +86 -0
  74. data/lib/karafka/web/pro/ui/controllers/topics/distributions_controller.rb +91 -0
  75. data/lib/karafka/web/pro/ui/controllers/topics/offsets_controller.rb +55 -0
  76. data/lib/karafka/web/pro/ui/controllers/topics/replications_controller.rb +37 -0
  77. data/lib/karafka/web/pro/ui/controllers/topics/topics_controller.rb +101 -0
  78. data/lib/karafka/web/pro/ui/controllers/ux_controller.rb +2 -10
  79. data/lib/karafka/web/pro/ui/lib/branding/config.rb +2 -10
  80. data/lib/karafka/web/pro/ui/lib/branding/contracts/config.rb +2 -10
  81. data/lib/karafka/web/pro/ui/lib/branding.rb +2 -10
  82. data/lib/karafka/web/pro/ui/lib/features.rb +53 -0
  83. data/lib/karafka/web/pro/ui/lib/patterns_detector.rb +2 -10
  84. data/lib/karafka/web/pro/ui/lib/policies/config.rb +2 -10
  85. data/lib/karafka/web/pro/ui/lib/policies/contracts/config.rb +2 -10
  86. data/lib/karafka/web/pro/ui/lib/policies/messages.rb +2 -10
  87. data/lib/karafka/web/pro/ui/lib/policies/requests.rb +2 -10
  88. data/lib/karafka/web/pro/ui/lib/policies.rb +2 -10
  89. data/lib/karafka/web/pro/ui/lib/safe_runner.rb +5 -0
  90. data/lib/karafka/web/pro/ui/lib/search/config.rb +2 -10
  91. data/lib/karafka/web/pro/ui/lib/search/contracts/config.rb +2 -10
  92. data/lib/karafka/web/pro/ui/lib/search/contracts/form.rb +2 -10
  93. data/lib/karafka/web/pro/ui/lib/search/matchers/base.rb +2 -10
  94. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_header_includes.rb +10 -11
  95. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_key_includes.rb +2 -10
  96. data/lib/karafka/web/pro/ui/lib/search/matchers/raw_payload_includes.rb +23 -11
  97. data/lib/karafka/web/pro/ui/lib/search/normalizer.rb +2 -10
  98. data/lib/karafka/web/pro/ui/lib/search/runner.rb +3 -11
  99. data/lib/karafka/web/pro/ui/lib/search.rb +2 -10
  100. data/lib/karafka/web/pro/ui/routes/base.rb +19 -0
  101. data/lib/karafka/web/pro/ui/routes/cluster.rb +37 -0
  102. data/lib/karafka/web/pro/ui/routes/consumers.rb +145 -0
  103. data/lib/karafka/web/pro/ui/routes/dashboard.rb +25 -0
  104. data/lib/karafka/web/pro/ui/routes/dlq.rb +24 -0
  105. data/lib/karafka/web/pro/ui/routes/errors.rb +39 -0
  106. data/lib/karafka/web/pro/ui/routes/explorer.rb +118 -0
  107. data/lib/karafka/web/pro/ui/routes/health.rb +47 -0
  108. data/lib/karafka/web/pro/ui/routes/jobs.rb +33 -0
  109. data/lib/karafka/web/pro/ui/routes/recurring_tasks.rb +59 -0
  110. data/lib/karafka/web/pro/ui/routes/routing.rb +31 -0
  111. data/lib/karafka/web/pro/ui/routes/scheduled_messages.rb +75 -0
  112. data/lib/karafka/web/pro/ui/routes/status.rb +24 -0
  113. data/lib/karafka/web/pro/ui/routes/support.rb +24 -0
  114. data/lib/karafka/web/pro/ui/routes/topics.rb +90 -0
  115. data/lib/karafka/web/pro/ui/routes/ux.rb +24 -0
  116. data/lib/karafka/web/pro/ui/views/cluster/_breadcrumbs.erb +3 -0
  117. data/lib/karafka/web/pro/ui/views/cluster/_broker.erb +3 -0
  118. data/lib/karafka/web/pro/ui/views/cluster/_config.erb +3 -0
  119. data/lib/karafka/web/pro/ui/views/cluster/_tabs.erb +3 -0
  120. data/lib/karafka/web/pro/ui/views/cluster/index.erb +4 -1
  121. data/lib/karafka/web/pro/ui/views/cluster/show.erb +3 -0
  122. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_backtrace.erb +3 -0
  123. data/lib/karafka/web/pro/ui/views/consumers/commands/_breadcrumbs.erb +24 -0
  124. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_command.erb +22 -6
  125. data/lib/karafka/web/pro/ui/views/consumers/commands/_command_details.erb +4 -0
  126. data/lib/karafka/web/pro/ui/views/consumers/commands/_empty.erb +6 -0
  127. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_incompatible_schema.erb +3 -0
  128. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_metadata.erb +4 -1
  129. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_table.erb +5 -2
  130. data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/index.erb +7 -4
  131. data/lib/karafka/web/pro/ui/views/consumers/commands/show.erb +32 -0
  132. data/lib/karafka/web/pro/ui/views/consumers/consumers/_breadcrumbs.erb +46 -0
  133. data/lib/karafka/web/pro/ui/views/consumers/consumers/_consumer.erb +59 -0
  134. data/lib/karafka/web/pro/ui/views/consumers/consumers/_consumer_performance.erb +71 -0
  135. data/lib/karafka/web/pro/ui/views/consumers/consumers/_tabs.erb +38 -0
  136. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_commands.erb +80 -0
  137. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_consumer_group.erb +11 -0
  138. data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_metrics.erb +3 -0
  139. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_no_subscriptions.erb +10 -0
  140. data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_partition.erb +16 -0
  141. data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_partition_edit_options.erb +33 -0
  142. data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_stopped.erb +3 -0
  143. data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_subscription_group.erb +7 -3
  144. data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_tabs.erb +7 -4
  145. data/lib/karafka/web/pro/ui/views/consumers/consumers/details.erb +15 -0
  146. data/lib/karafka/web/pro/ui/views/consumers/{index.erb → consumers/index.erb} +6 -3
  147. data/lib/karafka/web/pro/ui/views/consumers/{performance.erb → consumers/performance.erb} +6 -3
  148. data/lib/karafka/web/pro/ui/views/consumers/consumers/subscriptions.erb +24 -0
  149. data/lib/karafka/web/pro/ui/views/consumers/controls/_breadcrumbs.erb +16 -0
  150. data/lib/karafka/web/pro/ui/views/consumers/controls/_controls.erb +107 -0
  151. data/lib/karafka/web/pro/ui/views/consumers/{controls.erb → controls/index.erb} +8 -5
  152. data/lib/karafka/web/pro/ui/views/consumers/jobs/_breadcrumbs.erb +36 -0
  153. data/lib/karafka/web/pro/ui/views/consumers/{consumer → jobs}/_job.erb +3 -0
  154. data/lib/karafka/web/pro/ui/views/consumers/{consumer → jobs}/_no_jobs.erb +3 -0
  155. data/lib/karafka/web/pro/ui/views/consumers/{pending_jobs.erb → jobs/pending.erb} +7 -8
  156. data/lib/karafka/web/pro/ui/views/consumers/{running_jobs.erb → jobs/running.erb} +7 -8
  157. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_basics.erb +77 -0
  158. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_breadcrumbs.erb +58 -0
  159. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_form.erb +109 -0
  160. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_not_running_error.erb +16 -0
  161. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_running_warning.erb +15 -0
  162. data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/edit.erb +12 -0
  163. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_active_not_editable.erb +22 -0
  164. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_adjusting_warning.erb +27 -0
  165. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_breadcrumbs.erb +60 -0
  166. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_edit_form.erb +59 -0
  167. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_lrj_not_manageable.erb +24 -0
  168. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_new_form.erb +78 -0
  169. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_not_running.erb +16 -0
  170. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/edit.erb +20 -0
  171. data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/new.erb +16 -0
  172. data/lib/karafka/web/pro/ui/views/dashboard/index.erb +4 -1
  173. data/lib/karafka/web/pro/ui/views/dlq/_breadcrumbs.erb +3 -0
  174. data/lib/karafka/web/pro/ui/views/dlq/_no_topics.erb +3 -0
  175. data/lib/karafka/web/pro/ui/views/dlq/_topic.erb +4 -1
  176. data/lib/karafka/web/pro/ui/views/dlq/index.erb +3 -0
  177. data/lib/karafka/web/pro/ui/views/errors/_breadcrumbs.erb +3 -0
  178. data/lib/karafka/web/pro/ui/views/errors/_error.erb +3 -0
  179. data/lib/karafka/web/pro/ui/views/errors/_partition_option.erb +3 -0
  180. data/lib/karafka/web/pro/ui/views/errors/_selector.erb +3 -0
  181. data/lib/karafka/web/pro/ui/views/errors/_table.erb +4 -1
  182. data/lib/karafka/web/pro/ui/views/errors/index.erb +6 -3
  183. data/lib/karafka/web/pro/ui/views/errors/partition.erb +5 -2
  184. data/lib/karafka/web/pro/ui/views/errors/show.erb +3 -0
  185. data/lib/karafka/web/pro/ui/views/explorer/{_breadcrumbs.erb → explorer/_breadcrumbs.erb} +7 -4
  186. data/lib/karafka/web/pro/ui/views/explorer/{_failed_deserialization.erb → explorer/_failed_deserialization.erb} +3 -0
  187. data/lib/karafka/web/pro/ui/views/explorer/{_filtered.erb → explorer/_filtered.erb} +3 -0
  188. data/lib/karafka/web/pro/ui/views/explorer/{_message.erb → explorer/_message.erb} +4 -1
  189. data/lib/karafka/web/pro/ui/views/explorer/explorer/_no_topics.erb +4 -0
  190. data/lib/karafka/web/pro/ui/views/explorer/{_partition_option.erb → explorer/_partition_option.erb} +4 -1
  191. data/lib/karafka/web/pro/ui/views/explorer/{_selector.erb → explorer/_selector.erb} +4 -1
  192. data/lib/karafka/web/pro/ui/views/explorer/explorer/_topic.erb +13 -0
  193. data/lib/karafka/web/pro/ui/views/explorer/explorer/index.erb +17 -0
  194. data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_metadata.erb +10 -7
  195. data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_payload.erb +6 -3
  196. data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_resources_utilization.erb +7 -4
  197. data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_too_big_to_be_displayed.erb +3 -0
  198. data/lib/karafka/web/pro/ui/views/explorer/{messages → explorer/messages}/_detail.erb +3 -0
  199. data/lib/karafka/web/pro/ui/views/explorer/explorer/messages/_headers.erb +51 -0
  200. data/lib/karafka/web/pro/ui/views/explorer/{messages → explorer/messages}/_key.erb +3 -0
  201. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_cleaned.erb +6 -0
  202. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_empty.erb +6 -0
  203. data/lib/karafka/web/pro/ui/views/explorer/{partition → explorer/partition}/_messages.erb +4 -1
  204. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_time_selector.erb +16 -0
  205. data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_timestamp_selector.erb +33 -0
  206. data/lib/karafka/web/pro/ui/views/explorer/{partition.erb → explorer/partition.erb} +24 -17
  207. data/lib/karafka/web/pro/ui/views/explorer/{show.erb → explorer/show.erb} +17 -19
  208. data/lib/karafka/web/pro/ui/views/explorer/{topic → explorer/topic}/_actions.erb +5 -2
  209. data/lib/karafka/web/pro/ui/views/explorer/explorer/topic/_empty.erb +6 -0
  210. data/lib/karafka/web/pro/ui/views/explorer/{topic → explorer/topic}/_limited.erb +3 -0
  211. data/lib/karafka/web/pro/ui/views/explorer/{topic.erb → explorer/topic.erb} +7 -4
  212. data/lib/karafka/web/pro/ui/views/explorer/messages/_breadcrumbs.erb +32 -0
  213. data/lib/karafka/web/pro/ui/views/explorer/messages/forward.erb +143 -0
  214. data/lib/karafka/web/pro/ui/views/explorer/search/_breadcrumbs.erb +4 -0
  215. data/lib/karafka/web/pro/ui/views/explorer/search/_fix_errors.erb +6 -0
  216. data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_metadata.erb +3 -0
  217. data/lib/karafka/web/pro/ui/views/explorer/search/_no_results.erb +6 -0
  218. data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_no_search_criteria.erb +3 -0
  219. data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_search_criteria.erb +3 -0
  220. data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_search_modal.erb +5 -2
  221. data/lib/karafka/web/pro/ui/views/explorer/search/_timeout.erb +6 -0
  222. data/lib/karafka/web/pro/ui/views/explorer/search/index.erb +32 -0
  223. data/lib/karafka/web/pro/ui/views/health/_breadcrumbs.erb +3 -0
  224. data/lib/karafka/web/pro/ui/views/health/_no_data.erb +3 -0
  225. data/lib/karafka/web/pro/ui/views/health/_partition.erb +16 -1
  226. data/lib/karafka/web/pro/ui/views/health/_partition_lags.erb +3 -0
  227. data/lib/karafka/web/pro/ui/views/health/_partition_offset.erb +3 -0
  228. data/lib/karafka/web/pro/ui/views/health/_partition_times.erb +3 -0
  229. data/lib/karafka/web/pro/ui/views/health/_table_metadata.erb +4 -1
  230. data/lib/karafka/web/pro/ui/views/health/_tabs.erb +3 -0
  231. data/lib/karafka/web/pro/ui/views/health/changes.erb +4 -1
  232. data/lib/karafka/web/pro/ui/views/health/cluster_lags.erb +3 -0
  233. data/lib/karafka/web/pro/ui/views/health/lags.erb +5 -2
  234. data/lib/karafka/web/pro/ui/views/health/offsets.erb +4 -1
  235. data/lib/karafka/web/pro/ui/views/health/overview.erb +8 -3
  236. data/lib/karafka/web/pro/ui/views/jobs/_job.erb +50 -38
  237. data/lib/karafka/web/pro/ui/views/jobs/_no_jobs.erb +3 -0
  238. data/lib/karafka/web/pro/ui/views/jobs/pending.erb +4 -1
  239. data/lib/karafka/web/pro/ui/views/jobs/running.erb +4 -1
  240. data/lib/karafka/web/pro/ui/views/recurring_tasks/_actions.erb +3 -0
  241. data/lib/karafka/web/pro/ui/views/recurring_tasks/_batch_actions.erb +3 -0
  242. data/lib/karafka/web/pro/ui/views/recurring_tasks/_breadcrumbs.erb +3 -0
  243. data/lib/karafka/web/pro/ui/views/recurring_tasks/_log.erb +3 -0
  244. data/lib/karafka/web/pro/ui/views/recurring_tasks/_not_active.erb +3 -0
  245. data/lib/karafka/web/pro/ui/views/recurring_tasks/_tabs.erb +3 -0
  246. data/lib/karafka/web/pro/ui/views/recurring_tasks/_task.erb +3 -0
  247. data/lib/karafka/web/pro/ui/views/recurring_tasks/logs.erb +3 -0
  248. data/lib/karafka/web/pro/ui/views/recurring_tasks/schedule.erb +3 -0
  249. data/lib/karafka/web/pro/ui/views/routing/_consumer_group.erb +3 -0
  250. data/lib/karafka/web/pro/ui/views/routing/_detail.erb +3 -0
  251. data/lib/karafka/web/pro/ui/views/routing/_topic.erb +3 -0
  252. data/lib/karafka/web/pro/ui/views/routing/index.erb +3 -0
  253. data/lib/karafka/web/pro/ui/views/routing/show.erb +3 -0
  254. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_breadcrumbs.erb +6 -3
  255. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_key.erb +3 -0
  256. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_message.erb +4 -1
  257. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_messages.erb +3 -0
  258. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/partition.erb +23 -16
  259. data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/topic.erb +6 -3
  260. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_breadcrumbs.erb +3 -0
  261. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_no_groups.erb +3 -0
  262. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/index.erb +4 -1
  263. data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/show.erb +3 -0
  264. data/lib/karafka/web/pro/ui/views/shared/_navigation.erb +25 -17
  265. data/lib/karafka/web/pro/ui/views/shared/_rdkafka_form_error_alert_box.erb +16 -0
  266. data/lib/karafka/web/pro/ui/views/shared/branding/_label.erb +3 -0
  267. data/lib/karafka/web/pro/ui/views/shared/branding/_notice.erb +3 -0
  268. data/lib/karafka/web/pro/ui/views/topics/configs/_breadcrumbs.erb +34 -0
  269. data/lib/karafka/web/pro/ui/views/topics/configs/_config.erb +26 -0
  270. data/lib/karafka/web/pro/ui/views/topics/configs/_delete_button.erb +13 -0
  271. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_form.erb +50 -0
  272. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_plan.erb +16 -0
  273. data/lib/karafka/web/pro/ui/views/topics/configs/_edit_warning.erb +12 -0
  274. data/lib/karafka/web/pro/ui/views/topics/configs/edit.erb +16 -0
  275. data/lib/karafka/web/pro/ui/views/topics/{config.erb → configs/index.erb} +9 -3
  276. data/lib/karafka/web/pro/ui/views/topics/distributions/_add_partitions_button.erb +13 -0
  277. data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_badges.erb +3 -0
  278. data/lib/karafka/web/pro/ui/views/topics/distributions/_breadcrumbs.erb +28 -0
  279. data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_chart.erb +3 -0
  280. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_form.erb +47 -0
  281. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_hints.erb +15 -0
  282. data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_warnings.erb +14 -0
  283. data/lib/karafka/web/pro/ui/views/topics/distributions/_empty_partitions.erb +4 -0
  284. data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_limited.erb +3 -0
  285. data/lib/karafka/web/pro/ui/views/topics/distributions/_partition.erb +13 -0
  286. data/lib/karafka/web/pro/ui/views/topics/distributions/edit.erb +16 -0
  287. data/lib/karafka/web/pro/ui/views/topics/{distribution.erb → distributions/show.erb} +11 -7
  288. data/lib/karafka/web/pro/ui/views/topics/offsets/_breadcrumbs.erb +20 -0
  289. data/lib/karafka/web/pro/ui/views/topics/offsets/_partition.erb +13 -0
  290. data/lib/karafka/web/pro/ui/views/topics/{offsets.erb → offsets/show.erb} +6 -3
  291. data/lib/karafka/web/pro/ui/views/topics/replications/_breadcrumbs.erb +20 -0
  292. data/lib/karafka/web/pro/ui/views/topics/{_partition.erb → replications/_partition.erb} +4 -1
  293. data/lib/karafka/web/pro/ui/views/topics/{replication.erb → replications/show.erb} +6 -3
  294. data/lib/karafka/web/pro/ui/views/topics/topics/_breadcrumbs.erb +32 -0
  295. data/lib/karafka/web/pro/ui/views/topics/topics/_create_button.erb +13 -0
  296. data/lib/karafka/web/pro/ui/views/topics/topics/_create_hints.erb +15 -0
  297. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_form.erb +36 -0
  298. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_hints.erb +15 -0
  299. data/lib/karafka/web/pro/ui/views/topics/topics/_delete_warning.erb +13 -0
  300. data/lib/karafka/web/pro/ui/views/topics/topics/_new_form.erb +80 -0
  301. data/lib/karafka/web/pro/ui/views/topics/{_tabs.erb → topics/_tabs.erb} +7 -4
  302. data/lib/karafka/web/pro/ui/views/topics/topics/_topic.erb +12 -0
  303. data/lib/karafka/web/pro/ui/views/topics/topics/edit.erb +10 -0
  304. data/lib/karafka/web/pro/ui/views/topics/topics/index.erb +19 -0
  305. data/lib/karafka/web/pro/ui/views/topics/topics/new.erb +12 -0
  306. data/lib/karafka/web/processing/consumers/metrics.rb +1 -1
  307. data/lib/karafka/web/processing/consumers/state.rb +1 -1
  308. data/lib/karafka/web/processing/publisher.rb +4 -4
  309. data/lib/karafka/web/tracking/consumers/contracts/partition.rb +1 -0
  310. data/lib/karafka/web/tracking/consumers/listeners/pausing.rb +2 -2
  311. data/lib/karafka/web/tracking/consumers/listeners/transactions.rb +44 -0
  312. data/lib/karafka/web/tracking/consumers/reporter.rb +2 -2
  313. data/lib/karafka/web/tracking/consumers/sampler.rb +81 -14
  314. data/lib/karafka/web/tracking/helpers/sysconf.rb +33 -0
  315. data/lib/karafka/web/tracking/producers/reporter.rb +1 -1
  316. data/lib/karafka/web/ui/app.rb +19 -112
  317. data/lib/karafka/web/ui/base.rb +63 -4
  318. data/lib/karafka/web/ui/controllers/base_controller.rb +43 -1
  319. data/lib/karafka/web/ui/controllers/cluster_controller.rb +5 -2
  320. data/lib/karafka/web/ui/controllers/errors_controller.rb +1 -1
  321. data/lib/karafka/web/ui/controllers/requests/execution_wrapper.rb +52 -0
  322. data/lib/karafka/web/ui/controllers/requests/hookable.rb +99 -0
  323. data/lib/karafka/web/ui/controllers/requests/params.rb +39 -1
  324. data/lib/karafka/web/ui/controllers/responses/redirect.rb +0 -5
  325. data/lib/karafka/web/ui/controllers/status_controller.rb +3 -0
  326. data/lib/karafka/web/ui/helpers/application_helper.rb +10 -1
  327. data/lib/karafka/web/ui/helpers/paths_helper.rb +54 -10
  328. data/lib/karafka/web/ui/lib/admin.rb +1 -1
  329. data/lib/karafka/web/ui/lib/cache.rb +135 -0
  330. data/lib/karafka/web/ui/models/broker.rb +1 -2
  331. data/lib/karafka/web/ui/models/cluster_info.rb +15 -21
  332. data/lib/karafka/web/ui/models/consumers_metrics.rb +1 -1
  333. data/lib/karafka/web/ui/models/consumers_state.rb +1 -1
  334. data/lib/karafka/web/ui/models/counters.rb +1 -1
  335. data/lib/karafka/web/ui/models/health.rb +9 -7
  336. data/lib/karafka/web/ui/models/process.rb +14 -0
  337. data/lib/karafka/web/ui/models/processes.rb +2 -2
  338. data/lib/karafka/web/ui/models/recurring_tasks/schedule.rb +1 -1
  339. data/lib/karafka/web/ui/models/status.rb +27 -8
  340. data/lib/karafka/web/ui/models/topic.rb +1 -2
  341. data/lib/karafka/web/ui/public/javascripts/application.js +8 -98
  342. data/lib/karafka/web/ui/public/javascripts/application.min.js +12 -4
  343. data/lib/karafka/web/ui/public/javascripts/application.min.js.br +0 -0
  344. data/lib/karafka/web/ui/public/javascripts/application.min.js.gz +0 -0
  345. data/lib/karafka/web/ui/public/javascripts/components/action_confirmation_manager.js +30 -0
  346. data/lib/karafka/web/ui/public/javascripts/components/alerts.js +39 -0
  347. data/lib/karafka/web/ui/public/javascripts/components/button_lock_manager.js +50 -0
  348. data/lib/karafka/web/ui/public/javascripts/components/live_poll.js +71 -19
  349. data/lib/karafka/web/ui/public/javascripts/components/message_republish_manager.js +50 -0
  350. data/lib/karafka/web/ui/public/javascripts/components/page_title_tracker.js +21 -0
  351. data/lib/karafka/web/ui/public/javascripts/components/partition_redirect_manager.js +21 -0
  352. data/lib/karafka/web/ui/public/javascripts/components/time_ago_manager.js +25 -0
  353. data/lib/karafka/web/ui/public/javascripts/components/timestamp_selector.js +30 -0
  354. data/lib/karafka/web/ui/public/javascripts/libs/datepicker.js +2 -2
  355. data/lib/karafka/web/ui/public/stylesheets/application.css +30 -0
  356. data/lib/karafka/web/ui/public/stylesheets/application.min.css +5122 -13
  357. data/lib/karafka/web/ui/public/stylesheets/application.min.css.br +0 -0
  358. data/lib/karafka/web/ui/public/stylesheets/application.min.css.gz +0 -0
  359. data/lib/karafka/web/ui/public/stylesheets/libs/highlight_dark.min.css.gz +0 -0
  360. data/lib/karafka/web/ui/public/stylesheets/libs/highlight_light.min.css.gz +0 -0
  361. data/lib/karafka/web/ui/public/stylesheets/libs/tailwind.css +512 -213
  362. data/lib/karafka/web/ui/routes/assets.rb +53 -0
  363. data/lib/karafka/web/ui/routes/base.rb +36 -0
  364. data/lib/karafka/web/ui/routes/cluster.rb +28 -0
  365. data/lib/karafka/web/ui/routes/consumers.rb +35 -0
  366. data/lib/karafka/web/ui/routes/dashboard.rb +20 -0
  367. data/lib/karafka/web/ui/routes/errors.rb +26 -0
  368. data/lib/karafka/web/ui/routes/jobs.rb +28 -0
  369. data/lib/karafka/web/ui/routes/pro_only.rb +27 -0
  370. data/lib/karafka/web/ui/routes/routing.rb +26 -0
  371. data/lib/karafka/web/ui/routes/status.rb +19 -0
  372. data/lib/karafka/web/ui/routes/support.rb +19 -0
  373. data/lib/karafka/web/ui/routes/ux.rb +19 -0
  374. data/lib/karafka/web/ui/views/cluster/_partition.erb +2 -2
  375. data/lib/karafka/web/ui/views/cluster/brokers.erb +1 -1
  376. data/lib/karafka/web/ui/views/consumers/_breadcrumbs.erb +7 -1
  377. data/lib/karafka/web/ui/views/consumers/_consumer.erb +39 -30
  378. data/lib/karafka/web/ui/views/consumers/_incompatible.erb +13 -0
  379. data/lib/karafka/web/ui/views/consumers/_no_consumers.erb +2 -2
  380. data/lib/karafka/web/ui/views/consumers/_tabs.erb +4 -4
  381. data/lib/karafka/web/ui/views/consumers/index.erb +1 -1
  382. data/lib/karafka/web/ui/views/dashboard/_feature_pro.erb +1 -1
  383. data/lib/karafka/web/ui/views/dashboard/_not_enough_data.erb +2 -2
  384. data/lib/karafka/web/ui/views/dashboard/_ranges_selector.erb +1 -1
  385. data/lib/karafka/web/ui/views/dashboard/index.erb +6 -49
  386. data/lib/karafka/web/ui/views/errors/_detail.erb +3 -3
  387. data/lib/karafka/web/ui/views/errors/index.erb +1 -1
  388. data/lib/karafka/web/ui/views/jobs/_job.erb +38 -29
  389. data/lib/karafka/web/ui/views/jobs/pending.erb +1 -1
  390. data/lib/karafka/web/ui/views/jobs/running.erb +1 -1
  391. data/lib/karafka/web/ui/views/layout.erb +7 -5
  392. data/lib/karafka/web/ui/views/shared/_become_pro.erb +1 -1
  393. data/lib/karafka/web/ui/views/shared/_brand.erb +1 -1
  394. data/lib/karafka/web/ui/views/shared/_breadcrumbs.erb +1 -1
  395. data/lib/karafka/web/ui/views/shared/_content.erb +1 -1
  396. data/lib/karafka/web/ui/views/shared/_controls.erb +10 -3
  397. data/lib/karafka/web/ui/views/shared/_custom_nav.erb +9 -0
  398. data/lib/karafka/web/ui/views/shared/_flashes.erb +3 -5
  399. data/lib/karafka/web/ui/views/shared/_header.erb +25 -2
  400. data/lib/karafka/web/ui/views/shared/_navigation.erb +17 -15
  401. data/lib/karafka/web/ui/views/shared/alerts/_error.erb +8 -0
  402. data/lib/karafka/web/ui/views/shared/alerts/_info.erb +8 -0
  403. data/lib/karafka/web/ui/views/shared/alerts/_primary.erb +8 -0
  404. data/lib/karafka/web/ui/views/shared/alerts/_secondary.erb +8 -0
  405. data/lib/karafka/web/ui/views/shared/alerts/_success.erb +8 -0
  406. data/lib/karafka/web/ui/views/shared/alerts/_warning.erb +8 -0
  407. data/lib/karafka/web/ui/views/shared/exceptions/incompatible_schema.erb +34 -0
  408. data/lib/karafka/web/ui/views/shared/exceptions/not_allowed.erb +4 -0
  409. data/lib/karafka/web/ui/views/shared/exceptions/not_found.erb +5 -1
  410. data/lib/karafka/web/ui/views/shared/exceptions/pro_only.erb +4 -0
  411. data/lib/karafka/web/ui/views/shared/icons/_arrow_left.erb +3 -0
  412. data/lib/karafka/web/ui/views/shared/icons/_arrow_up_tray.erb +3 -0
  413. data/lib/karafka/web/ui/views/shared/icons/_clock.erb +3 -0
  414. data/lib/karafka/web/ui/views/shared/icons/_pencil.erb +3 -0
  415. data/lib/karafka/web/ui/views/shared/icons/_pencil_square.erb +3 -0
  416. data/lib/karafka/web/ui/views/shared/icons/_play_pause.erb +3 -0
  417. data/lib/karafka/web/ui/views/shared/icons/_plus.erb +3 -0
  418. data/lib/karafka/web/ui/views/shared/icons/_trash.erb +3 -0
  419. data/lib/karafka/web/ui/views/status/failures/_live_reporting.erb +1 -1
  420. data/lib/karafka/web/ui/views/status/failures/_partitions.erb +3 -3
  421. data/lib/karafka/web/ui/views/status/failures/_state_calculation.erb +2 -2
  422. data/lib/karafka/web/ui/views/status/info/_components.erb +6 -6
  423. data/lib/karafka/web/ui/views/status/show.erb +15 -0
  424. data/lib/karafka/web/ui/views/status/warnings/_consumers_schemas.erb +31 -0
  425. data/lib/karafka/web/ui/views/ux/_icons.erb +1 -1
  426. data/lib/karafka/web/ui/views/ux/_status_rows.erb +6 -0
  427. data/lib/karafka/web/version.rb +1 -1
  428. data/lib/karafka/web.rb +3 -0
  429. data/package-lock.json +776 -1208
  430. data/package.json +3 -4
  431. data/postcss.config.js +1 -2
  432. data/renovate.json +13 -1
  433. data/tailwind.config.js +0 -4
  434. data.tar.gz.sig +0 -0
  435. metadata +232 -108
  436. metadata.gz.sig +0 -0
  437. data/lib/karafka/web/pro/commanding/commands/quiet.rb +0 -34
  438. data/lib/karafka/web/pro/commanding/commands/stop.rb +0 -34
  439. data/lib/karafka/web/pro/commanding/commands/trace.rb +0 -41
  440. data/lib/karafka/web/pro/ui/controllers/commanding_controller.rb +0 -118
  441. data/lib/karafka/web/pro/ui/controllers/commands_controller.rb +0 -96
  442. data/lib/karafka/web/pro/ui/controllers/consumers_controller.rb +0 -138
  443. data/lib/karafka/web/pro/ui/controllers/explorer_controller.rb +0 -220
  444. data/lib/karafka/web/pro/ui/controllers/messages_controller.rb +0 -107
  445. data/lib/karafka/web/pro/ui/controllers/search_controller.rb +0 -73
  446. data/lib/karafka/web/pro/ui/controllers/topics_controller.rb +0 -130
  447. data/lib/karafka/web/pro/ui/views/commands/_breadcrumbs.erb +0 -21
  448. data/lib/karafka/web/pro/ui/views/commands/_command_details.erb +0 -1
  449. data/lib/karafka/web/pro/ui/views/commands/_empty.erb +0 -3
  450. data/lib/karafka/web/pro/ui/views/commands/show.erb +0 -33
  451. data/lib/karafka/web/pro/ui/views/consumers/_breadcrumbs.erb +0 -55
  452. data/lib/karafka/web/pro/ui/views/consumers/_consumer.erb +0 -47
  453. data/lib/karafka/web/pro/ui/views/consumers/_consumer_controls.erb +0 -95
  454. data/lib/karafka/web/pro/ui/views/consumers/_consumer_performance.erb +0 -59
  455. data/lib/karafka/web/pro/ui/views/consumers/_tabs.erb +0 -33
  456. data/lib/karafka/web/pro/ui/views/consumers/consumer/_commands.erb +0 -72
  457. data/lib/karafka/web/pro/ui/views/consumers/consumer/_consumer_group.erb +0 -8
  458. data/lib/karafka/web/pro/ui/views/consumers/consumer/_no_subscriptions.erb +0 -7
  459. data/lib/karafka/web/pro/ui/views/consumers/details.erb +0 -13
  460. data/lib/karafka/web/pro/ui/views/consumers/subscriptions.erb +0 -25
  461. data/lib/karafka/web/pro/ui/views/explorer/_no_topics.erb +0 -1
  462. data/lib/karafka/web/pro/ui/views/explorer/_topic.erb +0 -10
  463. data/lib/karafka/web/pro/ui/views/explorer/index.erb +0 -14
  464. data/lib/karafka/web/pro/ui/views/explorer/messages/_headers.erb +0 -33
  465. data/lib/karafka/web/pro/ui/views/explorer/partition/_cleaned.erb +0 -3
  466. data/lib/karafka/web/pro/ui/views/explorer/partition/_empty.erb +0 -3
  467. data/lib/karafka/web/pro/ui/views/explorer/topic/_empty.erb +0 -3
  468. data/lib/karafka/web/pro/ui/views/search/_breadcrumbs.erb +0 -1
  469. data/lib/karafka/web/pro/ui/views/search/_fix_errors.erb +0 -3
  470. data/lib/karafka/web/pro/ui/views/search/_no_results.erb +0 -3
  471. data/lib/karafka/web/pro/ui/views/search/_timeout.erb +0 -3
  472. data/lib/karafka/web/pro/ui/views/search/index.erb +0 -29
  473. data/lib/karafka/web/pro/ui/views/topics/_breadcrumbs.erb +0 -45
  474. data/lib/karafka/web/pro/ui/views/topics/_partition_offsets.erb +0 -10
  475. data/lib/karafka/web/pro/ui/views/topics/_topic.erb +0 -9
  476. data/lib/karafka/web/pro/ui/views/topics/distribution/_empty_partitions.erb +0 -1
  477. data/lib/karafka/web/pro/ui/views/topics/distribution/_partition.erb +0 -10
  478. data/lib/karafka/web/pro/ui/views/topics/index.erb +0 -14
  479. data/lib/karafka/web/ui/lib/ttl_cache.rb +0 -82
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13c431e0fa6d1b8927bd419298bc0ea522f0e823f91197fe989f72a9a08479ad
4
- data.tar.gz: 6424f804a013bc34d1393fa79962cfacab6e6d5028726b7e90e93ada457b7a48
3
+ metadata.gz: 70c1492ea1073bf499055b4a6db1090e8fede2fd6a89d0fca7c5085669170863
4
+ data.tar.gz: 52cffaec446f588e4c3508e9b4085f7e911b68961cd2430406bd7c5b49a99f74
5
5
  SHA512:
6
- metadata.gz: e3ccb77dcf9624e1ca23473a963ea59cd8efc227feae098c7a80898b45c573eb70b564fd963abc6d3b0dd01a4b9e0577c1708bc2904afa6c5523360fc3880362
7
- data.tar.gz: 60f20e2ed98fb8818164157e91ce117c5fb2d6b60f5c1371abef787f0f637269f27ed378a0ca8ffe7e95c43defddfc4749cfe1c06cbf905c8e591f8b171c2c36
6
+ metadata.gz: 9a766d94df43a6f8bf61c2331d48ef21bd1e26860123268441838ce75cc298d0f957d459ff2d6c180acca01b90bb3bf6199554b5abbb74d6255f2d57aac95948
7
+ data.tar.gz: 0b8fbeef52a71372088d8d2d24420e5336028ab9a443c5b537ebb55d1faf61a2cb4f69f855c91421175c277a0a2e5192aac39586673493a3a14eabf15cc6fa5d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Karafka Web Changelog
2
2
 
3
+ ## 0.11.0 (Unreleased)
4
+ - **[Feature]** Provide ability to pause/resume partitions on running consumers via the UI (Pro).
5
+ - **[Feature]** Provide ability to edit offsets of running consumers (Pro).
6
+ - **[Feature]** Support consumers that have mismatching schema.
7
+ - **[Feature]** Provide ability to navigate to a timestamp in the Explorer (Pro).
8
+ - **[Feature]** Provide ability to create and delete topics from the Web UI (Pro).
9
+ - **[Feature]** Provide ability to manage topics configuration from the Web UI (Pro).
10
+ - **[Feature]** Provide ability to manage topics partitioning from the Web UI (Pro).
11
+ - **[Feature]** Provide ability to inject custom CSS and JS to adjust the Web UI.
12
+ - [Enhancement] Support KIP-82 (header values of arrays).
13
+ - [Enhancement] Include crawl-based link validator to the CI to ensure no dead links are generated.
14
+ - [Enhancement] Allow for custom links in the navigation (Pro).
15
+ - [Enhancement] Optimize topic specific lookups (Pro).
16
+ - [Enhancement] Replace simple in-process metadata cache with user tracking version for multi-process deployments improvements.
17
+ - [Enhancement] Move web ui topics configuration into config.
18
+ - [Enhancement] Upgrade DaisyUI to 5.0 and Tailwind to 4.0.
19
+ - [Enhancement] Make consumer sampler/stats gathering compatible across debian/alpine/wolfi OSes (chen-anders)
20
+ - [Enhancement] Promote consumers lags statistics chart to OSS.
21
+ - [Enhancement] Promote consumers RSS statistics chart to OSS.
22
+ - [Enhancement] Remove state cache usage that complicated ability to manage topics.
23
+ - [Enhancement] Improve flash messages.
24
+ - [Enhancement] Improve handling of post-submit redirects.
25
+ - [Enhancement] Provide better support for fully transactional consumers.
26
+ - [Enhancement] Error out when `#setup` is called after `#enable!`.
27
+ - [Enhancement] Use more performant Kafka API calls to describe topics.
28
+ - [Enhancement] Inject `.action-NAME` and `.controller-NAME` body classes for usage with custom CSS and JS.
29
+ - [Enhancement] Improve error handling in the commanding iterator listener (Pro).
30
+ - [Change] Do not fully hide config-disabled features but make them disabled.
31
+ - [Change] Remove per-consumer process duplicated details from Subscriptions and Jobs tabs.
32
+ - [Refactor] Make sure all temporary topics have a `it-` prefix in their name.
33
+ - [Refactor] Introduce a `bin/verify_topics_naming` script to ensure proper test topics naming convention.
34
+ - [Fix] Closest time based lookup redirect fails.
35
+ - [Fix] Fi incorrect error type in commanding listener from `web.controlling.controller.error` to `web.commanding.listener.error` (Pro).
36
+ - [Fix] Topic named messages collides with the explorer routes.
37
+ - [Fix] Fix a case where live poll button enabling would not immediately start refreshes.
38
+ - [Fix] Fix negative message deserialization allocation stats.
39
+ - [Fix] Fix incorrect background color in some of the alert notices.
40
+ - [Fix] Support dark mode in error pages.
41
+ - [Fix] Fix incorrect names in some of the tables headers.
42
+ - [Fix] Normalize position of commanding buttons in regards to other UI elements.
43
+ - [Fix] Fix incorrect indentation of some of the info messages.
44
+ - [Fix] Fix tables headers inconsistent alignments.
45
+ - [Fix] Fix incorrect warning box header color in the dark mode.
46
+ - [Fix] Fix missing breadcrumbs on the consumers overview page.
47
+ - [Fix] Fix a case where disabled buttons would be enabled back too early.
48
+ - [Fix] The recent page breadcrumbs and offset id are not refreshed on change.
49
+ - [Fix] Direct URL access with too big partition causes librdkafka crash.
50
+ - [Fix] Fix incorrect breadcrumbs for pending consumer jobs.
51
+ - [Fix] Allow for using default search matchers in Karafka Web UI topics including Errors.
52
+ - [Fix] Ensure that when flashes or alerts are visible, pages are not auto-refreshed (would cause them to dissapear).
53
+ - [Fix] Time selector in the explorer does not disappear after clicking out.
54
+ - [Maintenance] Require `karafka-core` `>= 2.4.8` and `karafka` `>= 2.4.16`.
55
+ - [Maintenance] Update `AirDatepicker` to `3.6.0`.
56
+
3
57
  ## 0.10.4 (2024-11-26)
4
58
  - **[Breaking]** Drop Ruby `3.0` support according to the EOL schedule.
5
59
  - [Enhancement] Extract producers tracking `sync_threshold` into an internal config.
@@ -88,39 +142,6 @@
88
142
  - [Fix] License identifier `LGPL-3.0` is deprecated for SPDX (#2177).
89
143
  - [Fix] Do not include prettifying the payload for visibility in the resource computation cost.
90
144
 
91
- ### Upgrade Notes
92
-
93
- This is a **major** release that brings many things to the table.
94
-
95
- This version of the Karafka Web UI requires Karafka `>= 2.4.7`. You can either upgrade both or upgrade Karafka first and then the Web UI. Karafka `2.4.7` is also compatible with Web UI `0.9.1`; thus, you can upgrade one at a time.
96
-
97
- #### Configuration
98
-
99
- Visibility Filters have been reorganized into messages policies.
100
-
101
- Please read the [Policies API](https://karafka.io/docs/Pro-Web-UI-Policies/) documentation and convert your visibility filters to policies.
102
-
103
- Your existing message-related visibility filter policies should now be assigned to a new configuration:
104
-
105
- ```ruby
106
- Karafka::Web.setup do |config|
107
- config.ui.policies.messages = MyCustomRequestsPolicy.new
108
- end
109
- ```
110
-
111
- #### Deployment
112
-
113
- Because of the reporting schema update, it is recommended to:
114
-
115
- 0. Make sure you have upgraded to `0.9.1` before and that it was fully deployed.
116
- 1. Test the upgrade on a staging or dev environment.
117
- 3. The Web UI interface may throw 500 errors during the upgrade because of schema incompatibility (until Puma is deployed and all consumers redeployed). This will have no long-term effects and can be ignored.
118
- 4. `Karafka::Web::Errors::Processing::IncompatibleSchemaError` **is expected**. It is part of the Karafka Web UI zero-downtime deployment strategy. This error allows the Web UI materialization consumer to back off and wait for it to be replaced with a new one.
119
- 5. Perform a rolling deployment (or a regular one) and replace all consumer processes.
120
- 6. Update the Web UI Puma.
121
- 7. **No** CLI command execution is required.
122
- 8. Enjoy.
123
-
124
145
  ## 0.9.1 (2024-05-03)
125
146
  - [Fix] OSS `lag_stored` for not-subscribed consumers causes Web UI to crash.
126
147
 
@@ -158,12 +179,6 @@ Because of the reporting schema update, it is recommended to:
158
179
  - [Fix] Fix dangling `console.log`.
159
180
  - [Fix] Fix a case where consumer assignments would not be truncated on the consumers view.
160
181
 
161
- ### Upgrade Notes
162
-
163
- This is a **major** release that brings many things to the table.
164
-
165
- This version of the Karafka Web UI should be upgraded together with Karafka. All upgrade documentation for Karafka and Web UI `0.9` can be found [here](https://karafka.io/docs/Upgrades-2.4/).
166
-
167
182
  ## 0.8.2 (2024-02-16)
168
183
  - [Enhancement] Defer scheduler background thread creation until needed allowing for forks.
169
184
  - [Enhancement] Tag forks with fork indication + ppid reference when operating in swarm.
@@ -212,28 +227,6 @@ This version of the Karafka Web UI should be upgraded together with Karafka. All
212
227
  - [Change] Rename "Active subscriptions" to "Subscriptions" as process subscriptions are always active.
213
228
  - [Maintenance] Introduce granular subscription group contracts.
214
229
 
215
- ### Upgrade Notes
216
-
217
- This is a **major** release that brings many things to the table.
218
-
219
- #### Configuration
220
-
221
- **No** configuration changes are needed.
222
-
223
- #### Deployment
224
-
225
- Because of the reporting schema update, it is recommended to:
226
-
227
- 0. Make sure you have upgraded to `0.7.10` before and that it was fully deployed.
228
- 1. Test the upgrade on a staging or dev environment.
229
- 2. Starting from `0.7.0` Karafka Web UI supports rolling deploys, so there is no need to "stop the world".
230
- 3. The Web UI interface may throw 500 errors during the upgrade because of schema incompatibility (until Puma is deployed). This will have no long-term effects and can be ignored.
231
- 4. `Karafka::Web::Errors::Processing::IncompatibleSchemaError` **is expected**. It is part of the Karafka Web UI zero-downtime deployment strategy. This error allows the Web UI materialization consumer to back off and wait for it to be replaced with a new one.
232
- 5. Perform a rolling deployment (or a regular one) and replace all consumer processes.
233
- 6. Update the Web UI Puma.
234
- 7. **No** CLI command execution is required. Starting from this release (`0.8.0`), the Karafka Web UI contains an automatic schema migrator that allows it to automatically adjust internal topic data formats.
235
- 8. Enjoy.
236
-
237
230
  ## 0.7.10 (2023-10-31)
238
231
  - [Fix] Max LSO chart does not work as expected (#201)
239
232
 
@@ -265,14 +258,6 @@ Because of the reporting schema update, it is recommended to:
265
258
  - [Maintenance] Include license and copyrights notice for `timeago.js` that was missing in the JS min file.
266
259
  - [Refactor] Rename `ui.show_internal_topics` to `ui.visibility.internal_topics_display`
267
260
 
268
- ### Upgrade Notes
269
-
270
- **NO** rolling upgrade needed. Just configuration update.
271
-
272
- 1. If you are using `ui.visibility_filter` this option is now `ui.visibility.filter` (yes, only `.` difference).
273
- 2. If you are using a custom visibility filter, it requires now two extra methods: `#download?` and `#export?`. The default visibility filter allows both actions unless message is encrypted.
274
- 3. `ui.show_internal_topics` config option has been moved and renamed to `ui.visibility.internal_topics`.
275
-
276
261
  ## 0.7.4 (2023-09-19)
277
262
  - [Improvement] Skip aggregations on older schemas during upgrades. This only skips process-reports (that are going to be rolled) on the 5s window in case of an upgrade that should not be a rolling one anyhow. This simplifies the operations and minimizes the risk on breaking upgrades.
278
263
  - [Fix] Fix not working `ps` for macOS.
@@ -367,48 +352,6 @@ Because of the reporting schema update, it is recommended to:
367
352
  - [Refactor] Use Roda `custom_block_results` plugin for controllers results handling.
368
353
  - [Maintenance] Require `karafka` `2.2.0` due to fixes in the Iterator API and routing API extensions.
369
354
 
370
- ### Upgrade Notes
371
-
372
- This is a **major** release that brings many things to the table.
373
-
374
- #### Configuration
375
-
376
- Karafka Web UI now relies on Roda session management. Please configure the `ui.sessions.secret` key with a secret value string of at least 64 characters:
377
-
378
- ```ruby
379
- # Configure it BEFORE enabling
380
- Karafka::Web.setup do |config|
381
- # REPLACE THIS with your own value. You can use `SecureRandom.hex(64)` to generate it
382
- # You may want to set it per ENV
383
- config.ui.sessions.secret = 'REPLACE ME! b94b2215cc66371f2c34b7d0c0df1a010f83ca45 REPLACE ME!'
384
- end
385
-
386
- Karafka::Web.enable!
387
- ```
388
-
389
- #### Deployment
390
-
391
- Because of the reporting schema update and new web-ui topics introduction, it is recommended to:
392
-
393
- 0. Make sure you have upgraded to `0.6.3` before and that it was deployed. To all the environments you want to migrate to `0.7.0`.
394
- 1. Upgrade the codebase based on the below details.
395
- 2. **Stop** the consumer materializing Web-UI. Unless you are running a Web-UI dedicated consumer as recommended [here](https://karafka.io/docs/Web-UI-Development-vs-Production/), you will have to stop all the consumers. This is **crucial** because of schema changes. `karafka-web` `0.7.0` introduces the detection of schema changes, so this step should not be needed in the future.
396
- 3. Run a migration command: `bundle exec karafka-web migrate` that will create missing states and missing topics. You **need** to run it for each of the environments where you use Karafka Web UI.
397
- 4. Deploy **all** the Karafka consumer processes (`karafka server`).
398
- 5. Deploy the Web update to your web server and check that everything is OK by visiting the status page.
399
-
400
- Please note that if you decide to use the updated Web UI with not updated consumers, you may hit a 500 error, or offset-related data may not be displayed correctly.
401
-
402
- #### Code and API changes
403
-
404
- 1. `bundle exec karafka-web install` is now a single-purpose command that should run **only** when installing the Web-UI for the first time.
405
- 2. For creating needed topics and states per environment and during upgrades, please use the newly introduced non-destructive `bundle exec karafka-web migrate`. It will assess changes required and will apply only those.
406
- 3. Is no longer`ui.decrypt` has been replaced with `ui.visibility_filter` API. This API by default also does not decrypt data. To change this behavior, please implement your visibility filter as presented in our documentation.
407
- 4. Karafka Web UI `0.7.0` introduces an in-memory topics cache for some views. This means that rapid topics changes (repartitions/new topics) may be visible up to 5 minutes after those changes.
408
- 3. `ui.decrypt` setting has been replaced with `ui.visibility_filter` API. This API by default also does not decrypt data. To change this behavior, please implement your visibility filter as presented in our documentation.
409
- 4. Karafka Web-UI `0.7.0` introduces an in-memory topics cache for some views. This means that rapid topics changes (repartitions/new topics) may be visible up to 5 minutes after those changes.
410
- 5. Karafka Web UI requires now a new topic called `karafka_consumers_metrics`. If you use strict topic creation and ACL policies, please make sure it exists and that Karafka can both read and write to it.
411
-
412
355
  ## 0.6.3 (2023-07-22)
413
356
  - [Fix] Remove files from 0.7.0 accidentally added to the release.
414
357
 
@@ -446,38 +389,6 @@ Please note that if you decide to use the updated Web UI with not updated consum
446
389
  - [Refactor] Remove not used and redundant partials.
447
390
  - [Maintenance] Require `karafka` `2.1.4` due to fixes in metrics usage for workless flows.
448
391
 
449
- ### Upgrade Notes
450
-
451
- Because of the reporting schema update, it is recommended to:
452
-
453
- - First, deploy **all** the Karafka consumer processes (`karafka server`)
454
- - Deploy the Web update to your web server.
455
-
456
- Please note that if you decide to use the updated Web UI with not updated consumers, you may hit a 500 error or offset related data may not be displayed correctly.
457
-
458
- #### Disabling producers instrumentation
459
-
460
- Producers error tracking **is** enabled by default. If you want to opt out of it, you need to disable the producers' instrumentation by clearing the producers' listeners:
461
-
462
- ```ruby
463
- Karafka::Web.setup do |config|
464
- # Do not instrument producers with web-ui listeners
465
- config.tracking.producers.listeners = []
466
- end
467
- ```
468
-
469
- #### Custom producers instrumentation
470
-
471
- By default, Karafka Web-UI instruments only `Karafka.producer`. If you use producers initialized by yourself, you need to connect the listeners to them manually. To do so, run the following code:
472
-
473
- ```ruby
474
- ::Karafka::Web.config.tracking.producers.listeners.each do |listener|
475
- MY_CUSTOM_PRODUCER.monitor.subscribe(listener)
476
- end
477
- ```
478
-
479
- Please make sure **not** to do it for the default `Karafka.producer` because it is instrumented out of the box.
480
-
481
392
  ## 0.5.2 (2023-05-22)
482
393
  - [Improvement] Label ActiveJob consumers jobs with `active_job` tag.
483
394
  - [Improvement] Label Virtual Partitions consumers with `virtual` tag.
@@ -494,15 +405,6 @@ Please make sure **not** to do it for the default `Karafka.producer` because it
494
405
  - [Fix] Fix misspelling of word `committed`.
495
406
  - [Fix] Shutdown and revocation jobs statistics extraction crashes when idle initialized without messages (#53)
496
407
 
497
- ### Upgrade Notes
498
-
499
- Because of the reporting schema change, it is recommended to:
500
-
501
- - First, deploy **all** the Karafka consumer processes (`karafka server`)
502
- - Deploy the Web update to your web server.
503
-
504
- Please note that if you decide to use the updated Web UI with not updated consumers, you may hit a 500 error or offset related data may not be displayed correctly.
505
-
506
408
  ## 0.4.1 (2023-04-12)
507
409
  - [Improvement] Replace the "x time ago" in the code explorer with an exact date (`2023-04-12 10:16:48.596 +0200 `).
508
410
  - [Improvement] When hovering over a message timestamp, a label with raw numeric timestamp will be presented.
@@ -515,26 +417,11 @@ Please note that if you decide to use the updated Web UI with not updated consum
515
417
  - [Fix] Add missing support for using multiple subscription groups within a single consumer group.
516
418
  - [Fix] Mask SASL credentials in topic routing view (#46)
517
419
 
518
- ### Upgrade Notes
519
-
520
- Because of the reporting schema change, it is recommended to:
521
-
522
- - First, deploy **all** the Karafka consumer processes (`karafka server`)
523
- - Deploy the Web update to your web server.
524
-
525
- Please note that if you decide to use the updated Web UI with not updated consumers, you may hit a 500 error.
526
-
527
420
  ## 0.3.1 (2023-03-27)
528
421
  - [Fix] Add missing retention policy for states topic.
529
422
  - [Fix] Fix display of compacted messages placeholders for offsets lower than low watermark.
530
423
  - [Fix] Fix invalid pagination per page count.
531
424
 
532
- ### Upgrade Notes
533
-
534
- If upgrading from `0.3.0`, nothing.
535
-
536
- If upgrading from lower, please follow `0.3.0` upgrade procedure.
537
-
538
425
  ## 0.3.0 (2023-03-27)
539
426
  - **[Feature]** Support paginating over compacted topics partitions.
540
427
  - [Improvement] Display watermark offsets in the errors view.
@@ -554,15 +441,6 @@ If upgrading from lower, please follow `0.3.0` upgrade procedure.
554
441
  - [Maintenance] Remove compatibility fallbacks for job and process tags (#1342)
555
442
  - [Maintenance] Extract base sampler for tracking and web.
556
443
 
557
- ### Upgrade Notes
558
-
559
- Because of the removal of compatibility fallbacks for some metrics fetches, it is recommended to:
560
-
561
- - First, deploy **all** the Karafka consumer processes (`karafka server`)
562
- - Deploy the Web update to your web server.
563
-
564
- Please note that if you decide to use the updated Web UI with not updated consumers, you may hit a 500 error.
565
-
566
444
  ## 0.2.5 (2023-03-17)
567
445
  - [Fix] Critical instrumentation async errors intercepted by Web don't have JID for job removal (#1366)
568
446
 
data/Gemfile CHANGED
@@ -6,10 +6,14 @@ plugin 'diffend'
6
6
 
7
7
  gemspec
8
8
 
9
+ gem 'karafka'
10
+
9
11
  group :test do
10
12
  gem 'byebug'
11
13
  gem 'factory_bot'
12
14
  gem 'fugit'
15
+ # Needed for links extraction for visits verification
16
+ gem 'nokogiri'
13
17
  gem 'ostruct'
14
18
  gem 'rack-test'
15
19
  gem 'rspec'
data/Gemfile.lock CHANGED
@@ -1,18 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka-web (0.10.4)
4
+ karafka-web (0.11.0)
5
5
  erubi (~> 1.4)
6
- karafka (>= 2.4.10, < 2.5.0)
7
- karafka-core (>= 2.4.0, < 2.5.0)
6
+ karafka (>= 2.5.0.beta1, < 2.6.0)
7
+ karafka-core (>= 2.5.0, < 2.6.0)
8
8
  roda (~> 3.68, >= 3.69)
9
9
  tilt (~> 2.0)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (7.2.1)
14
+ activesupport (7.2.2.1)
15
15
  base64
16
+ benchmark (>= 0.3)
16
17
  bigdecimal
17
18
  concurrent-ruby (~> 1.0, >= 1.3.1)
18
19
  connection_pool (>= 2.2.5)
@@ -23,89 +24,132 @@ GEM
23
24
  securerandom (>= 0.3)
24
25
  tzinfo (~> 2.0, >= 2.0.5)
25
26
  base64 (0.2.0)
26
- bigdecimal (3.1.8)
27
- byebug (11.1.3)
28
- concurrent-ruby (1.3.4)
29
- connection_pool (2.4.1)
30
- diff-lcs (1.5.1)
31
- docile (1.4.0)
32
- drb (2.2.1)
33
- erubi (1.13.0)
27
+ benchmark (0.4.0)
28
+ bigdecimal (3.1.9)
29
+ byebug (12.0.0)
30
+ concurrent-ruby (1.3.5)
31
+ connection_pool (2.5.3)
32
+ diff-lcs (1.6.2)
33
+ docile (1.4.1)
34
+ drb (2.2.3)
35
+ erubi (1.13.1)
34
36
  et-orbi (1.2.11)
35
37
  tzinfo
36
- factory_bot (6.5.0)
37
- activesupport (>= 5.0.0)
38
- ffi (1.17.0)
38
+ factory_bot (6.5.1)
39
+ activesupport (>= 6.1.0)
40
+ ffi (1.17.2)
41
+ ffi (1.17.2-aarch64-linux-gnu)
42
+ ffi (1.17.2-aarch64-linux-musl)
43
+ ffi (1.17.2-arm-linux-gnu)
44
+ ffi (1.17.2-arm-linux-musl)
45
+ ffi (1.17.2-arm64-darwin)
46
+ ffi (1.17.2-x86-linux-gnu)
47
+ ffi (1.17.2-x86-linux-musl)
48
+ ffi (1.17.2-x86_64-darwin)
49
+ ffi (1.17.2-x86_64-linux-gnu)
50
+ ffi (1.17.2-x86_64-linux-musl)
39
51
  fugit (1.11.1)
40
52
  et-orbi (~> 1, >= 1.2.11)
41
53
  raabro (~> 1.4)
42
- i18n (1.14.5)
54
+ i18n (1.14.7)
43
55
  concurrent-ruby (~> 1.0)
44
- karafka (2.4.10)
56
+ karafka (2.5.0.beta1)
45
57
  base64 (~> 0.2)
46
- karafka-core (>= 2.4.3, < 2.5.0)
47
- karafka-rdkafka (>= 0.17.2)
48
- waterdrop (>= 2.7.3, < 3.0.0)
58
+ karafka-core (>= 2.5.0, < 2.6.0)
59
+ karafka-rdkafka (>= 0.19.2)
60
+ waterdrop (>= 2.8.3, < 3.0.0)
49
61
  zeitwerk (~> 2.3)
50
- karafka-core (2.4.4)
51
- karafka-rdkafka (>= 0.15.0, < 0.18.0)
52
- karafka-rdkafka (0.17.3)
62
+ karafka-core (2.5.0)
63
+ karafka-rdkafka (>= 0.19.2, < 0.21.0)
64
+ logger (>= 1.6.0)
65
+ karafka-rdkafka (0.19.2)
53
66
  ffi (~> 1.15)
54
67
  mini_portile2 (~> 2.6)
55
68
  rake (> 12)
56
- logger (1.6.1)
57
- mini_portile2 (2.8.7)
58
- minitest (5.25.1)
69
+ logger (1.7.0)
70
+ mini_portile2 (2.8.9)
71
+ minitest (5.25.5)
72
+ nokogiri (1.18.8)
73
+ mini_portile2 (~> 2.8.2)
74
+ racc (~> 1.4)
75
+ nokogiri (1.18.8-aarch64-linux-gnu)
76
+ racc (~> 1.4)
77
+ nokogiri (1.18.8-aarch64-linux-musl)
78
+ racc (~> 1.4)
79
+ nokogiri (1.18.8-arm-linux-gnu)
80
+ racc (~> 1.4)
81
+ nokogiri (1.18.8-arm-linux-musl)
82
+ racc (~> 1.4)
83
+ nokogiri (1.18.8-arm64-darwin)
84
+ racc (~> 1.4)
85
+ nokogiri (1.18.8-x86_64-darwin)
86
+ racc (~> 1.4)
87
+ nokogiri (1.18.8-x86_64-linux-gnu)
88
+ racc (~> 1.4)
89
+ nokogiri (1.18.8-x86_64-linux-musl)
90
+ racc (~> 1.4)
59
91
  ostruct (0.6.1)
60
92
  raabro (1.4.0)
61
- rack (3.1.4)
62
- rack-test (2.1.0)
93
+ racc (1.8.1)
94
+ rack (3.1.15)
95
+ rack-test (2.2.0)
63
96
  rack (>= 1.3)
64
97
  rackup (0.2.3)
65
98
  rack (>= 3.0.0.beta1)
66
99
  webrick
67
100
  rake (13.2.1)
68
- roda (3.81.0)
101
+ roda (3.92.0)
69
102
  rack
70
103
  rspec (3.13.0)
71
104
  rspec-core (~> 3.13.0)
72
105
  rspec-expectations (~> 3.13.0)
73
106
  rspec-mocks (~> 3.13.0)
74
- rspec-core (3.13.0)
107
+ rspec-core (3.13.3)
75
108
  rspec-support (~> 3.13.0)
76
- rspec-expectations (3.13.1)
109
+ rspec-expectations (3.13.4)
77
110
  diff-lcs (>= 1.2.0, < 2.0)
78
111
  rspec-support (~> 3.13.0)
79
- rspec-mocks (3.13.1)
112
+ rspec-mocks (3.13.4)
80
113
  diff-lcs (>= 1.2.0, < 2.0)
81
114
  rspec-support (~> 3.13.0)
82
- rspec-support (3.13.1)
83
- securerandom (0.3.1)
115
+ rspec-support (3.13.3)
116
+ securerandom (0.4.1)
84
117
  simplecov (0.22.0)
85
118
  docile (~> 1.1)
86
119
  simplecov-html (~> 0.11)
87
120
  simplecov_json_formatter (~> 0.1)
88
- simplecov-html (0.12.3)
121
+ simplecov-html (0.13.1)
89
122
  simplecov_json_formatter (0.1.4)
90
- tilt (2.4.0)
123
+ tilt (2.6.0)
91
124
  tzinfo (2.0.6)
92
125
  concurrent-ruby (~> 1.0)
93
- waterdrop (2.7.4)
94
- karafka-core (>= 2.4.3, < 3.0.0)
95
- karafka-rdkafka (>= 0.15.1)
126
+ waterdrop (2.8.3)
127
+ karafka-core (>= 2.4.9, < 3.0.0)
128
+ karafka-rdkafka (>= 0.19.1)
96
129
  zeitwerk (~> 2.3)
97
- webrick (1.8.1)
98
- zeitwerk (2.6.17)
130
+ webrick (1.9.1)
131
+ zeitwerk (2.6.18)
99
132
 
100
133
  PLATFORMS
134
+ aarch64-linux-gnu
135
+ aarch64-linux-musl
136
+ arm-linux-gnu
137
+ arm-linux-musl
138
+ arm64-darwin
101
139
  ruby
102
- x86_64-linux
140
+ x86-linux-gnu
141
+ x86-linux-musl
142
+ x86_64-darwin
143
+ x86_64-linux-gnu
144
+ x86_64-linux-musl
103
145
 
104
146
  DEPENDENCIES
105
147
  byebug
106
148
  factory_bot
107
149
  fugit
150
+ karafka
108
151
  karafka-web!
152
+ nokogiri
109
153
  ostruct
110
154
  rack-test
111
155
  rackup (~> 0.2)
@@ -113,4 +157,4 @@ DEPENDENCIES
113
157
  simplecov
114
158
 
115
159
  BUNDLED WITH
116
- 2.5.14
160
+ 2.6.9
data/LICENSE CHANGED
@@ -6,8 +6,12 @@ for license text.
6
6
 
7
7
  Karafka and Karafka Web have also commercial-friendly license, commercial support and commercial components.
8
8
 
9
- All of the commercial components are present in the lib/karafka/pro and lib/karafka/web/pro
10
- directory of this repository and their usage requires commercial license agreement.
9
+ All of the commercial components and code are present in the:
10
+
11
+ - `lib/karafka/web/pro`
12
+ - `spec/lib/karafka/web/pro`
13
+
14
+ directories of this repository and their usage requires commercial license agreement.
11
15
 
12
16
  By sending a pull request to the pro components, you are agreeing to transfer the copyright of your
13
17
  code to Maciej Mensfeld.
@@ -0,0 +1,35 @@
1
+ #!/bin/bash
2
+
3
+ # Checks Kafka logs for unsupported warning patterns
4
+ # Only specified warnings are allowed, all others should trigger failure
5
+
6
+ allowed_patterns=(
7
+ "Performing controller activation"
8
+ "registered with feature metadata.version"
9
+ "Replayed TopicRecord for"
10
+ "Replayed PartitionRecord for"
11
+ "Previous leader None and previous leader epoch"
12
+ "Creating new"
13
+ )
14
+
15
+ # Get all warnings
16
+ warnings=$(docker logs --since=0 kafka | grep WARN)
17
+ exit_code=0
18
+
19
+ while IFS= read -r line; do
20
+ allowed=0
21
+ for pattern in "${allowed_patterns[@]}"; do
22
+ if echo "$line" | grep -q "$pattern"; then
23
+ allowed=1
24
+ break
25
+ fi
26
+ done
27
+
28
+ if [ $allowed -eq 0 ]; then
29
+ echo "Unexpected warning found:"
30
+ echo "$line"
31
+ exit_code=1
32
+ fi
33
+ done <<< "$warnings"
34
+
35
+ exit $exit_code
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This script verifies that we do not create (except few needed exceptions) test topics that do
4
+ # not start with the "it-" prefix which is our standard.
5
+ #
6
+ # This ensures that we can clearly identify all test topics for removal in case of doing dev work
7
+ # on a long-lived Kafka cluster without option to fully reset it.
8
+ #
9
+ # It also ensures we have one convention that we can follow.
10
+
11
+ require 'bundler'
12
+ Bundler.setup(:default, :test, :integrations)
13
+ require 'karafka'
14
+
15
+ module Karafka
16
+ class App
17
+ setup do |config|
18
+ config.kafka = { 'bootstrap.servers': '127.0.0.1:9092' }
19
+ end
20
+ end
21
+ end
22
+
23
+ # Please note that "__" starting topics are not here by default. It is expected.
24
+ invalid = Karafka::Admin
25
+ .cluster_info
26
+ .topics
27
+ .map { |topic| topic[:topic_name] }
28
+ .select { |topic| !topic.start_with?('it-') }
29
+ .select { |topic| topic.length <= 6 }
30
+
31
+ invalid.each do |invalid_name|
32
+ puts "#{invalid_name} does not start with the \"it-\" prefix"
33
+ end
34
+
35
+ exit invalid.empty? ? 0 : 1
@@ -22,6 +22,7 @@ en:
22
22
  ui.branding.type_format: 'must be :info, :error, :warning, :success, :primary or :secondary'
23
23
  ui.branding.label_format: must be false or non-empty string
24
24
  ui.branding.notice_format: must be false or non-empty string
25
+ ui.branding.nav_extras_format: must be an ERB template code or a path to one
25
26
 
26
27
  search_form:
27
28
  missing: needs to be present
data/docker-compose.yml CHANGED
@@ -3,7 +3,7 @@ version: '2'
3
3
  services:
4
4
  kafka:
5
5
  container_name: kafka
6
- image: confluentinc/cp-kafka:7.7.1
6
+ image: confluentinc/cp-kafka:7.9.1
7
7
 
8
8
  ports:
9
9
  - 9092:9092
data/gulpfile.js CHANGED
@@ -3,7 +3,6 @@ const concat = require('gulp-concat');
3
3
  const uglify = require('gulp-uglify');
4
4
  const through2 = require('through2');
5
5
  const path = require('path');
6
- const cleanCSS = require('gulp-clean-css');
7
6
  const sourcemaps = require('gulp-sourcemaps');
8
7
 
9
8
  // Check if we are in development mode
@@ -64,7 +63,6 @@ gulp.task('styles', function() {
64
63
  return gulp.src(cssFiles)
65
64
  .pipe(isDev ? sourcemaps.init() : through2.obj()) // Initialize sourcemaps in dev
66
65
  .pipe(concat('application.min.css'))
67
- .pipe(cleanCSS({ level: 2 })) // Minify CSS
68
66
  .pipe(isDev ? sourcemaps.write('.') : through2.obj()) // Write sourcemaps in dev
69
67
  .pipe(gulp.dest('lib/karafka/web/ui/public/stylesheets'));
70
68
  });
data/karafka-web.gemspec CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.licenses = %w[LGPL-3.0-only Commercial]
18
18
 
19
19
  spec.add_dependency 'erubi', '~> 1.4'
20
- spec.add_dependency 'karafka', '>= 2.4.10', '< 2.5.0'
21
- spec.add_dependency 'karafka-core', '>= 2.4.0', '< 2.5.0'
20
+ spec.add_dependency 'karafka', '>= 2.5.0.beta1', '< 2.6.0'
21
+ spec.add_dependency 'karafka-core', '>= 2.5.0', '< 2.6.0'
22
22
  spec.add_dependency 'roda', '~> 3.68', '>= 3.69'
23
23
  spec.add_dependency 'tilt', '~> 2.0'
24
24