Skip to content

Commit 0f266b3

Browse files
Merge branch 'next' into from_master_25_03_3
2 parents cf796ba + 9dde236 commit 0f266b3

File tree

6 files changed

+179
-50
lines changed

6 files changed

+179
-50
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## Version 25.03.x
2+
Features:
3+
- [alerts] alerts table default order should be by creation time newest at the top
4+
- [core] allow tracking Countly dashboard usage with Countly
5+
- [sdk] Improved and added new Server Config options
6+
7+
Enterprise Features:
8+
- [journey_engine] Editing/Deleting/Duplication of blocks and version management
9+
110
## Version 25.03.3
211
Fixes:
312
- [content_builder] Reformulate asset library and add asset drag and drop upload to builder input

frontend/express/public/javascripts/countly/vue/templates/content/content-header.html

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,14 @@
8787
size="small"
8888
@command="onCommand"
8989
>
90-
<el-dropdown-item
91-
v-for="(option, idx) in options"
92-
:key="`cly-vue-content-builder-header-option-${idx}`"
93-
class="cly-vue-content-builder-header__option"
94-
:data-test-id="'more-button-option-' + option.value"
95-
:command="option.value"
96-
:disabled="option.disabled"
90+
91+
<el-dropdown-item
92+
v-for="(option, idx) in options"
93+
:key="`cly-vue-content-builder-header-option-${idx}`"
94+
class="cly-vue-content-builder-header__option"
95+
:data-test-id="'more-button-option-' + option.value"
96+
:command="option.value"
97+
:disabled="option.disabled"
9798
>
9899
<span class="cly-vue-content-builder-header__option-label">
99100
{{ option.label }}

plugins/sdk/frontend/public/javascripts/countly.views.js

