karafka-web 0.10.0.beta1 → 0.10.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -2
- data/lib/karafka/web/config.rb +9 -0
- data/lib/karafka/web/contracts/config.rb +4 -0
- data/lib/karafka/web/management/actions/enable.rb +6 -0
- data/lib/karafka/web/tracking/consumers/contracts/job.rb +1 -1
- data/lib/karafka/web/tracking/consumers/listeners/processing.rb +5 -1
- data/lib/karafka/web/ui/public/javascripts/application.min.js +1 -1
- 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/theme_manager.js +12 -5
- data/lib/karafka/web/ui/public/stylesheets/application.min.css.gz +0 -0
- data/lib/karafka/web/ui/views/shared/_header.erb +4 -2
- data/lib/karafka/web/version.rb +1 -1
- data/package-lock.json +8 -3
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 8f9e6ffa0b52fd034fba9f20be4a3862dac935610601daa3e7ac14b912ac166d
|
4
|
+
data.tar.gz: d0cc099e8bcb8367c33c27326223346983fddb4bf0e8b40397c8ad2ae30a83fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b88382f36d89b10ffaa249b8533210007620ae979af936b29a70a1c6b81cad8e2058a6bfc9d7c494dded5b67139da62e74629722ba1fb420d0e44664d25ea1ea
|
7
|
+
data.tar.gz: 541b6de732575af548cd39a12730c1eea7c60e072f468b5b28ead575828ae2863110b2975a79dd2d3389b9d1899048d5c9f225ef6cacef3645cae87baf062a3b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,9 @@
|
|
7
7
|
- **[Feature]** Support per request policies for inspection and operations limitation.
|
8
8
|
- **[Feature]** Provide Search capabilities in the Explorer (Pro).
|
9
9
|
- **[Feature]** Provide dark mode.
|
10
|
+
- [Enhancement] Set `enable.partition.eof` to `false` for Web UI consumer group as it is not needed.
|
11
|
+
- [Enhancement] Allow for configuration of extra `kafka` scope options for the Web UI consumer group.
|
12
|
+
- [Enhancement] Support Karafka `#eofed` consumer action.
|
10
13
|
- [Enhancement] Provide topics watermarks inspection page (Pro).
|
11
14
|
- [Enhancement] Use Turbo to improve usability.
|
12
15
|
- [Enhancement] Round poll age reporting to precision of 2 reducing the payload size.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-web (0.10.0
|
4
|
+
karafka-web (0.10.0)
|
5
5
|
erubi (~> 1.4)
|
6
6
|
karafka (>= 2.4.7, < 2.5.0)
|
7
7
|
karafka-core (>= 2.4.0, < 2.5.0)
|
@@ -33,7 +33,6 @@ GEM
|
|
33
33
|
factory_bot (6.4.6)
|
34
34
|
activesupport (>= 5.0.0)
|
35
35
|
ffi (1.17.0)
|
36
|
-
ffi (1.17.0-x86_64-linux-gnu)
|
37
36
|
i18n (1.14.5)
|
38
37
|
concurrent-ruby (~> 1.0)
|
39
38
|
karafka (2.4.7)
|
data/lib/karafka/web/config.rb
CHANGED
@@ -123,6 +123,15 @@ module Karafka
|
|
123
123
|
# By default we flush the states twice as often as the data reporting.
|
124
124
|
# This will allow us to have closer to real-time reporting.
|
125
125
|
setting :interval, default: 2_500
|
126
|
+
|
127
|
+
# Extra kafka level settings that we merge to the defaults when building the Web consumer
|
128
|
+
# group. User may want different things than we in regard to operations, thus effectively
|
129
|
+
# crippling responsiveness or stability of reporting.
|
130
|
+
setting :kafka, default: {
|
131
|
+
# We do not use at the moment the `#eofed` flag for anything, thus there is no point in
|
132
|
+
# having it set to true if user users it.
|
133
|
+
'enable.partition.eof': false
|
134
|
+
}.freeze
|
126
135
|
end
|
127
136
|
|
128
137
|
setting :ui do
|
@@ -48,6 +48,9 @@ module Karafka
|
|
48
48
|
required(:active) { |val| [true, false].include?(val) }
|
49
49
|
# Do not update data more often not to overload and not to generate too much data
|
50
50
|
required(:interval) { |val| val.is_a?(Integer) && val >= 1_000 }
|
51
|
+
|
52
|
+
# Extra Kafka setup for our processing consumer
|
53
|
+
required(:kafka) { |val| val.is_a?(Hash) }
|
51
54
|
end
|
52
55
|
|
53
56
|
nested(:ui) do
|
@@ -59,6 +62,7 @@ module Karafka
|
|
59
62
|
required(:cache) { |val| !val.nil? }
|
60
63
|
required(:per_page) { |val| val.is_a?(Integer) && val >= 1 && val <= 100 }
|
61
64
|
required(:max_visible_payload_size) { |val| val.is_a?(Integer) && val >= 1 }
|
65
|
+
required(:kafka) { |val| val.is_a?(Hash) }
|
62
66
|
|
63
67
|
required(:dlq_patterns) do |val|
|
64
68
|
val.is_a?(Array) &&
|
@@ -47,6 +47,9 @@ module Karafka
|
|
47
47
|
|
48
48
|
# Enables all the needed routes
|
49
49
|
def extend_routing
|
50
|
+
kafka_config = ::Karafka::App.config.kafka.dup
|
51
|
+
kafka_config.merge!(::Karafka::Web.config.processing.kafka)
|
52
|
+
|
50
53
|
::Karafka::App.routes.draw do
|
51
54
|
payload_deserializer = ::Karafka::Web::Deserializer.new
|
52
55
|
|
@@ -70,6 +73,9 @@ module Karafka
|
|
70
73
|
# consumer group name would be renamed and we would start consuming all
|
71
74
|
# historical
|
72
75
|
initial_offset 'latest'
|
76
|
+
# We use the defaults + our config alterations that may not align with what
|
77
|
+
# user wants for his topics.
|
78
|
+
kafka kafka_config
|
73
79
|
end
|
74
80
|
|
75
81
|
# We define those three here without consumption, so Web understands how to
|
@@ -18,7 +18,7 @@ module Karafka
|
|
18
18
|
required(:last_offset) { |val| val.is_a?(Integer) && (val >= 0 || val == -1001) }
|
19
19
|
required(:committed_offset) { |val| val.is_a?(Integer) }
|
20
20
|
required(:messages) { |val| val.is_a?(Integer) && val >= 0 }
|
21
|
-
required(:type) { |val| %w[consume revoked shutdown tick].include?(val) }
|
21
|
+
required(:type) { |val| %w[consume revoked shutdown tick eofed].include?(val) }
|
22
22
|
required(:tags) { |val| val.is_a?(Karafka::Core::Taggable::Tags) }
|
23
23
|
# -1 can be here for workless flows
|
24
24
|
required(:consumption_lag) { |val| val.is_a?(Integer) && (val >= 0 || val == -1) }
|
@@ -22,6 +22,7 @@ module Karafka
|
|
22
22
|
revoked
|
23
23
|
shutdown
|
24
24
|
tick
|
25
|
+
eofed
|
25
26
|
].each do |action|
|
26
27
|
# Tracks the job that is going to be scheduled so we can also display pending jobs
|
27
28
|
class_eval <<~RUBY, __FILE__, __LINE__ + 1
|
@@ -85,6 +86,8 @@ module Karafka
|
|
85
86
|
'shutdown'
|
86
87
|
when 'consumer.tick.error'
|
87
88
|
'tick'
|
89
|
+
when 'consumer.eofed.error'
|
90
|
+
'eofed'
|
88
91
|
# This is not a user facing execution flow, but internal system one
|
89
92
|
# that is why it will not be reported as a separate job for the UI
|
90
93
|
when 'consumer.idle.error'
|
@@ -109,7 +112,8 @@ module Karafka
|
|
109
112
|
[
|
110
113
|
[:revoke, :revoked, 'revoked'],
|
111
114
|
[:shutting_down, :shutdown, 'shutdown'],
|
112
|
-
[:tick, :ticked, 'tick']
|
115
|
+
[:tick, :ticked, 'tick'],
|
116
|
+
[:eof, :eofed, 'eofed']
|
113
117
|
].each do |pre, post, action|
|
114
118
|
class_eval <<~METHOD, __FILE__, __LINE__ + 1
|
115
119
|
# Stores this job details
|
@@ -57,7 +57,7 @@ let DataFormattingUtils={niceBytes(e,t=2){let i=0,s=parseInt(e,10)||0;for(;1024<
|
|
57
57
|
/*! Source: lib/karafka/web/ui/public/javascripts/components/offset_datetime.js */function loadOffsetLookupDatePicker(){var e={locale:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",dateFormat:"yyyy-MM-dd",timeFormat:"HH:mm",firstDay:1},timepicker:!0,onSelect:({})=>{document.getElementById("offset-lookup-datepicker").value=""},onShow:function(){offsetLookupDatePicker.selectDate((new Date).getTime()),offsetLookupDatePicker.maxDate=new Date},onHide:function(){offsetLookupDatePicker.selectDate((new Date).getTime())},buttons:[{content(e){return"Go to offset"},onClick(e){var t=e.selectedDates[0]||new Date,i=e.$el.dataset.target;e.hide(),location.href=i+"/"+formatRedirectDateTime(t)}}]};null!=offsetLookupDatePicker&&offsetLookupDatePicker.destroy(),null!=document.getElementById("offset-lookup-datepicker")&&((offsetLookupDatePicker=new AirDatepicker("#offset-lookup-datepicker",e)).maxDate=new Date,offsetLookupDatePicker.selectDate((new Date).getTime()))}function formatRedirectDateTime(e){return e.getFullYear()+`-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}/${String(e.getHours()).padStart(2,"0")}:`+String(e.getMinutes()).padStart(2,"0")}function isOffsetLookupCalendarVisible(){return null!=offsetLookupDatePicker&&offsetLookupDatePicker.visible}
|
58
58
|
/*! Source: lib/karafka/web/ui/public/javascripts/components/search.js */offsetLookupDatePicker=null;class SearchModalManager{constructor(){this.init()}init(){var t=document.getElementById("offset-input");if(!t)return!1;var i=document.getElementById("offset-timestamp-input"),e=document.querySelectorAll('input[name="search[offset_type]"]'),s=document.getElementById("no-search-criteria"),r=document.getElementById("search-form-errors");e.forEach(function(e){e.addEventListener("change",function(){t.disabled=!document.getElementById("offset-value").checked,t.required=document.getElementById("offset-value").checked,i.disabled=!document.getElementById("offset-timestamp").checked,i.required=document.getElementById("offset-timestamp").checked})}),t.disabled=!document.getElementById("offset-value").checked,t.required=document.getElementById("offset-value").checked,i.disabled=!document.getElementById("offset-timestamp").checked,i.required=document.getElementById("offset-timestamp").checked,document.getElementById("show-search-modal").addEventListener("click",function(){document.getElementById("messages_search_modal").showModal();var e=document.querySelector('#messages_search_modal input[type="text"]');e&&e.focus()}),(s||r)&&(document.getElementById("messages_search_modal").showModal(),e=document.querySelector('#messages_search_modal input[type="text"]'))&&e.focus()}}class SearchMetadataVisibilityManager{constructor(){this.storageKey="karafkaSearchMetadataVisibility",this.metadataElement=document.getElementById("search-metadata-details"),this.toggleButton=document.getElementById("toggle-search-metadata"),this.metadataElement&&this.init()}init(){this.restoreVisibility(),self=this;var t=document.getElementById("toggle-search-metadata");t.addEventListener("click",function(){var e=document.getElementById("search-metadata-details");e.classList.toggle("hidden"),t.classList.toggle("active"),self.saveVisibility(!e.classList.contains("hidden"))})}readVisibility(){return"true"===localStorage.getItem(this.storageKey)}saveVisibility(e){localStorage.setItem(this.storageKey,e)}restoreVisibility(){this.readVisibility()&&(document.getElementById("toggle-search-metadata").classList.add("active"),document.getElementById("search-metadata-details").classList.remove("hidden"))}}
|
59
59
|
/*! Source: lib/karafka/web/ui/public/javascripts/components/tabs_manager.js */class TabsManager{constructor(){this.storageKey="karafkaActiveTabsv2"}readAllActiveTabs(){var e=localStorage.getItem(this.storageKey);return e?JSON.parse(e):{}}saveAllActiveTabs(e){localStorage.setItem(this.storageKey,JSON.stringify(e))}saveCurrentActiveTabs(){var e=document.querySelectorAll(".inline-tabs > .active"),t=window.location.href.split("?")[0];let i=[];var s=this.readAllActiveTabs();e.forEach(e=>{i.push(e.id)}),s[t]=i,this.saveAllActiveTabs(s)}setActiveTabs(){var e=window.location.href.split("?")[0],e=this.readAllActiveTabs()[e];(e=e||Array.from(document.querySelectorAll(".inline-tabs > .active")).map(e=>e.id))&&e.forEach(e=>{e=document.getElementById(e);e&&(e.parentElement.querySelectorAll(".custom-tab").forEach(function(e){e.classList.remove("active")}),e.classList.add("active"),document.getElementById(e.getAttribute("data-target")).classList.remove("hidden"))})}manageTabs(){this.setActiveTabs();var t=this;document.querySelectorAll(".inline-tabs > .custom-tab").forEach(function(e){e.addEventListener("click",function(e){this.parentElement.querySelectorAll(".custom-tab").forEach(function(e){e.classList.remove("active");e=e.getAttribute("data-target");document.getElementById(e).classList.add("hidden")}),this.classList.add("active"),t.saveCurrentActiveTabs(),t.setActiveTabs()})})}}
|
60
|
-
/*! Source: lib/karafka/web/ui/public/javascripts/components/theme_manager.js */class ThemeManager{constructor(){this.themeSelectorButton=document.getElementById("theme-selector"),this.themeSelectorLight=document.getElementById("theme-selector-light"),this.themeSelectorDark=document.getElementById("theme-selector-dark"),this.init()}init(){this.lightThemeLink=document.
|
60
|
+
/*! Source: lib/karafka/web/ui/public/javascripts/components/theme_manager.js */class ThemeManager{constructor(){this.themeSelectorButton=document.getElementById("theme-selector"),this.themeSelectorLight=document.getElementById("theme-selector-light"),this.themeSelectorDark=document.getElementById("theme-selector-dark"),this.init()}init(){this.lightThemeLink=document.querySelector(".highlight-light"),this.darkThemeLink=document.querySelector(".highlight-dark"),this.lightThemeLink&&this.darkThemeLink&&this.themeSelectorButton?(this.restoreTheme(),this.bindThemeSelectorButton()):console.error("Theme CSS links or theme selector button not found")}bindThemeSelectorButton(){this.themeSelectorButton&&!this.themeSelectorButton.dataset.bound&&(this.themeSelectorButton.addEventListener("click",()=>{this.toggleTheme()}),this.themeSelectorButton.dataset.bound="true")}setTheme(e){document.documentElement.setAttribute("data-theme",e),"dark"===e?(this.lightThemeLink.disabled=!0,this.darkThemeLink.disabled=!1,this.themeSelectorLight.classList.add("hidden"),this.themeSelectorDark.classList.remove("hidden")):(this.lightThemeLink.disabled=!1,this.darkThemeLink.disabled=!0,this.themeSelectorLight.classList.remove("hidden"),this.themeSelectorDark.classList.add("hidden")),localStorage.setItem("theme",e)}toggleTheme(){var e=document.documentElement.getAttribute("data-theme");this.setTheme("dark"===e?"corporate":"dark")}restoreTheme(){var e=localStorage.getItem("theme"),e=e||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"corporate");this.setTheme(e),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{localStorage.getItem("theme")||this.setTheme(e.matches?"dark":"corporate")})}}
|
61
61
|
/*! Source: lib/karafka/web/ui/public/javascripts/components/turbo_tracker.js */let turboIsOperating=!1;function isTurboOperating(){return turboIsOperating}
|
62
62
|
/*! Source: lib/karafka/web/ui/public/javascripts/application.js */function updateTimeAgo(){0!=(e=document.querySelectorAll("time")).length&&(timeago.render(e),timeago.cancel());for(var e=document.getElementsByClassName("time-title"),t=0;t<e.length;t++){var i=e[t],s=i.getAttribute("title");i.setAttribute("title",timeago.format(s))}}function refreshTitle(){var e=document.querySelectorAll(".breadcrumbs a"),e=Array.from(e).slice(1).map(e=>e.textContent.trim());0<e.length?document.title=e.join(" > ")+" - Karafka Web UI":document.title="Karafka Web UI"}function redirectToPartition(){var e=document.getElementById("current-partition");null!=e&&e.addEventListener("change",function(){Turbo.visit(this.value)})}function bindActionsConfirmations(){for(var t=document.getElementsByClassName("confirm-action"),i=0;i<t.length;i++){var s=t[i];let e="click";"FORM"===s.nodeName&&(e="submit"),s.addEventListener(e,function(e){window.confirm("Are you sure?")||e.preventDefault()})}}function bindLockableButtons(){document.querySelectorAll(".btn-lockable").forEach(function(i){i.addEventListener("click",function(e){var t=i.closest("form");t?t.addEventListener("submit",function(){i.disabled=!0,i.textContent+="...",document.querySelectorAll(".modal").forEach(function(e){e.classList.add("modal-locked")})},{once:!0}):(i.disabled=!0,i.textContent+="...")})})}function addListeners(){initLivePolling(),bindPollingButtonClick(),bindLockableButtons(),setLivePollButton(),setPollingListener(),hljs.highlightAll(),updateTimeAgo(),redirectToPartition(),(new TabsManager).manageTabs(),manageCharts(),bindActionsConfirmations(),loadOffsetLookupDatePicker(),new BtnToggleManager,new ThemeManager,refreshTitle(),new SearchMetadataVisibilityManager,new SearchModalManager}document.addEventListener("turbo:visit",function(){turboIsOperating=!0}),document.addEventListener("turbo:before-fetch-request",function(){turboIsOperating=!0}),document.addEventListener("turbo:before-fetch-response",function(){turboIsOperating=!0}),document.addEventListener("turbo:load",function(){turboIsOperating=!1}),document.addEventListener("turbo:frame-load",function(){turboIsOperating=!1}),document.addEventListener("turbo:frame-render",function(){turboIsOperating=!1}),document.addEventListener("turbo:load",addListeners),Turbo.setProgressBarDelay(250)
|
63
63
|
/*! Source: lib/karafka/web/ui/public/javascripts/charts/types/bar.js */;class BarChartManager{constructor(){this.datasetStateManager=new DatasetStateManager}refreshAndRenderBarCharts(c,u=!1){(u?c:document).querySelectorAll(".chartjs-bar").forEach(e=>{var t=e.id,i=(u?c:document).getElementById(t),s=JSON.parse(i.dataset.datasets);let r=[],a=[],n=[];var o=i.dataset.label_type_y;let l=i.dataset.label_type_x,h=this.datasetStateManager.getCurrentChart(t);Object.entries(s).forEach(([e,t],i)=>{t.forEach(([e,t])=>{n.push(t),0===i&&r.push(DataFormattingUtils.formatLabelX(e,l))}),a.push({data:t.map(([,e])=>e),label:e,hidden:h.includes(i),borderWidth:2.5})});var i=Math.min(...n),s=Math.max(...n),i=Math.round(i-.1*i),s=Math.round(s+.005*s),d=Math.round(n.reduce((e,t)=>e+t,0)/n.length);a.push({type:"line",label:"Average",data:new Array(r.length).fill(d),borderWidth:2,fill:!1,pointRadius:0,hoverBorderWidth:3,pointHitRadius:20}),u?((d=Chart.getChart(t)).data.datasets=a,d.data.labels=r,d.options.scales.y.min=i,d.options.scales.y.max=s,d.update("none")):this.renderBarChart(e,r,a,i,s,o)})}renderBarChart(e,t,i,s,r,a){new Chart(e,{type:"bar",data:{labels:t,datasets:i},options:{responsive:!0,maintainAspectRatio:!1,aspectRatio:5,scales:{x:{display:!0},y:{beginAtZero:!1,min:s,max:r,ticks:{maxTicksLimit:8,callback:function(e,t,i){return DataFormattingUtils.formatLabelY(a,e,t,i)}}}},animation:!1,animations:{colors:!1,x:!1},transitions:{active:{animation:{duration:!1}}},plugins:{legend:{position:"hidden"},tooltip:{callbacks:{label:function(e){let t=e.dataset.label||"";return"Average"!==t?DataFormattingUtils.formatTooltip(a,e):t+=": "+e.formattedValue}}}}}})}}
|
Binary file
|
Binary file
|
@@ -7,8 +7,8 @@ class ThemeManager {
|
|
7
7
|
}
|
8
8
|
|
9
9
|
init() {
|
10
|
-
this.lightThemeLink = document.
|
11
|
-
this.darkThemeLink = document.
|
10
|
+
this.lightThemeLink = document.querySelector('.highlight-light');
|
11
|
+
this.darkThemeLink = document.querySelector('.highlight-dark');
|
12
12
|
|
13
13
|
if (!this.lightThemeLink || !this.darkThemeLink || !this.themeSelectorButton) {
|
14
14
|
console.error('Theme CSS links or theme selector button not found');
|
@@ -17,9 +17,16 @@ class ThemeManager {
|
|
17
17
|
|
18
18
|
this.restoreTheme();
|
19
19
|
|
20
|
-
this.
|
21
|
-
|
22
|
-
|
20
|
+
this.bindThemeSelectorButton();
|
21
|
+
}
|
22
|
+
|
23
|
+
bindThemeSelectorButton() {
|
24
|
+
if (this.themeSelectorButton && !this.themeSelectorButton.dataset.bound) {
|
25
|
+
this.themeSelectorButton.addEventListener('click', () => {
|
26
|
+
this.toggleTheme();
|
27
|
+
});
|
28
|
+
this.themeSelectorButton.dataset.bound = 'true'; // Mark the button as bound
|
29
|
+
}
|
23
30
|
}
|
24
31
|
|
25
32
|
setTheme(theme) {
|
Binary file
|
@@ -11,13 +11,15 @@
|
|
11
11
|
<link
|
12
12
|
rel="stylesheet"
|
13
13
|
href="<%= asset_path('stylesheets/libs/highlight_light.min.css') %>"
|
14
|
-
|
14
|
+
class="highlight-light"
|
15
|
+
disabled="disabled"
|
15
16
|
/>
|
16
17
|
|
17
18
|
<link
|
18
19
|
rel="stylesheet"
|
19
20
|
href="<%= asset_path('stylesheets/libs/highlight_dark.min.css') %>"
|
20
|
-
|
21
|
+
class="highlight-dark"
|
22
|
+
disabled="disabled"
|
21
23
|
/>
|
22
24
|
|
23
25
|
<link href="<%= asset_path('stylesheets/application.min.css') %>" rel="stylesheet">
|
data/lib/karafka/web/version.rb
CHANGED
data/package-lock.json
CHANGED
@@ -3438,10 +3438,11 @@
|
|
3438
3438
|
}
|
3439
3439
|
},
|
3440
3440
|
"node_modules/tailwindcss": {
|
3441
|
-
"version": "3.4.
|
3442
|
-
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.
|
3443
|
-
"integrity": "sha512-
|
3441
|
+
"version": "3.4.10",
|
3442
|
+
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
|
3443
|
+
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
|
3444
3444
|
"dev": true,
|
3445
|
+
"license": "MIT",
|
3445
3446
|
"dependencies": {
|
3446
3447
|
"@alloc/quick-lru": "^5.2.0",
|
3447
3448
|
"arg": "^5.0.2",
|
@@ -3479,6 +3480,7 @@
|
|
3479
3480
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
3480
3481
|
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
|
3481
3482
|
"dev": true,
|
3483
|
+
"license": "ISC",
|
3482
3484
|
"dependencies": {
|
3483
3485
|
"is-glob": "^4.0.3"
|
3484
3486
|
},
|
@@ -3491,6 +3493,7 @@
|
|
3491
3493
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
3492
3494
|
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
3493
3495
|
"dev": true,
|
3496
|
+
"license": "MIT",
|
3494
3497
|
"engines": {
|
3495
3498
|
"node": ">=10"
|
3496
3499
|
}
|
@@ -3510,6 +3513,7 @@
|
|
3510
3513
|
"url": "https://github.com/sponsors/ai"
|
3511
3514
|
}
|
3512
3515
|
],
|
3516
|
+
"license": "MIT",
|
3513
3517
|
"dependencies": {
|
3514
3518
|
"lilconfig": "^3.0.0",
|
3515
3519
|
"yaml": "^2.3.4"
|
@@ -3535,6 +3539,7 @@
|
|
3535
3539
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
|
3536
3540
|
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
|
3537
3541
|
"dev": true,
|
3542
|
+
"license": "MIT",
|
3538
3543
|
"engines": {
|
3539
3544
|
"node": ">=14"
|
3540
3545
|
},
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karafka-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.0.
|
4
|
+
version: 0.10.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
|
36
36
|
msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2024-08-
|
38
|
+
date: 2024-08-14 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: erubi
|
metadata.gz.sig
CHANGED
Binary file
|