karafka-web 0.10.4 → 0.11.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +70 -176
- data/Gemfile +2 -0
- data/Gemfile.lock +78 -45
- data/LICENSE +6 -2
- data/Rakefile +4 -0
- data/bin/verify_kafka_warnings +35 -0
- data/bin/verify_topics_naming +35 -0
- data/config/locales/pro_errors.yml +1 -0
- data/config/locales/slogans.yml +1 -1
- data/docker-compose.yml +1 -1
- data/gulpfile.js +0 -2
- data/karafka-web.gemspec +2 -7
- data/lib/karafka/web/config.rb +80 -9
- data/lib/karafka/web/contracts/config.rb +44 -5
- data/lib/karafka/web/errors.rb +10 -12
- data/lib/karafka/web/management/actions/create_initial_states.rb +6 -6
- data/lib/karafka/web/management/actions/create_topics.rb +30 -64
- data/lib/karafka/web/management/actions/delete_topics.rb +5 -5
- data/lib/karafka/web/management/actions/enable.rb +5 -5
- data/lib/karafka/web/pro/commanding/commands/base.rb +37 -13
- data/lib/karafka/web/pro/commanding/commands/consumers/quiet.rb +33 -0
- data/lib/karafka/web/pro/commanding/commands/consumers/stop.rb +32 -0
- data/lib/karafka/web/pro/commanding/commands/consumers/trace.rb +37 -0
- data/lib/karafka/web/pro/commanding/commands/partitions/pause.rb +30 -0
- data/lib/karafka/web/pro/commanding/commands/partitions/resume.rb +30 -0
- data/lib/karafka/web/pro/commanding/commands/partitions/seek.rb +30 -0
- data/lib/karafka/web/pro/commanding/config.rb +6 -10
- data/lib/karafka/web/pro/commanding/contracts/config.rb +2 -10
- data/lib/karafka/web/pro/commanding/dispatcher.rb +45 -24
- data/lib/karafka/web/pro/commanding/handlers/partitions/commands/base.rb +67 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/commands/pause.rb +44 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/commands/resume.rb +29 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/commands/seek.rb +86 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/executor.rb +56 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/listener.rb +55 -0
- data/lib/karafka/web/pro/commanding/handlers/partitions/tracker.rb +62 -0
- data/lib/karafka/web/pro/commanding/listener.rb +4 -12
- data/lib/karafka/web/pro/commanding/manager.rb +36 -24
- data/lib/karafka/web/pro/commanding/matcher.rb +7 -17
- data/lib/karafka/web/pro/commanding/request.rb +39 -0
- data/lib/karafka/web/pro/commanding.rb +2 -10
- data/lib/karafka/web/pro/loader.rb +13 -10
- data/lib/karafka/web/pro/ui/app.rb +31 -390
- data/lib/karafka/web/pro/ui/controllers/base_controller.rb +8 -10
- data/lib/karafka/web/pro/ui/controllers/cluster_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/consumers/base_controller.rb +21 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/commanding_controller.rb +148 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/commands_controller.rb +96 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/consumers_controller.rb +99 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/controls_controller.rb +36 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/jobs_controller.rb +57 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/partitions/base_controller.rb +86 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/partitions/offsets_controller.rb +75 -0
- data/lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb +110 -0
- data/lib/karafka/web/pro/ui/controllers/dashboard_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/dlq_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/errors_controller.rb +11 -15
- data/lib/karafka/web/pro/ui/controllers/explorer/base_controller.rb +21 -0
- data/lib/karafka/web/pro/ui/controllers/explorer/explorer_controller.rb +225 -0
- data/lib/karafka/web/pro/ui/controllers/explorer/messages_controller.rb +145 -0
- data/lib/karafka/web/pro/ui/controllers/explorer/search_controller.rb +68 -0
- data/lib/karafka/web/pro/ui/controllers/health_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/jobs_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/recurring_tasks_controller.rb +12 -13
- data/lib/karafka/web/pro/ui/controllers/routing_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/scheduled_messages/base_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/scheduled_messages/explorer_controller.rb +8 -16
- data/lib/karafka/web/pro/ui/controllers/scheduled_messages/messages_controller.rb +9 -15
- data/lib/karafka/web/pro/ui/controllers/scheduled_messages/schedules_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/status_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/support_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/controllers/topics/base_controller.rb +21 -0
- data/lib/karafka/web/pro/ui/controllers/topics/configs_controller.rb +86 -0
- data/lib/karafka/web/pro/ui/controllers/topics/distributions_controller.rb +91 -0
- data/lib/karafka/web/pro/ui/controllers/topics/offsets_controller.rb +55 -0
- data/lib/karafka/web/pro/ui/controllers/topics/replications_controller.rb +37 -0
- data/lib/karafka/web/pro/ui/controllers/topics/topics_controller.rb +101 -0
- data/lib/karafka/web/pro/ui/controllers/ux_controller.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/branding/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/branding/contracts/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/branding.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/features.rb +53 -0
- data/lib/karafka/web/pro/ui/lib/patterns_detector.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/policies/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/policies/contracts/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/policies/messages.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/policies/requests.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/policies.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/safe_runner.rb +5 -0
- data/lib/karafka/web/pro/ui/lib/search/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/contracts/config.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/contracts/form.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/matchers/base.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/matchers/raw_header_includes.rb +10 -11
- data/lib/karafka/web/pro/ui/lib/search/matchers/raw_key_includes.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/matchers/raw_payload_includes.rb +23 -11
- data/lib/karafka/web/pro/ui/lib/search/normalizer.rb +2 -10
- data/lib/karafka/web/pro/ui/lib/search/runner.rb +3 -11
- data/lib/karafka/web/pro/ui/lib/search.rb +2 -10
- data/lib/karafka/web/pro/ui/routes/base.rb +19 -0
- data/lib/karafka/web/pro/ui/routes/cluster.rb +37 -0
- data/lib/karafka/web/pro/ui/routes/consumers.rb +145 -0
- data/lib/karafka/web/pro/ui/routes/dashboard.rb +25 -0
- data/lib/karafka/web/pro/ui/routes/dlq.rb +24 -0
- data/lib/karafka/web/pro/ui/routes/errors.rb +39 -0
- data/lib/karafka/web/pro/ui/routes/explorer.rb +118 -0
- data/lib/karafka/web/pro/ui/routes/health.rb +47 -0
- data/lib/karafka/web/pro/ui/routes/jobs.rb +33 -0
- data/lib/karafka/web/pro/ui/routes/recurring_tasks.rb +59 -0
- data/lib/karafka/web/pro/ui/routes/routing.rb +31 -0
- data/lib/karafka/web/pro/ui/routes/scheduled_messages.rb +75 -0
- data/lib/karafka/web/pro/ui/routes/status.rb +24 -0
- data/lib/karafka/web/pro/ui/routes/support.rb +24 -0
- data/lib/karafka/web/pro/ui/routes/topics.rb +90 -0
- data/lib/karafka/web/pro/ui/routes/ux.rb +24 -0
- data/lib/karafka/web/pro/ui/views/cluster/_breadcrumbs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/cluster/_broker.erb +3 -0
- data/lib/karafka/web/pro/ui/views/cluster/_config.erb +3 -0
- data/lib/karafka/web/pro/ui/views/cluster/_tabs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/cluster/index.erb +4 -1
- data/lib/karafka/web/pro/ui/views/cluster/show.erb +3 -0
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_backtrace.erb +3 -0
- data/lib/karafka/web/pro/ui/views/consumers/commands/_breadcrumbs.erb +24 -0
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_command.erb +22 -6
- data/lib/karafka/web/pro/ui/views/consumers/commands/_command_details.erb +4 -0
- data/lib/karafka/web/pro/ui/views/consumers/commands/_empty.erb +6 -0
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_incompatible_schema.erb +3 -0
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_metadata.erb +4 -1
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/_table.erb +5 -2
- data/lib/karafka/web/pro/ui/views/{commands → consumers/commands}/index.erb +7 -4
- data/lib/karafka/web/pro/ui/views/consumers/commands/show.erb +32 -0
- data/lib/karafka/web/pro/ui/views/consumers/consumers/_breadcrumbs.erb +46 -0
- data/lib/karafka/web/pro/ui/views/consumers/{_consumer.erb → consumers/_consumer.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/consumers/{_consumer_performance.erb → consumers/_consumer_performance.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/consumers/consumers/_tabs.erb +38 -0
- data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_commands.erb +80 -0
- data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_consumer_group.erb +11 -0
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_metrics.erb +3 -0
- data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_no_subscriptions.erb +10 -0
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_partition.erb +16 -0
- data/lib/karafka/web/pro/ui/views/consumers/consumers/consumer/_partition_edit_options.erb +33 -0
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_stopped.erb +3 -0
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_subscription_group.erb +7 -3
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → consumers/consumer}/_tabs.erb +7 -4
- data/lib/karafka/web/pro/ui/views/consumers/consumers/details.erb +15 -0
- data/lib/karafka/web/pro/ui/views/consumers/{index.erb → consumers/index.erb} +6 -3
- data/lib/karafka/web/pro/ui/views/consumers/{performance.erb → consumers/performance.erb} +6 -3
- data/lib/karafka/web/pro/ui/views/consumers/consumers/subscriptions.erb +24 -0
- data/lib/karafka/web/pro/ui/views/consumers/controls/_breadcrumbs.erb +16 -0
- data/lib/karafka/web/pro/ui/views/consumers/{_consumer_controls.erb → controls/_controls.erb} +10 -7
- data/lib/karafka/web/pro/ui/views/consumers/{controls.erb → controls/index.erb} +8 -5
- data/lib/karafka/web/pro/ui/views/consumers/jobs/_breadcrumbs.erb +36 -0
- data/lib/karafka/web/pro/ui/views/consumers/{consumer → jobs}/_job.erb +4 -2
- data/lib/karafka/web/pro/ui/views/consumers/jobs/_no_jobs.erb +6 -0
- data/lib/karafka/web/pro/ui/views/consumers/{pending_jobs.erb → jobs/pending.erb} +7 -8
- data/lib/karafka/web/pro/ui/views/consumers/{running_jobs.erb → jobs/running.erb} +7 -8
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_basics.erb +77 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_breadcrumbs.erb +58 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_form.erb +109 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_not_running_error.erb +16 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/_running_warning.erb +15 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/offsets/edit.erb +16 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_active_not_editable.erb +22 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_adjusting_warning.erb +27 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_breadcrumbs.erb +60 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_edit_form.erb +59 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_lrj_not_manageable.erb +24 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_new_form.erb +78 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/_not_running.erb +16 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/edit.erb +24 -0
- data/lib/karafka/web/pro/ui/views/consumers/partitions/pauses/new.erb +20 -0
- data/lib/karafka/web/pro/ui/views/dashboard/index.erb +4 -1
- data/lib/karafka/web/pro/ui/views/dlq/_breadcrumbs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/dlq/_no_topics.erb +3 -0
- data/lib/karafka/web/pro/ui/views/dlq/_topic.erb +4 -1
- data/lib/karafka/web/pro/ui/views/dlq/index.erb +3 -0
- data/lib/karafka/web/pro/ui/views/errors/_breadcrumbs.erb +4 -6
- data/lib/karafka/web/pro/ui/views/errors/_error.erb +9 -1
- data/lib/karafka/web/pro/ui/views/errors/_partition_option.erb +3 -0
- data/lib/karafka/web/pro/ui/views/errors/_selector.erb +3 -0
- data/lib/karafka/web/pro/ui/views/errors/_table.erb +4 -1
- data/lib/karafka/web/pro/ui/views/errors/index.erb +6 -3
- data/lib/karafka/web/pro/ui/views/errors/partition.erb +5 -2
- data/lib/karafka/web/pro/ui/views/errors/show.erb +42 -33
- data/lib/karafka/web/pro/ui/views/explorer/{_breadcrumbs.erb → explorer/_breadcrumbs.erb} +7 -4
- data/lib/karafka/web/pro/ui/views/explorer/{_failed_deserialization.erb → explorer/_failed_deserialization.erb} +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/{_filtered.erb → explorer/_filtered.erb} +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/{_message.erb → explorer/_message.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/explorer/explorer/_no_topics.erb +4 -0
- data/lib/karafka/web/pro/ui/views/explorer/{_partition_option.erb → explorer/_partition_option.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/explorer/{_selector.erb → explorer/_selector.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/explorer/explorer/_topic.erb +13 -0
- data/lib/karafka/web/pro/ui/views/explorer/explorer/index.erb +17 -0
- data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_metadata.erb +10 -7
- data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_payload.erb +6 -3
- data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_resources_utilization.erb +7 -4
- data/lib/karafka/web/pro/ui/views/explorer/{message → explorer/message}/_too_big_to_be_displayed.erb +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/{messages → explorer/messages}/_detail.erb +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/explorer/messages/_headers.erb +51 -0
- data/lib/karafka/web/pro/ui/views/explorer/{messages → explorer/messages}/_key.erb +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_cleaned.erb +6 -0
- data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_empty.erb +6 -0
- data/lib/karafka/web/pro/ui/views/explorer/{partition → explorer/partition}/_messages.erb +4 -1
- data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_time_selector.erb +16 -0
- data/lib/karafka/web/pro/ui/views/explorer/explorer/partition/_timestamp_selector.erb +33 -0
- data/lib/karafka/web/pro/ui/views/explorer/{partition.erb → explorer/partition.erb} +24 -17
- data/lib/karafka/web/pro/ui/views/explorer/explorer/show.erb +100 -0
- data/lib/karafka/web/pro/ui/views/explorer/{topic → explorer/topic}/_actions.erb +5 -2
- data/lib/karafka/web/pro/ui/views/explorer/explorer/topic/_empty.erb +6 -0
- data/lib/karafka/web/pro/ui/views/explorer/{topic → explorer/topic}/_limited.erb +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/{topic.erb → explorer/topic.erb} +7 -4
- data/lib/karafka/web/pro/ui/views/explorer/messages/_breadcrumbs.erb +32 -0
- data/lib/karafka/web/pro/ui/views/explorer/messages/forward.erb +143 -0
- data/lib/karafka/web/pro/ui/views/explorer/search/_breadcrumbs.erb +4 -0
- data/lib/karafka/web/pro/ui/views/explorer/search/_fix_errors.erb +6 -0
- data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_metadata.erb +3 -0
- data/lib/karafka/web/pro/ui/views/explorer/search/_no_results.erb +6 -0
- data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_no_search_criteria.erb +3 -0
- data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_search_criteria.erb +3 -0
- data/lib/karafka/web/pro/ui/views/{search → explorer/search}/_search_modal.erb +5 -2
- data/lib/karafka/web/pro/ui/views/explorer/search/_timeout.erb +6 -0
- data/lib/karafka/web/pro/ui/views/explorer/search/index.erb +32 -0
- data/lib/karafka/web/pro/ui/views/health/_breadcrumbs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/_no_data.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/_partition.erb +16 -1
- data/lib/karafka/web/pro/ui/views/health/_partition_lags.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/_partition_offset.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/_partition_times.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/_table_metadata.erb +4 -1
- data/lib/karafka/web/pro/ui/views/health/_tabs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/changes.erb +4 -1
- data/lib/karafka/web/pro/ui/views/health/cluster_lags.erb +3 -0
- data/lib/karafka/web/pro/ui/views/health/lags.erb +5 -2
- data/lib/karafka/web/pro/ui/views/health/offsets.erb +4 -1
- data/lib/karafka/web/pro/ui/views/health/overview.erb +8 -3
- data/lib/karafka/web/pro/ui/views/jobs/_job.erb +5 -3
- data/lib/karafka/web/pro/ui/views/jobs/_no_jobs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/jobs/pending.erb +4 -1
- data/lib/karafka/web/pro/ui/views/jobs/running.erb +4 -1
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_actions.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_batch_actions.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_breadcrumbs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_log.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_not_active.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_tabs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/_task.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/logs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/recurring_tasks/schedule.erb +3 -0
- data/lib/karafka/web/pro/ui/views/routing/_consumer_group.erb +3 -0
- data/lib/karafka/web/pro/ui/views/routing/_detail.erb +3 -0
- data/lib/karafka/web/pro/ui/views/routing/_topic.erb +3 -0
- data/lib/karafka/web/pro/ui/views/routing/index.erb +3 -0
- data/lib/karafka/web/pro/ui/views/routing/show.erb +3 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_breadcrumbs.erb +6 -3
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_key.erb +3 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_message.erb +28 -115
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/_messages.erb +3 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_cancel.erb +49 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_compacted.erb +16 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_schedule.erb +83 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_tombstone.erb +69 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/message/_unknown.erb +26 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/partition.erb +23 -16
- data/lib/karafka/web/pro/ui/views/scheduled_messages/explorer/topic.erb +6 -3
- data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_breadcrumbs.erb +3 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/_no_groups.erb +3 -0
- data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/index.erb +4 -1
- data/lib/karafka/web/pro/ui/views/scheduled_messages/schedules/show.erb +17 -1
- data/lib/karafka/web/pro/ui/views/shared/_navigation.erb +25 -17
- data/lib/karafka/web/pro/ui/views/shared/_rdkafka_form_error_alert_box.erb +16 -0
- data/lib/karafka/web/pro/ui/views/shared/branding/_label.erb +3 -0
- data/lib/karafka/web/pro/ui/views/shared/branding/_notice.erb +3 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_breadcrumbs.erb +34 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_config.erb +26 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_delete_button.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_edit_form.erb +50 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_edit_plan.erb +16 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/_edit_warning.erb +12 -0
- data/lib/karafka/web/pro/ui/views/topics/configs/edit.erb +16 -0
- data/lib/karafka/web/pro/ui/views/topics/{config.erb → configs/index.erb} +9 -3
- data/lib/karafka/web/pro/ui/views/topics/distributions/_add_partitions_button.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_badges.erb +3 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_breadcrumbs.erb +28 -0
- data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_chart.erb +3 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_form.erb +47 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_hints.erb +15 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_edit_warnings.erb +14 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_empty_partitions.erb +4 -0
- data/lib/karafka/web/pro/ui/views/topics/{distribution → distributions}/_limited.erb +3 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/_partition.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/distributions/edit.erb +16 -0
- data/lib/karafka/web/pro/ui/views/topics/{distribution.erb → distributions/show.erb} +11 -7
- data/lib/karafka/web/pro/ui/views/topics/offsets/_breadcrumbs.erb +20 -0
- data/lib/karafka/web/pro/ui/views/topics/offsets/_partition.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/{offsets.erb → offsets/show.erb} +6 -3
- data/lib/karafka/web/pro/ui/views/topics/replications/_breadcrumbs.erb +20 -0
- data/lib/karafka/web/pro/ui/views/topics/{_partition.erb → replications/_partition.erb} +4 -1
- data/lib/karafka/web/pro/ui/views/topics/{replication.erb → replications/show.erb} +6 -3
- data/lib/karafka/web/pro/ui/views/topics/topics/_breadcrumbs.erb +32 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_create_button.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_create_hints.erb +15 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_delete_form.erb +36 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_delete_hints.erb +15 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_delete_warning.erb +13 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/_new_form.erb +80 -0
- data/lib/karafka/web/pro/ui/views/topics/{_tabs.erb → topics/_tabs.erb} +7 -4
- data/lib/karafka/web/pro/ui/views/topics/topics/_topic.erb +12 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/edit.erb +10 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/index.erb +19 -0
- data/lib/karafka/web/pro/ui/views/topics/topics/new.erb +12 -0
- data/lib/karafka/web/processing/consumer.rb +7 -7
- data/lib/karafka/web/processing/consumers/aggregators/state.rb +14 -14
- data/lib/karafka/web/processing/consumers/metrics.rb +1 -1
- data/lib/karafka/web/processing/consumers/state.rb +1 -1
- data/lib/karafka/web/processing/publisher.rb +4 -4
- data/lib/karafka/web/tracking/consumers/contracts/partition.rb +1 -0
- data/lib/karafka/web/tracking/consumers/listeners/errors.rb +1 -0
- data/lib/karafka/web/tracking/consumers/listeners/pausing.rb +2 -2
- data/lib/karafka/web/tracking/consumers/listeners/transactions.rb +44 -0
- data/lib/karafka/web/tracking/consumers/reporter.rb +8 -4
- data/lib/karafka/web/tracking/consumers/sampler.rb +81 -14
- data/lib/karafka/web/tracking/helpers/sysconf.rb +33 -0
- data/lib/karafka/web/tracking/helpers/ttls/array.rb +11 -0
- data/lib/karafka/web/tracking/helpers/ttls/hash.rb +7 -1
- data/lib/karafka/web/tracking/producers/reporter.rb +5 -3
- data/lib/karafka/web/ui/app.rb +19 -112
- data/lib/karafka/web/ui/base.rb +60 -3
- data/lib/karafka/web/ui/controllers/base_controller.rb +43 -1
- data/lib/karafka/web/ui/controllers/cluster_controller.rb +5 -2
- data/lib/karafka/web/ui/controllers/errors_controller.rb +13 -4
- data/lib/karafka/web/ui/controllers/requests/execution_wrapper.rb +52 -0
- data/lib/karafka/web/ui/controllers/requests/hookable.rb +99 -0
- data/lib/karafka/web/ui/controllers/requests/params.rb +39 -1
- data/lib/karafka/web/ui/controllers/responses/redirect.rb +0 -5
- data/lib/karafka/web/ui/controllers/status_controller.rb +3 -0
- data/lib/karafka/web/ui/helpers/application_helper.rb +10 -71
- data/lib/karafka/web/ui/helpers/paths_helper.rb +54 -10
- data/lib/karafka/web/ui/helpers/time_helper.rb +82 -0
- data/lib/karafka/web/ui/helpers/topics_helper.rb +156 -0
- data/lib/karafka/web/ui/lib/admin.rb +1 -1
- data/lib/karafka/web/ui/lib/cache.rb +135 -0
- data/lib/karafka/web/ui/models/broker.rb +1 -2
- data/lib/karafka/web/ui/models/cluster_info.rb +15 -21
- data/lib/karafka/web/ui/models/consumers_metrics.rb +1 -1
- data/lib/karafka/web/ui/models/consumers_state.rb +1 -1
- data/lib/karafka/web/ui/models/counters.rb +1 -1
- data/lib/karafka/web/ui/models/health.rb +9 -7
- data/lib/karafka/web/ui/models/message.rb +20 -2
- data/lib/karafka/web/ui/models/process.rb +16 -0
- data/lib/karafka/web/ui/models/processes.rb +29 -8
- data/lib/karafka/web/ui/models/recurring_tasks/schedule.rb +1 -1
- data/lib/karafka/web/ui/models/status.rb +28 -9
- data/lib/karafka/web/ui/models/topic.rb +1 -2
- data/lib/karafka/web/ui/public/javascripts/application.js +8 -98
- data/lib/karafka/web/ui/public/javascripts/application.min.js +12 -4
- data/lib/karafka/web/ui/public/javascripts/application.min.js.br +0 -0
- data/lib/karafka/web/ui/public/javascripts/application.min.js.gz +0 -0
- data/lib/karafka/web/ui/public/javascripts/components/action_confirmation_manager.js +30 -0
- data/lib/karafka/web/ui/public/javascripts/components/alerts.js +39 -0
- data/lib/karafka/web/ui/public/javascripts/components/button_lock_manager.js +50 -0
- data/lib/karafka/web/ui/public/javascripts/components/live_poll.js +71 -19
- data/lib/karafka/web/ui/public/javascripts/components/message_republish_manager.js +50 -0
- data/lib/karafka/web/ui/public/javascripts/components/page_title_tracker.js +21 -0
- data/lib/karafka/web/ui/public/javascripts/components/partition_redirect_manager.js +21 -0
- data/lib/karafka/web/ui/public/javascripts/components/time_ago_manager.js +25 -0
- data/lib/karafka/web/ui/public/javascripts/components/timestamp_selector.js +30 -0
- data/lib/karafka/web/ui/public/javascripts/libs/datepicker.js +2 -2
- data/lib/karafka/web/ui/public/stylesheets/application.css +30 -0
- data/lib/karafka/web/ui/public/stylesheets/application.min.css +5120 -13
- data/lib/karafka/web/ui/public/stylesheets/application.min.css.br +0 -0
- data/lib/karafka/web/ui/public/stylesheets/application.min.css.gz +0 -0
- data/lib/karafka/web/ui/public/stylesheets/libs/highlight_dark.min.css.gz +0 -0
- data/lib/karafka/web/ui/public/stylesheets/libs/highlight_light.min.css.gz +0 -0
- data/lib/karafka/web/ui/public/stylesheets/libs/tailwind.css +507 -214
- data/lib/karafka/web/ui/routes/assets.rb +53 -0
- data/lib/karafka/web/ui/routes/base.rb +36 -0
- data/lib/karafka/web/ui/routes/cluster.rb +28 -0
- data/lib/karafka/web/ui/routes/consumers.rb +35 -0
- data/lib/karafka/web/ui/routes/dashboard.rb +20 -0
- data/lib/karafka/web/ui/routes/errors.rb +30 -0
- data/lib/karafka/web/ui/routes/jobs.rb +28 -0
- data/lib/karafka/web/ui/routes/pro_only.rb +27 -0
- data/lib/karafka/web/ui/routes/routing.rb +26 -0
- data/lib/karafka/web/ui/routes/status.rb +19 -0
- data/lib/karafka/web/ui/routes/support.rb +19 -0
- data/lib/karafka/web/ui/routes/ux.rb +19 -0
- data/lib/karafka/web/ui/views/cluster/_partition.erb +2 -2
- data/lib/karafka/web/ui/views/cluster/brokers.erb +1 -1
- data/lib/karafka/web/ui/views/consumers/_assignments_badges.erb +2 -7
- data/lib/karafka/web/ui/views/consumers/_breadcrumbs.erb +7 -1
- data/lib/karafka/web/ui/views/consumers/_consumer.erb +1 -1
- data/lib/karafka/web/ui/views/consumers/_no_consumers.erb +2 -2
- data/lib/karafka/web/ui/views/consumers/_tabs.erb +4 -4
- data/lib/karafka/web/ui/views/consumers/index.erb +1 -1
- data/lib/karafka/web/ui/views/dashboard/_feature_pro.erb +1 -1
- data/lib/karafka/web/ui/views/dashboard/_not_enough_data.erb +2 -2
- data/lib/karafka/web/ui/views/dashboard/_ranges_selector.erb +1 -1
- data/lib/karafka/web/ui/views/dashboard/index.erb +6 -49
- data/lib/karafka/web/ui/views/errors/_breadcrumbs.erb +3 -8
- data/lib/karafka/web/ui/views/errors/_detail.erb +3 -3
- data/lib/karafka/web/ui/views/errors/_error.erb +6 -1
- data/lib/karafka/web/ui/views/errors/index.erb +1 -1
- data/lib/karafka/web/ui/views/errors/show.erb +39 -33
- data/lib/karafka/web/ui/views/jobs/_job.erb +2 -3
- data/lib/karafka/web/ui/views/jobs/pending.erb +1 -1
- data/lib/karafka/web/ui/views/jobs/running.erb +1 -1
- data/lib/karafka/web/ui/views/layout.erb +7 -5
- data/lib/karafka/web/ui/views/shared/_become_pro.erb +1 -1
- data/lib/karafka/web/ui/views/shared/_brand.erb +1 -1
- data/lib/karafka/web/ui/views/shared/_breadcrumbs.erb +1 -1
- data/lib/karafka/web/ui/views/shared/_compacted_message_info.erb +16 -0
- data/lib/karafka/web/ui/views/shared/_content.erb +1 -1
- data/lib/karafka/web/ui/views/shared/_controls.erb +10 -3
- data/lib/karafka/web/ui/views/shared/_custom_nav.erb +9 -0
- data/lib/karafka/web/ui/views/shared/_flashes.erb +3 -5
- data/lib/karafka/web/ui/views/shared/_header.erb +25 -2
- data/lib/karafka/web/ui/views/shared/_navigation.erb +17 -15
- data/lib/karafka/web/ui/views/shared/alerts/_error.erb +8 -0
- data/lib/karafka/web/ui/views/shared/alerts/_info.erb +8 -0
- data/lib/karafka/web/ui/views/shared/alerts/_primary.erb +8 -0
- data/lib/karafka/web/ui/views/shared/alerts/_secondary.erb +8 -0
- data/lib/karafka/web/ui/views/shared/alerts/_success.erb +8 -0
- data/lib/karafka/web/ui/views/shared/alerts/_warning.erb +8 -0
- data/lib/karafka/web/ui/views/shared/exceptions/not_allowed.erb +4 -0
- data/lib/karafka/web/ui/views/shared/exceptions/not_found.erb +5 -1
- data/lib/karafka/web/ui/views/shared/exceptions/pro_only.erb +4 -0
- data/lib/karafka/web/ui/views/shared/icons/_arrow_left.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_arrow_up_tray.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_clock.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_pencil.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_pencil_square.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_play_pause.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_plus.erb +3 -0
- data/lib/karafka/web/ui/views/shared/icons/_trash.erb +3 -0
- data/lib/karafka/web/ui/views/status/failures/_live_reporting.erb +1 -1
- data/lib/karafka/web/ui/views/status/failures/_partitions.erb +3 -3
- data/lib/karafka/web/ui/views/status/failures/_state_calculation.erb +2 -2
- data/lib/karafka/web/ui/views/status/info/_components.erb +6 -6
- data/lib/karafka/web/ui/views/status/show.erb +15 -0
- data/lib/karafka/web/ui/views/status/warnings/_consumers_schemas.erb +31 -0
- data/lib/karafka/web/ui/views/ux/_icons.erb +1 -1
- data/lib/karafka/web/version.rb +1 -1
- data/lib/karafka/web.rb +3 -0
- data/package-lock.json +867 -1282
- data/package.json +6 -7
- data/postcss.config.js +1 -2
- data/renovate.json +20 -1
- data/tailwind.config.js +0 -4
- metadata +235 -135
- checksums.yaml.gz.sig +0 -0
- data/certs/cert.pem +0 -26
- data/lib/karafka/web/pro/commanding/commands/quiet.rb +0 -34
- data/lib/karafka/web/pro/commanding/commands/stop.rb +0 -34
- data/lib/karafka/web/pro/commanding/commands/trace.rb +0 -41
- data/lib/karafka/web/pro/ui/controllers/commanding_controller.rb +0 -118
- data/lib/karafka/web/pro/ui/controllers/commands_controller.rb +0 -96
- data/lib/karafka/web/pro/ui/controllers/consumers_controller.rb +0 -138
- data/lib/karafka/web/pro/ui/controllers/explorer_controller.rb +0 -220
- data/lib/karafka/web/pro/ui/controllers/messages_controller.rb +0 -107
- data/lib/karafka/web/pro/ui/controllers/search_controller.rb +0 -73
- data/lib/karafka/web/pro/ui/controllers/topics_controller.rb +0 -130
- data/lib/karafka/web/pro/ui/views/commands/_breadcrumbs.erb +0 -21
- data/lib/karafka/web/pro/ui/views/commands/_command_details.erb +0 -1
- data/lib/karafka/web/pro/ui/views/commands/_empty.erb +0 -3
- data/lib/karafka/web/pro/ui/views/commands/show.erb +0 -33
- data/lib/karafka/web/pro/ui/views/consumers/_breadcrumbs.erb +0 -55
- data/lib/karafka/web/pro/ui/views/consumers/_tabs.erb +0 -33
- data/lib/karafka/web/pro/ui/views/consumers/consumer/_commands.erb +0 -72
- data/lib/karafka/web/pro/ui/views/consumers/consumer/_consumer_group.erb +0 -8
- data/lib/karafka/web/pro/ui/views/consumers/consumer/_no_jobs.erb +0 -7
- data/lib/karafka/web/pro/ui/views/consumers/consumer/_no_subscriptions.erb +0 -7
- data/lib/karafka/web/pro/ui/views/consumers/details.erb +0 -13
- data/lib/karafka/web/pro/ui/views/consumers/subscriptions.erb +0 -25
- data/lib/karafka/web/pro/ui/views/explorer/_no_topics.erb +0 -1
- data/lib/karafka/web/pro/ui/views/explorer/_topic.erb +0 -10
- data/lib/karafka/web/pro/ui/views/explorer/index.erb +0 -14
- data/lib/karafka/web/pro/ui/views/explorer/messages/_headers.erb +0 -33
- data/lib/karafka/web/pro/ui/views/explorer/partition/_cleaned.erb +0 -3
- data/lib/karafka/web/pro/ui/views/explorer/partition/_empty.erb +0 -3
- data/lib/karafka/web/pro/ui/views/explorer/show.erb +0 -97
- data/lib/karafka/web/pro/ui/views/explorer/topic/_empty.erb +0 -3
- data/lib/karafka/web/pro/ui/views/search/_breadcrumbs.erb +0 -1
- data/lib/karafka/web/pro/ui/views/search/_fix_errors.erb +0 -3
- data/lib/karafka/web/pro/ui/views/search/_no_results.erb +0 -3
- data/lib/karafka/web/pro/ui/views/search/_timeout.erb +0 -3
- data/lib/karafka/web/pro/ui/views/search/index.erb +0 -29
- data/lib/karafka/web/pro/ui/views/topics/_breadcrumbs.erb +0 -45
- data/lib/karafka/web/pro/ui/views/topics/_partition_offsets.erb +0 -10
- data/lib/karafka/web/pro/ui/views/topics/_topic.erb +0 -9
- data/lib/karafka/web/pro/ui/views/topics/distribution/_empty_partitions.erb +0 -1
- data/lib/karafka/web/pro/ui/views/topics/distribution/_partition.erb +0 -10
- data/lib/karafka/web/pro/ui/views/topics/index.erb +0 -14
- data/lib/karafka/web/ui/lib/ttl_cache.rb +0 -82
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4320bd74426900e3a77f1748242c757cb44a1b0b578300a413d5a1cb706ec3de
|
4
|
+
data.tar.gz: 75be8a6b974829adde0b266cb2df6e1f62752a35dc271110a04a00eef93865df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58a4c8ed2d9d400070aa4d43bb29a73006c435c00fd4d9143dd520db01368b5984729bd947bd88a8f2c1865fff25935449150b329f9396405ec53ce82c850299
|
7
|
+
data.tar.gz: d1c96b677662d862d9d05a70945f3ca7fbc55359033fb7f3350600eb4e0388673bc8482f1f165f0775b5d02bf8075801e1450286b59a0fdc4bd2b2d9e5405ef7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,75 @@
|
|
1
1
|
# Karafka Web Changelog
|
2
2
|
|
3
|
+
## 0.11.2 (2025-08-18)
|
4
|
+
- [Enhancement] Make sure that TTL counters related `#inspect` are thread-safe.
|
5
|
+
- [Change] Add new CI action to trigger auto-doc refresh.
|
6
|
+
- [Change] Update daisyUI to `5.0.50`
|
7
|
+
|
8
|
+
## 0.11.1 (2025-06-23)
|
9
|
+
- [Fix] Extremely high error turnover from hundreds of partitions can cause a deadlock in the reporter for transactional Web producer.
|
10
|
+
|
11
|
+
## 0.11.0 (2025-06-15)
|
12
|
+
- **[Feature]** Provide ability to pause/resume partitions on running consumers via the UI (Pro).
|
13
|
+
- **[Feature]** Provide ability to edit offsets of running consumers (Pro).
|
14
|
+
- **[Feature]** Support consumers that have mismatching schema in the Status page.
|
15
|
+
- **[Feature]** Provide ability to navigate to a timestamp in the Explorer (Pro).
|
16
|
+
- **[Feature]** Provide ability to create and delete topics from the Web UI (Pro).
|
17
|
+
- **[Feature]** Provide ability to manage topics configuration from the Web UI (Pro).
|
18
|
+
- **[Feature]** Provide ability to manage topics partitioning from the Web UI (Pro).
|
19
|
+
- **[Feature]** Provide ability to inject custom CSS and JS to adjust the Web UI.
|
20
|
+
- [Enhancement] Support KIP-82 (header values of arrays).
|
21
|
+
- [Enhancement] Include crawl-based link validator to the CI to ensure no dead links are generated.
|
22
|
+
- [Enhancement] Allow for custom links in the navigation (Pro).
|
23
|
+
- [Enhancement] Optimize topic specific lookups (Pro).
|
24
|
+
- [Enhancement] Replace simple in-process metadata cache with user tracking version for multi-process deployments improvements.
|
25
|
+
- [Enhancement] Move web ui topics configuration into config.
|
26
|
+
- [Enhancement] Upgrade DaisyUI to 5.0 and Tailwind to 4.0.
|
27
|
+
- [Enhancement] Make consumer sampler/stats gathering compatible across debian/alpine/wolfi OSes (chen-anders)
|
28
|
+
- [Enhancement] Promote consumers lags statistics chart to OSS.
|
29
|
+
- [Enhancement] Promote consumers RSS statistics chart to OSS.
|
30
|
+
- [Enhancement] Remove state cache usage that complicated ability to manage topics.
|
31
|
+
- [Enhancement] Improve flash messages.
|
32
|
+
- [Enhancement] Improve handling of post-submit redirects.
|
33
|
+
- [Enhancement] Provide better support for fully transactional consumers.
|
34
|
+
- [Enhancement] Error out when `#setup` is called after `#enable!`.
|
35
|
+
- [Enhancement] Use more performant Kafka API calls to describe topics.
|
36
|
+
- [Enhancement] Inject `.action-NAME` and `.controller-NAME` body classes for usage with custom CSS and JS.
|
37
|
+
- [Enhancement] Improve error handling in the commanding iterator listener (Pro).
|
38
|
+
- [Enhancement] Introduce `trace_id` to the errors tracked for DLQ correlation (if in use) (Pro).
|
39
|
+
- [Enhancement] Normalize how topics with partitions data is being displayed (`topic-[0,1,2]` etc).
|
40
|
+
- [Change] Do not fully hide config-disabled features but make them disabled.
|
41
|
+
- [Change] Remove per-consumer process duplicated details from Subscriptions and Jobs tabs.
|
42
|
+
- [Change] Move to trusted-publishers and remove signing since no longer needed.
|
43
|
+
- [Refactor] Make sure all temporary topics have a `it-` prefix in their name.
|
44
|
+
- [Refactor] Introduce a `bin/verify_topics_naming` script to ensure proper test topics naming convention.
|
45
|
+
- [Fix] Closest time based lookup redirect fails.
|
46
|
+
- [Fix] Fi incorrect error type in commanding listener from `web.controlling.controller.error` to `web.commanding.listener.error` (Pro).
|
47
|
+
- [Fix] Topic named messages collides with the explorer routes.
|
48
|
+
- [Fix] Fix a case where live poll button enabling would not immediately start refreshes.
|
49
|
+
- [Fix] Fix negative message deserialization allocation stats.
|
50
|
+
- [Fix] Fix incorrect background color in some of the alert notices.
|
51
|
+
- [Fix] Support dark mode in error pages.
|
52
|
+
- [Fix] Fix incorrect names in some of the tables headers.
|
53
|
+
- [Fix] Normalize position of commanding buttons in regards to other UI elements.
|
54
|
+
- [Fix] Fix incorrect indentation of some of the info messages.
|
55
|
+
- [Fix] Fix tables headers inconsistent alignments.
|
56
|
+
- [Fix] Fix incorrect warning box header color in the dark mode.
|
57
|
+
- [Fix] Fix missing breadcrumbs on the consumers overview page.
|
58
|
+
- [Fix] Fix a case where disabled buttons would be enabled back too early.
|
59
|
+
- [Fix] The recent page breadcrumbs and offset id are not refreshed on change.
|
60
|
+
- [Fix] Direct URL access with too big partition causes librdkafka crash.
|
61
|
+
- [Fix] Fix incorrect breadcrumbs for pending consumer jobs.
|
62
|
+
- [Fix] Allow for using default search matchers in Karafka Web UI topics including Errors.
|
63
|
+
- [Fix] Ensure that when flashes or alerts are visible, pages are not auto-refreshed (would cause them to dissapear).
|
64
|
+
- [Fix] Time selector in the explorer does not disappear after clicking out.
|
65
|
+
- [Fix] Tombstone message presentation epoch doesn't make sense.
|
66
|
+
- [Fix] Fix incorrectly displayed "No jobs" alert info.
|
67
|
+
- [Fix] Previous / next navigation in the explorer does not work when moving to transactional checkpoints.
|
68
|
+
- [Fix] Errors explorer does not work with transactional produced data.
|
69
|
+
- [Fix] Errors explorer in OSS does not have pagination.
|
70
|
+
- [Maintenance] Require `karafka-core` `>= 2.4.8` and `karafka` `>= 2.4.16`.
|
71
|
+
- [Maintenance] Update `AirDatepicker` to `3.6.0`.
|
72
|
+
|
3
73
|
## 0.10.4 (2024-11-26)
|
4
74
|
- **[Breaking]** Drop Ruby `3.0` support according to the EOL schedule.
|
5
75
|
- [Enhancement] Extract producers tracking `sync_threshold` into an internal config.
|
@@ -88,39 +158,6 @@
|
|
88
158
|
- [Fix] License identifier `LGPL-3.0` is deprecated for SPDX (#2177).
|
89
159
|
- [Fix] Do not include prettifying the payload for visibility in the resource computation cost.
|
90
160
|
|
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
161
|
## 0.9.1 (2024-05-03)
|
125
162
|
- [Fix] OSS `lag_stored` for not-subscribed consumers causes Web UI to crash.
|
126
163
|
|
@@ -158,12 +195,6 @@ Because of the reporting schema update, it is recommended to:
|
|
158
195
|
- [Fix] Fix dangling `console.log`.
|
159
196
|
- [Fix] Fix a case where consumer assignments would not be truncated on the consumers view.
|
160
197
|
|
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
198
|
## 0.8.2 (2024-02-16)
|
168
199
|
- [Enhancement] Defer scheduler background thread creation until needed allowing for forks.
|
169
200
|
- [Enhancement] Tag forks with fork indication + ppid reference when operating in swarm.
|
@@ -212,28 +243,6 @@ This version of the Karafka Web UI should be upgraded together with Karafka. All
|
|
212
243
|
- [Change] Rename "Active subscriptions" to "Subscriptions" as process subscriptions are always active.
|
213
244
|
- [Maintenance] Introduce granular subscription group contracts.
|
214
245
|
|
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
246
|
## 0.7.10 (2023-10-31)
|
238
247
|
- [Fix] Max LSO chart does not work as expected (#201)
|
239
248
|
|
@@ -265,14 +274,6 @@ Because of the reporting schema update, it is recommended to:
|
|
265
274
|
- [Maintenance] Include license and copyrights notice for `timeago.js` that was missing in the JS min file.
|
266
275
|
- [Refactor] Rename `ui.show_internal_topics` to `ui.visibility.internal_topics_display`
|
267
276
|
|
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
277
|
## 0.7.4 (2023-09-19)
|
277
278
|
- [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
279
|
- [Fix] Fix not working `ps` for macOS.
|
@@ -367,48 +368,6 @@ Because of the reporting schema update, it is recommended to:
|
|
367
368
|
- [Refactor] Use Roda `custom_block_results` plugin for controllers results handling.
|
368
369
|
- [Maintenance] Require `karafka` `2.2.0` due to fixes in the Iterator API and routing API extensions.
|
369
370
|
|
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
371
|
## 0.6.3 (2023-07-22)
|
413
372
|
- [Fix] Remove files from 0.7.0 accidentally added to the release.
|
414
373
|
|
@@ -446,38 +405,6 @@ Please note that if you decide to use the updated Web UI with not updated consum
|
|
446
405
|
- [Refactor] Remove not used and redundant partials.
|
447
406
|
- [Maintenance] Require `karafka` `2.1.4` due to fixes in metrics usage for workless flows.
|
448
407
|
|
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
408
|
## 0.5.2 (2023-05-22)
|
482
409
|
- [Improvement] Label ActiveJob consumers jobs with `active_job` tag.
|
483
410
|
- [Improvement] Label Virtual Partitions consumers with `virtual` tag.
|
@@ -494,15 +421,6 @@ Please make sure **not** to do it for the default `Karafka.producer` because it
|
|
494
421
|
- [Fix] Fix misspelling of word `committed`.
|
495
422
|
- [Fix] Shutdown and revocation jobs statistics extraction crashes when idle initialized without messages (#53)
|
496
423
|
|
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
424
|
## 0.4.1 (2023-04-12)
|
507
425
|
- [Improvement] Replace the "x time ago" in the code explorer with an exact date (`2023-04-12 10:16:48.596 +0200 `).
|
508
426
|
- [Improvement] When hovering over a message timestamp, a label with raw numeric timestamp will be presented.
|
@@ -515,26 +433,11 @@ Please note that if you decide to use the updated Web UI with not updated consum
|
|
515
433
|
- [Fix] Add missing support for using multiple subscription groups within a single consumer group.
|
516
434
|
- [Fix] Mask SASL credentials in topic routing view (#46)
|
517
435
|
|
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
436
|
## 0.3.1 (2023-03-27)
|
528
437
|
- [Fix] Add missing retention policy for states topic.
|
529
438
|
- [Fix] Fix display of compacted messages placeholders for offsets lower than low watermark.
|
530
439
|
- [Fix] Fix invalid pagination per page count.
|
531
440
|
|
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
441
|
## 0.3.0 (2023-03-27)
|
539
442
|
- **[Feature]** Support paginating over compacted topics partitions.
|
540
443
|
- [Improvement] Display watermark offsets in the errors view.
|
@@ -554,15 +457,6 @@ If upgrading from lower, please follow `0.3.0` upgrade procedure.
|
|
554
457
|
- [Maintenance] Remove compatibility fallbacks for job and process tags (#1342)
|
555
458
|
- [Maintenance] Extract base sampler for tracking and web.
|
556
459
|
|
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
460
|
## 0.2.5 (2023-03-17)
|
567
461
|
- [Fix] Critical instrumentation async errors intercepted by Web don't have JID for job removal (#1366)
|
568
462
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-web (0.
|
4
|
+
karafka-web (0.11.2)
|
5
5
|
erubi (~> 1.4)
|
6
|
-
karafka (>= 2.
|
7
|
-
karafka-core (>= 2.
|
6
|
+
karafka (>= 2.5.0.rc2, < 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.
|
14
|
+
activesupport (7.2.2.2)
|
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,121 @@ GEM
|
|
23
24
|
securerandom (>= 0.3)
|
24
25
|
tzinfo (~> 2.0, >= 2.0.5)
|
25
26
|
base64 (0.2.0)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
benchmark (0.4.1)
|
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.
|
37
|
-
activesupport (>=
|
38
|
-
ffi (1.17.
|
38
|
+
factory_bot (6.5.5)
|
39
|
+
activesupport (>= 6.1.0)
|
40
|
+
ffi (1.17.2)
|
39
41
|
fugit (1.11.1)
|
40
42
|
et-orbi (~> 1, >= 1.2.11)
|
41
43
|
raabro (~> 1.4)
|
42
|
-
i18n (1.14.
|
44
|
+
i18n (1.14.7)
|
43
45
|
concurrent-ruby (~> 1.0)
|
44
|
-
karafka (2.
|
46
|
+
karafka (2.5.0)
|
45
47
|
base64 (~> 0.2)
|
46
|
-
karafka-core (>= 2.
|
47
|
-
karafka-rdkafka (>= 0.
|
48
|
-
waterdrop (>= 2.
|
48
|
+
karafka-core (>= 2.5.2, < 2.6.0)
|
49
|
+
karafka-rdkafka (>= 0.19.5)
|
50
|
+
waterdrop (>= 2.8.3, < 3.0.0)
|
49
51
|
zeitwerk (~> 2.3)
|
50
|
-
karafka-core (2.
|
51
|
-
karafka-rdkafka (>= 0.
|
52
|
-
|
52
|
+
karafka-core (2.5.2)
|
53
|
+
karafka-rdkafka (>= 0.19.2, < 0.21.0)
|
54
|
+
logger (>= 1.6.0)
|
55
|
+
karafka-rdkafka (0.19.5)
|
53
56
|
ffi (~> 1.15)
|
54
57
|
mini_portile2 (~> 2.6)
|
55
58
|
rake (> 12)
|
56
|
-
logger (1.
|
57
|
-
mini_portile2 (2.8.
|
58
|
-
minitest (5.25.
|
59
|
-
|
59
|
+
logger (1.7.0)
|
60
|
+
mini_portile2 (2.8.9)
|
61
|
+
minitest (5.25.5)
|
62
|
+
nokogiri (1.18.9)
|
63
|
+
mini_portile2 (~> 2.8.2)
|
64
|
+
racc (~> 1.4)
|
65
|
+
nokogiri (1.18.9-aarch64-linux-gnu)
|
66
|
+
racc (~> 1.4)
|
67
|
+
nokogiri (1.18.9-aarch64-linux-musl)
|
68
|
+
racc (~> 1.4)
|
69
|
+
nokogiri (1.18.9-arm-linux-gnu)
|
70
|
+
racc (~> 1.4)
|
71
|
+
nokogiri (1.18.9-arm-linux-musl)
|
72
|
+
racc (~> 1.4)
|
73
|
+
nokogiri (1.18.9-arm64-darwin)
|
74
|
+
racc (~> 1.4)
|
75
|
+
nokogiri (1.18.9-x86_64-darwin)
|
76
|
+
racc (~> 1.4)
|
77
|
+
nokogiri (1.18.9-x86_64-linux-gnu)
|
78
|
+
racc (~> 1.4)
|
79
|
+
nokogiri (1.18.9-x86_64-linux-musl)
|
80
|
+
racc (~> 1.4)
|
81
|
+
ostruct (0.6.3)
|
60
82
|
raabro (1.4.0)
|
61
|
-
|
62
|
-
rack
|
83
|
+
racc (1.8.1)
|
84
|
+
rack (3.1.16)
|
85
|
+
rack-test (2.2.0)
|
63
86
|
rack (>= 1.3)
|
64
87
|
rackup (0.2.3)
|
65
88
|
rack (>= 3.0.0.beta1)
|
66
89
|
webrick
|
67
90
|
rake (13.2.1)
|
68
|
-
roda (3.
|
91
|
+
roda (3.92.0)
|
69
92
|
rack
|
70
|
-
rspec (3.13.
|
93
|
+
rspec (3.13.1)
|
71
94
|
rspec-core (~> 3.13.0)
|
72
95
|
rspec-expectations (~> 3.13.0)
|
73
96
|
rspec-mocks (~> 3.13.0)
|
74
|
-
rspec-core (3.13.
|
97
|
+
rspec-core (3.13.4)
|
75
98
|
rspec-support (~> 3.13.0)
|
76
|
-
rspec-expectations (3.13.
|
99
|
+
rspec-expectations (3.13.5)
|
77
100
|
diff-lcs (>= 1.2.0, < 2.0)
|
78
101
|
rspec-support (~> 3.13.0)
|
79
|
-
rspec-mocks (3.13.
|
102
|
+
rspec-mocks (3.13.5)
|
80
103
|
diff-lcs (>= 1.2.0, < 2.0)
|
81
104
|
rspec-support (~> 3.13.0)
|
82
|
-
rspec-support (3.13.
|
83
|
-
securerandom (0.
|
105
|
+
rspec-support (3.13.4)
|
106
|
+
securerandom (0.4.1)
|
84
107
|
simplecov (0.22.0)
|
85
108
|
docile (~> 1.1)
|
86
109
|
simplecov-html (~> 0.11)
|
87
110
|
simplecov_json_formatter (~> 0.1)
|
88
|
-
simplecov-html (0.
|
111
|
+
simplecov-html (0.13.1)
|
89
112
|
simplecov_json_formatter (0.1.4)
|
90
|
-
tilt (2.
|
113
|
+
tilt (2.6.0)
|
91
114
|
tzinfo (2.0.6)
|
92
115
|
concurrent-ruby (~> 1.0)
|
93
|
-
waterdrop (2.
|
94
|
-
karafka-core (>= 2.4.
|
95
|
-
karafka-rdkafka (>= 0.
|
116
|
+
waterdrop (2.8.4)
|
117
|
+
karafka-core (>= 2.4.9, < 3.0.0)
|
118
|
+
karafka-rdkafka (>= 0.19.2)
|
96
119
|
zeitwerk (~> 2.3)
|
97
|
-
webrick (1.
|
98
|
-
zeitwerk (2.6.
|
120
|
+
webrick (1.9.1)
|
121
|
+
zeitwerk (2.6.18)
|
99
122
|
|
100
123
|
PLATFORMS
|
124
|
+
aarch64-linux-gnu
|
125
|
+
aarch64-linux-musl
|
126
|
+
arm-linux-gnu
|
127
|
+
arm-linux-musl
|
128
|
+
arm64-darwin
|
101
129
|
ruby
|
102
|
-
|
130
|
+
x86-linux-gnu
|
131
|
+
x86-linux-musl
|
132
|
+
x86_64-darwin
|
133
|
+
x86_64-linux-gnu
|
134
|
+
x86_64-linux-musl
|
103
135
|
|
104
136
|
DEPENDENCIES
|
105
137
|
byebug
|
106
138
|
factory_bot
|
107
139
|
fugit
|
108
140
|
karafka-web!
|
141
|
+
nokogiri
|
109
142
|
ostruct
|
110
143
|
rack-test
|
111
144
|
rackup (~> 0.2)
|
@@ -113,4 +146,4 @@ DEPENDENCIES
|
|
113
146
|
simplecov
|
114
147
|
|
115
148
|
BUNDLED WITH
|
116
|
-
2.
|
149
|
+
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
|
10
|
-
|
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.
|
data/Rakefile
ADDED
@@ -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/config/locales/slogans.yml
CHANGED
@@ -43,7 +43,7 @@ en:
|
|
43
43
|
- "Are you concerned about managing large data flows? Virtual Partitions in Karafka Pro simplify data processing, offering unparalleled efficiency and scalability."
|
44
44
|
- "Looking for flexible scheduling solutions? Karafka's Pro Periodic Jobs feature allows precise task timing and execution, enhancing your application's performance and reliability."
|
45
45
|
- "Need advanced routing capabilities? Routing Patterns in Karafka Pro provide dynamic message routing, improving your system's adaptability and efficiency."
|
46
|
-
- "Are you
|
46
|
+
- "Are you seeking to control your workload? With Rate Limiting in Karafka Pro, you can effectively manage and balance your system's load, ensuring optimal performance under any conditions."
|
47
47
|
- "Need quick data access methods? The Iterator API in Karafka Pro provides efficient data retrieval methods."
|
48
48
|
- "Want more nuanced error handling? Discover Granular Backoffs in Karafka Pro, which allows for detailed control over retry mechanisms and error recovery processes."
|
49
49
|
- "Need a boost in data processing speed? Multiplexing in Karafka Pro enables parallel processing, significantly increasing throughput and reducing processing times."
|
data/docker-compose.yml
CHANGED
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
|
});
|