Lines changed: 140 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -72,71 +72,167 @@
7272
return {
7373
groups: {
7474
global: {
75-
label: "SDK control",
75+
label: "Global Controls",
7676
list: ["tracking", "networking"]
7777
},
78-
/*features: {
79-
label: "SDK features",
80-
list: ["crashes", "views"]
78+
features: {
79+
label: "SDK Features",
80+
list: ["crt", "vt", "st", "cet", "ecz", "cr"]
8181
},
8282
settings: {
83-
label: "SDK settings",
84-
list: ["heartbeat", "event_queue","request_queue"]
85-
}*/
83+
label: "SDK Settings",
84+
list: ["sui", "eqs", "rqs", "czi", "dort", "scui"]
85+
},
86+
limits: {
87+
label: "SDK Limits",
88+
list: ["lkl", "lvs", "lsv", "lbc", "ltlpt", "ltl"]
89+
},
8690
},
8791
configs: {
8892
tracking: {
8993
type: "switch",
90-
name: "SDK Tracking",
91-
description: "Enable or disable tracking any data in the SDK. If disabled, tracking new data will stop, but already collected data will be sent as long as networking is enabled",
94+
name: "Allow Tracking",
95+
description: "Enable or disable any tracking (gathering) of data in the SDK (default: enabled)",
9296
default: true,
9397
value: null
9498
},
9599
networking: {
96100
type: "switch",
97-
name: "SDK Networking",
98-
description: "Enable or disable networking calls within SDK. If disabled no network requests will come from SDK (except SDK config call), but data would still be recorded and preserved on device up to the SDK limits",
101+
name: "Allow Networking",
102+
description: "Enable or disable all networking calls from SDK except SDK config call. Does not effect tracking of data (default: enabled)",
103+
default: true,
104+
value: null
105+
},
106+
crt: {
107+
type: "switch",
108+
name: "Allow Crash Tracking",
109+
description: "Enable or disable tracking of crashes (default: enabled)",
99110
default: true,
100111
value: null
101112
},
102-
/*crashes: {
113+
vt: {
103114
type: "switch",
104-
name: "Crashes",
105-
description: "Enable or disable automatic tracking of unhandled crashes",
115+
name: "Allow View Tracking",
116+
description: "Enable or disable tracking of views (default: enabled)",
106117
default: true,
107118
value: null
108119
},
109-
views: {
120+
st: {
110121
type: "switch",
111-
name: "Views",
112-
description: "Enable or disable automatic tracking of views",
122+
name: "Allow Session Tracking",
123+
description: "Enable or disable tracking of sessions (default: enabled)",
113124
default: true,
114125
value: null
115126
},
116-
heartbeat: {
127+
sui: {
117128
type: "number",
118-
name: "Heartbeat",
119-
description: "How often to send heartbeat to server in seconds",
129+
name: "Session Update Interval",
130+
description: "How often to send session update information to server in seconds (default: 60)",
120131
default: 60,
121132
value: null
122133
},
123-
request_queue: {
134+
cet: {
135+
type: "switch",
136+
name: "Allow Custom Event Tracking",
137+
description: "Enable or disable tracking of custom events (default: enabled)",
138+
default: true,
139+
value: null
140+
},
141+
ecz: {
142+
type: "switch",
143+
name: "Enable Content Zone",
144+
description: "Enable or disable listening to Journey related contents (default: false)",
145+
default: false,
146+
value: null
147+
},
148+
cr: {
149+
type: "switch",
150+
name: "Require Consent",
151+
description: "Enable or disable requiring consent for tracking (default: false)",
152+
default: false,
153+
value: null
154+
},
155+
rqs: {
124156
type: "number",
125157
name: "Request Queue Size",
126-
description: "How many requests to store in queue, if SDK cannot connect to server",
158+
description: "How many requests to store in queue, if SDK cannot connect to server (default: 1000)",
127159
default: 1000,
128160
value: null
129161
},
130-
event_queue: {
162+
eqs: {
131163
type: "number",
132164
name: "Event Queue Size",
133-
description: "How many events to store in queue before they would be batched and sent to server",
134-
default: 10,
165+
description: "How many events to store in queue before they would be batched and sent to server (default: 100)",
166+
default: 100,
167+
value: null
168+
},
169+
czi: {
170+
type: "number",
171+
name: "Content Zone Interval",
172+
description: "How often to check for new Journey content in seconds (default: 30, min: 15)",
173+
default: 30,
174+
value: null
175+
},
176+
dort: {
177+
type: "number",
178+
name: "Request Drop Age",
179+
description: "Provide time in hours after which an old request should be dropped if they are not sent to server (default: 0 = not enabled)",
180+
default: 0,
181+
value: null
182+
},
183+
lkl: {
184+
type: "number",
185+
name: "Max Key Length",
186+
description: "Maximum length of an Event's key (including name) (default: 128)",
187+
default: 128,
188+
value: null
189+
},
190+
lvs: {
191+
type: "number",
192+
name: "Max Value Size",
193+
description: "Maximum length of an Event's segment value (default: 256)",
194+
default: 256,
195+
value: null
196+
},
197+
lsv: {
198+
type: "number",
199+
name: "Max Number of Segments",
200+
description: "Maximum amount of segmentation key/value pairs per Event (default: 100)",
201+
default: 100,
202+
value: null
203+
},
204+
lbc: {
205+
type: "number",
206+
name: "Max Breadcrumb Count",
207+
description: "Maximum breadcrumb count that can be provided by the developer (default: 100)",
208+
default: 100,
135209
value: null
136-
}*/
210+
},
211+
ltlpt: {
212+
type: "number",
213+
name: "Max Trace Line Per Thread",
214+
description: "Maximum stack trace lines that would be recorded per thread (default: 30)",
215+
default: 30,
216+
value: null
217+
},
218+
ltl: {
219+
type: "number",
220+
name: "Max Trace Length Per Line",
221+
description: "Maximum length of a stack trace line to be recorded (default: 200)",
222+
default: 200,
223+
value: null
224+
},
225+
scui: {
226+
type: "number",
227+
name: "Server Config Update Interval",
228+
description: "How often to check for new server config in hours (default: 4)",
229+
default: 4,
230+
value: null
231+
}
137232
},
138233
diff: [],
139-
description: "This is experimental feature and not all SDKs and SDK versions yet support it. Refer to the SDK documentation for more information"
234+
description: "This is experimental feature and not all SDKs and SDK versions yet support it. Refer to the SDK documentation for more information",
235+
downloadDescription: "Download the current SDK configuration as a JSON file to provide to the SDK",
140236
};
141237
},
142238
methods: {
@@ -158,6 +254,23 @@
158254
}
159255
}
160256
},
257+
downloadConfig: function() {
258+
var params = this.$store.getters["countlySDK/sdk/all"];
259+
var data = {};
260+
data.v = 1; // check sdk/api/api.js for version
261+
data.t = Date.now();
262+
data.c = params || {};
263+
var configData = JSON.stringify(data, null, 2);
264+
var blob = new Blob([configData], { type: 'application/json' });
265+
var url = URL.createObjectURL(blob);
266+
var a = document.createElement('a');
267+
a.href = url;
268+
a.download = 'sdk-config.json';
269+
document.body.appendChild(a);
270+
a.click();
271+
document.body.removeChild(a);
272+
URL.revokeObjectURL(url);
273+
},
161274
save: function() {
162275
var params = this.$store.getters["countlySDK/sdk/all"];
163276
var data = params || {};

plugins/sdk/frontend/public/templates/config.html

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
<div v-bind:class="[componentId]" class="configurations">
22
<cly-header
33
title="SDK Configuration (Experimental)"
4-
:tooltip="{description}"
5-
>
4+
:tooltip="{description}">
5+
<template v-slot:header-right>
6+
<div class="bu-level-item">
7+
<el-button @click="downloadConfig" type="default" size="small" icon="cly-icon-btn cly-icon-download">
8+
Download Config
9+
</el-button>
10+
</div>
11+
</template>
612
</cly-header>
713
<cly-main>
814
<div v-if="!isTableLoading" class="bu-columns bu-is-gapless">
@@ -114,4 +120,4 @@ <h3 v-if="group.label" class="bu-mb-4" data-test-id="sdk-control-label">
114120
</div>
115121
<cly-diff-helper :diff="diff" @discard="unpatch" @save="save"></cly-diff-helper>
116122
</cly-main>
117-
</div>
123+
</div>

ui-tests/cypress/lib/dashboard/manage/sdk/configurations.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,27 @@ const verifyStaticElementsOfPage = () => {
3030

3131
cy.verifyElement({
3232
labelElement: sdkConfiguratonsPageElements.SDK_CONTROL_LABEL,
33-
labelText: "SDK control",
33+
labelText: "Global Controls",
3434
});
3535

3636
cy.verifyElement({
3737
labelElement: sdkConfiguratonsPageElements.SDK_TRACKING_LABEL,
38-
labelText: "SDK Tracking",
38+
labelText: "Allow Tracking",
3939
});
4040

4141
cy.verifyElement({
4242
labelElement: sdkConfiguratonsPageElements.SDK_TRACKING_DESCRIPTION,
43-
labelText: "Enable or disable tracking any data in the SDK. If disabled, tracking new data will stop, but already collected data will be sent as long as networking is enabled",
43+
labelText: "Enable or disable any tracking (gathering) of data in the SDK (default: enabled)",
4444
});
4545

4646
cy.verifyElement({
4747
labelElement: sdkConfiguratonsPageElements.SDK_NETWORKING_LABEL,
48-
labelText: "SDK Networking",
48+
labelText: "Allow Networking",
4949
});
5050

5151
cy.verifyElement({
5252
labelElement: sdkConfiguratonsPageElements.SDK_NETWORKING_DESCRIPTION,
53-
labelText: "Enable or disable networking calls within SDK. If disabled no network requests will come from SDK (except SDK config call), but data would still be recorded and preserved on device up to the SDK limits",
53+
labelText: "Enable or disable all networking calls from SDK except SDK config call. Does not effect tracking of data (default: enabled)",
5454
});
5555
};
5656

@@ -98,4 +98,4 @@ module.exports = {
9898
clickRequestStatsTab,
9999
clickHealthCheckTab,
100100
clickSdkConfigurationTab
101-
};
101+
};

