karafka-web 0.11.2 → 0.11.3
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 +10 -0
- data/Gemfile.lock +40 -14
- data/bin/verify_kafka_warnings +1 -1
- data/config/locales/errors.yml +1 -0
- data/docker-compose.yml +1 -3
- data/karafka-web.gemspec +2 -2
- data/lib/karafka/web/deserializer.rb +6 -1
- data/lib/karafka/web/errors.rb +8 -5
- data/lib/karafka/web/processing/consumers/aggregators/state.rb +5 -1
- data/lib/karafka/web/processing/consumers/contracts/state.rb +6 -1
- data/lib/karafka/web/tracking/producers/listeners/base.rb +1 -1
- data/lib/karafka/web/ui/public/javascripts/application.min.js.gz +0 -0
- data/lib/karafka/web/ui/public/stylesheets/application.min.css +196 -105
- 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/version.rb +1 -1
- data/lib/karafka/web.rb +8 -10
- data/package-lock.json +78 -78
- data/package.json +3 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b958131581b6fe2fd1a45a68b7366fb842ca15eccd946988516e78b7fcc3cce
|
4
|
+
data.tar.gz: 899898076b7fc09111d8cfd77f5e68fe6158b9bfee3128292f77248f2b5922c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b53b0e2dc696cf5af719ad49b90c130a7122261a8123e5ac8ca4deb31d0f397e49f09d71032df4e840ad3a5f9b5b3115709fbcd08568a0991ee24b0da1b7054e
|
7
|
+
data.tar.gz: b3eeac33c925b9527aef85231a74a255c3d59aedd36f20a174e72b282db744cb6a0779258c9136266f54041ab0e81ce8c95a6a042d4ecc908e0cbba299d651f3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Karafka Web Changelog
|
2
2
|
|
3
|
+
## 0.11.3 (2025-09-29)
|
4
|
+
- [Enhancement] Upgrade DaisyUI to 5.1.
|
5
|
+
- [Change] Remove Ruby `3.1` support according to the EOL schedule.
|
6
|
+
- [Change] Normalize how libs and dependencies are required (no functional change for the end user)
|
7
|
+
- [Fix] Fix a case where the states JSON would contain multiple entries for the same processes causing `JSON.parse` with `allow_duplicate_key: false` to fail.
|
8
|
+
- [Fix] Fix incorrect reference to `IncompatibleSchemaError`.
|
9
|
+
|
3
10
|
## 0.11.2 (2025-08-18)
|
4
11
|
- [Enhancement] Make sure that TTL counters related `#inspect` are thread-safe.
|
5
12
|
- [Change] Add new CI action to trigger auto-doc refresh.
|
@@ -158,6 +165,9 @@
|
|
158
165
|
- [Fix] License identifier `LGPL-3.0` is deprecated for SPDX (#2177).
|
159
166
|
- [Fix] Do not include prettifying the payload for visibility in the resource computation cost.
|
160
167
|
|
168
|
+
## 0.9.2 (2025-09-19)
|
169
|
+
- [Fix] Fix BaseController caller action name extraction.
|
170
|
+
|
161
171
|
## 0.9.1 (2024-05-03)
|
162
172
|
- [Fix] OSS `lag_stored` for not-subscribed consumers causes Web UI to crash.
|
163
173
|
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-web (0.11.
|
4
|
+
karafka-web (0.11.3)
|
5
5
|
erubi (~> 1.4)
|
6
|
-
karafka (>= 2.5.0
|
6
|
+
karafka (>= 2.5.0, < 2.6.0)
|
7
7
|
karafka-core (>= 2.5.0, < 2.6.0)
|
8
8
|
roda (~> 3.68, >= 3.69)
|
9
9
|
tilt (~> 2.0)
|
@@ -38,7 +38,17 @@ GEM
|
|
38
38
|
factory_bot (6.5.5)
|
39
39
|
activesupport (>= 6.1.0)
|
40
40
|
ffi (1.17.2)
|
41
|
-
|
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)
|
51
|
+
fugit (1.11.2)
|
42
52
|
et-orbi (~> 1, >= 1.2.11)
|
43
53
|
raabro (~> 1.4)
|
44
54
|
i18n (1.14.7)
|
@@ -52,31 +62,47 @@ GEM
|
|
52
62
|
karafka-core (2.5.2)
|
53
63
|
karafka-rdkafka (>= 0.19.2, < 0.21.0)
|
54
64
|
logger (>= 1.6.0)
|
55
|
-
karafka-rdkafka (0.
|
65
|
+
karafka-rdkafka (0.20.1)
|
56
66
|
ffi (~> 1.15)
|
67
|
+
logger
|
68
|
+
mini_portile2 (~> 2.6)
|
69
|
+
rake (> 12)
|
70
|
+
karafka-rdkafka (0.20.1-arm64-darwin)
|
71
|
+
ffi (~> 1.15)
|
72
|
+
logger
|
73
|
+
mini_portile2 (~> 2.6)
|
74
|
+
rake (> 12)
|
75
|
+
karafka-rdkafka (0.20.1-x86_64-linux-gnu)
|
76
|
+
ffi (~> 1.15)
|
77
|
+
logger
|
78
|
+
mini_portile2 (~> 2.6)
|
79
|
+
rake (> 12)
|
80
|
+
karafka-rdkafka (0.20.1-x86_64-linux-musl)
|
81
|
+
ffi (~> 1.15)
|
82
|
+
logger
|
57
83
|
mini_portile2 (~> 2.6)
|
58
84
|
rake (> 12)
|
59
85
|
logger (1.7.0)
|
60
86
|
mini_portile2 (2.8.9)
|
61
87
|
minitest (5.25.5)
|
62
|
-
nokogiri (1.18.
|
88
|
+
nokogiri (1.18.10)
|
63
89
|
mini_portile2 (~> 2.8.2)
|
64
90
|
racc (~> 1.4)
|
65
|
-
nokogiri (1.18.
|
91
|
+
nokogiri (1.18.10-aarch64-linux-gnu)
|
66
92
|
racc (~> 1.4)
|
67
|
-
nokogiri (1.18.
|
93
|
+
nokogiri (1.18.10-aarch64-linux-musl)
|
68
94
|
racc (~> 1.4)
|
69
|
-
nokogiri (1.18.
|
95
|
+
nokogiri (1.18.10-arm-linux-gnu)
|
70
96
|
racc (~> 1.4)
|
71
|
-
nokogiri (1.18.
|
97
|
+
nokogiri (1.18.10-arm-linux-musl)
|
72
98
|
racc (~> 1.4)
|
73
|
-
nokogiri (1.18.
|
99
|
+
nokogiri (1.18.10-arm64-darwin)
|
74
100
|
racc (~> 1.4)
|
75
|
-
nokogiri (1.18.
|
101
|
+
nokogiri (1.18.10-x86_64-darwin)
|
76
102
|
racc (~> 1.4)
|
77
|
-
nokogiri (1.18.
|
103
|
+
nokogiri (1.18.10-x86_64-linux-gnu)
|
78
104
|
racc (~> 1.4)
|
79
|
-
nokogiri (1.18.
|
105
|
+
nokogiri (1.18.10-x86_64-linux-musl)
|
80
106
|
racc (~> 1.4)
|
81
107
|
ostruct (0.6.3)
|
82
108
|
raabro (1.4.0)
|
@@ -87,7 +113,7 @@ GEM
|
|
87
113
|
rackup (0.2.3)
|
88
114
|
rack (>= 3.0.0.beta1)
|
89
115
|
webrick
|
90
|
-
rake (13.
|
116
|
+
rake (13.3.0)
|
91
117
|
roda (3.92.0)
|
92
118
|
rack
|
93
119
|
rspec (3.13.1)
|
data/bin/verify_kafka_warnings
CHANGED
data/config/locales/errors.yml
CHANGED
data/docker-compose.yml
CHANGED
data/karafka-web.gemspec
CHANGED
@@ -17,14 +17,14 @@ 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.5.0
|
20
|
+
spec.add_dependency 'karafka', '>= 2.5.0', '< 2.6.0'
|
21
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
|
|
25
25
|
spec.add_development_dependency 'rackup', '~> 0.2'
|
26
26
|
|
27
|
-
spec.required_ruby_version = '>= 3.
|
27
|
+
spec.required_ruby_version = '>= 3.2.0'
|
28
28
|
|
29
29
|
spec.executables = %w[karafka-web]
|
30
30
|
spec.require_paths = %w[lib]
|
@@ -21,7 +21,12 @@ module Karafka
|
|
21
21
|
|
22
22
|
::JSON.parse(
|
23
23
|
raw_payload,
|
24
|
-
symbolize_names: true
|
24
|
+
symbolize_names: true,
|
25
|
+
# We allow duplicates keys because of a fixed bug that was causing duplicated process
|
26
|
+
# ids to leak into the consumers states data. Once a proper migration is written, this
|
27
|
+
# can be retired
|
28
|
+
# @see https://github.com/karafka/karafka-web/issues/741
|
29
|
+
allow_duplicate_key: true
|
25
30
|
)
|
26
31
|
end
|
27
32
|
end
|
data/lib/karafka/web/errors.rb
CHANGED
@@ -54,6 +54,14 @@ module Karafka
|
|
54
54
|
|
55
55
|
# Similar to the one related to consumers states
|
56
56
|
MissingConsumersMetricsTopicError = Class.new(BaseError)
|
57
|
+
|
58
|
+
# Similar to management and ui errors with the same name, it is raised when a critical
|
59
|
+
# incompatibility is detected during processing.
|
60
|
+
#
|
61
|
+
# This error is raised when there was an attempt to process reports that are in a newer
|
62
|
+
# version that the one in the current process. We prevent this from happening not to
|
63
|
+
# corrupt the data. Please upgrade all the Web UI consumers to the same version
|
64
|
+
IncompatibleSchemaError = Class.new(BaseError)
|
57
65
|
end
|
58
66
|
|
59
67
|
# Ui related errors
|
@@ -67,11 +75,6 @@ module Karafka
|
|
67
75
|
|
68
76
|
# Raised when we want to stop the flow and render 403
|
69
77
|
ForbiddenError = Class.new(BaseError)
|
70
|
-
|
71
|
-
# Raised when trying to get info about a consumer that has incompatible schema in its
|
72
|
-
# report. It usually means you are running different version of the Web UI in the consumer
|
73
|
-
# and in the Web server
|
74
|
-
IncompatibleSchemaError = Class.new(BaseError)
|
75
78
|
end
|
76
79
|
end
|
77
80
|
end
|
@@ -51,7 +51,11 @@ module Karafka
|
|
51
51
|
# @param report [Hash]
|
52
52
|
# @param offset [Integer]
|
53
53
|
def add_state(report, offset)
|
54
|
-
|
54
|
+
# When we deserialize the keys from the stored state, because we convert keys into
|
55
|
+
# symbols, we may have given process state already stored. This means that in order
|
56
|
+
# to update it, we do need to have the new report process id also as a symbol to
|
57
|
+
# act as the key
|
58
|
+
process_id = report[:process][:id].to_sym
|
55
59
|
|
56
60
|
state[:processes][process_id] = {
|
57
61
|
dispatched_at: report[:dispatched_at],
|
@@ -19,9 +19,14 @@ module Karafka
|
|
19
19
|
required(:schema_version) { |val| val.is_a?(String) && !val.empty? }
|
20
20
|
required(:dispatched_at) { |val| val.is_a?(Numeric) && val.positive? }
|
21
21
|
required(:stats) { |val| val.is_a?(Hash) }
|
22
|
-
required(:processes) { |val| val.is_a?(Hash) }
|
23
22
|
required(:schema_state) { |val| VALID_SCHEMA_STATES.include?(val) }
|
24
23
|
|
24
|
+
required(:processes) do |val|
|
25
|
+
next false unless val.is_a?(Hash)
|
26
|
+
|
27
|
+
val.keys.all? { |key| key.is_a?(Symbol) }
|
28
|
+
end
|
29
|
+
|
25
30
|
virtual do |data, errors|
|
26
31
|
next unless errors.empty?
|
27
32
|
|
Binary file
|