ui-tests/cypress/support/elements/dashboard/manage/sdk/configurations.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ export default {
44

55
SDK_CONTROL_LABEL: 'sdk-control-label',
66

7-
SDK_TRACKING_LABEL: 'sdk-tracking-title-label',
8-
SDK_TRACKING_DESCRIPTION: 'sdk-tracking-description-label',
9-
SDK_TRACKING_SWITCH: 'sdk-tracking-el-switch-wrapper',
7+
SDK_TRACKING_LABEL: 'allow-tracking-title-label',
8+
SDK_TRACKING_DESCRIPTION: 'allow-tracking-description-label',
9+
SDK_TRACKING_SWITCH: 'allow-tracking-el-switch-wrapper',
1010

11-
SDK_NETWORKING_LABEL: 'sdk-networking-title-label',
12-
SDK_NETWORKING_DESCRIPTION: 'sdk-networking-description-label',
13-
SDK_NETWORKINF_SWITCH: 'sdk-networking-el-switch-wrapper',
11+
SDK_NETWORKING_LABEL: 'allow-networking-title-label',
12+
SDK_NETWORKING_DESCRIPTION: 'allow-networking-description-label',
13+
SDK_NETWORKINF_SWITCH: 'allow-networking-el-switch-wrapper',
1414

1515
TAB_SDK_STATS: 'tab-sdk-stats-title',
1616
TAB_REQUEST_STATS: 'tab-request-stats-title',
1717
TAB_HEALTH_CHECK: 'tab-health-check-title',
1818
TAB_SDK_CONFIGURATION: 'tab-sdk-configuration-title'
19-
};
19+
};

0 commit comments

Comments
 (0)