Skip to content

Commit 8ccddc4

Browse files
committed
Merge remote-tracking branch 'origin/next' into merge-conflicts
2 parents b4c2165 + 35acbb4 commit 8ccddc4

File tree

301 files changed

+20523
-15831
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

301 files changed

+20523
-15831
lines changed

.eslintrc.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,6 @@
237237
"for-direction": [
238238
"off"
239239
],
240-
"no-console": [
241-
"off"
242-
],
243240
"no-control-regex": [
244241
"off"
245242
],
@@ -343,4 +340,4 @@
343340
}
344341
}
345342
]
346-
}
343+
}

.github/workflows/main.yml

+39-12
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ on:
1010

1111
# Allows you to run this workflow manually from the Actions tab
1212
workflow_dispatch:
13+
inputs:
14+
custom_tag:
15+
description: 'Custom Docker tag (optional)'
16+
required: false
17+
default: ''
1318

1419
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1520
jobs:
@@ -64,7 +69,7 @@ jobs:
6469

6570
services:
6671
mongodb:
67-
image: mongo:7.0
72+
image: mongo:8.0
6873
options: >-
6974
--health-cmd mongosh
7075
--health-interval 10s
@@ -74,7 +79,7 @@ jobs:
7479
- 27017:27017
7580

7681
container:
77-
image: countly/countly-core:pipelines-${{ github.base_ref || github.ref_name }}
82+
image: countly/countly-core:pipelines-${{ inputs.custom_tag || github.base_ref || github.ref_name }}
7883
env:
7984
COUNTLY_CONFIG__MONGODB_HOST: mongodb
8085
COUNTLY_CONFIG_API_PREVENT_JOBS: true
@@ -121,7 +126,7 @@ jobs:
121126

122127
services:
123128
mongodb:
124-
image: mongo:7.0
129+
image: mongo:8.0
125130
options: >-
126131
--health-cmd mongosh
127132
--health-interval 10s
@@ -131,7 +136,7 @@ jobs:
131136
- 27017:27017
132137

133138
container:
134-
image: countly/countly-core:pipelines-${{ github.base_ref || github.ref_name }}
139+
image: countly/countly-core:pipelines-${{ inputs.custom_tag || github.base_ref || github.ref_name }}
135140
env:
136141
COUNTLY_CONFIG__MONGODB_HOST: mongodb
137142
COUNTLY_CONFIG_API_PREVENT_JOBS: true
@@ -155,6 +160,11 @@ jobs:
155160
shell: bash
156161
run: "sed -i 's/port: 3001,/port: 3001, workers: 1,/' /opt/countly/api/config.js"
157162

163+
- name: NPM install
164+
shell: bash
165+
working-directory: /opt/countly
166+
run: npm install
167+
158168
- name: Run tests
159169
shell: bash
160170
working-directory: /opt/countly
@@ -168,7 +178,7 @@ jobs:
168178

169179
services:
170180
mongodb:
171-
image: mongo:7.0
181+
image: mongo:8.0
172182
options: >-
173183
--health-cmd mongosh
174184
--health-interval 10s
@@ -178,7 +188,7 @@ jobs:
178188
- 27017:27017
179189

180190
container:
181-
image: countly/countly-core:pipelines-${{ github.base_ref || github.ref_name }}
191+
image: countly/countly-core:pipelines-${{ inputs.custom_tag || github.base_ref || github.ref_name }}
182192
env:
183193
COUNTLY_CONFIG__MONGODB_HOST: mongodb
184194
COUNTLY_CONFIG_API_PREVENT_JOBS: true
@@ -202,6 +212,11 @@ jobs:
202212
shell: bash
203213
run: "sed -i 's/port: 3001,/port: 3001, workers: 1,/' /opt/countly/api/config.js"
204214

215+
- name: NPM install
216+
shell: bash
217+
working-directory: /opt/countly
218+
run: npm install
219+
205220
- name: Install plugins
206221
shell: bash
207222
run: |
@@ -221,7 +236,7 @@ jobs:
221236

222237
services:
223238
mongodb:
224-
image: mongo:7.0
239+
image: mongo:8.0
225240
options: >-
226241
--health-cmd mongosh
227242
--health-interval 10s
@@ -231,7 +246,7 @@ jobs:
231246
- 27017:27017
232247

233248
container:
234-
image: countly/countly-core:pipelines-${{ github.base_ref || github.ref_name }}
249+
image: countly/countly-core:pipelines-${{ inputs.custom_tag || github.base_ref || github.ref_name }}
235250
env:
236251
COUNTLY_CONFIG__MONGODB_HOST: mongodb
237252
COUNTLY_CONFIG_API_PREVENT_JOBS: true
@@ -255,6 +270,11 @@ jobs:
255270
shell: bash
256271
run: "sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh && sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh"
257272

273+
- name: NPM install
274+
shell: bash
275+
working-directory: /opt/countly
276+
run: npm install
277+
258278
- name: Prepare environment
259279
shell: bash
260280
working-directory: /opt/countly
@@ -281,7 +301,8 @@ jobs:
281301
/sbin/my_init &
282302
cd ui-tests
283303
npm install
284-
npm run cy:run:dashboard
304+
xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \
305+
npm run cy:run:dashboard --headless --no-sandbox --disable-gpu --disable-dev-shm-usage
285306
286307
- name: Upload UI tests artifacts
287308
if: ${{ failure() }}
@@ -298,7 +319,7 @@ jobs:
298319

299320
services:
300321
mongodb:
301-
image: mongo:6.0
322+
image: mongo:8.0
302323
options: >-
303324
--health-cmd mongosh
304325
--health-interval 10s
@@ -308,7 +329,7 @@ jobs:
308329
- 27017:27017
309330

310331
container:
311-
image: countly/countly-core:pipelines-${{ github.base_ref || github.ref_name }}
332+
image: countly/countly-core:pipelines-${{ inputs.custom_tag || github.base_ref || github.ref_name }}
312333
env:
313334
COUNTLY_CONFIG__MONGODB_HOST: mongodb
314335
COUNTLY_CONFIG_API_PREVENT_JOBS: true
@@ -332,6 +353,11 @@ jobs:
332353
shell: bash
333354
run: "sed -i 's/mongosh --quiet/mongosh --host mongodb --quiet/' /opt/countly/bin/backup/import_events.sh && sed -i 's/mongoimport --db/mongoimport --host mongodb --db/' /opt/countly/bin/backup/import_events.sh"
334355

356+
- name: NPM install
357+
shell: bash
358+
working-directory: /opt/countly
359+
run: npm install
360+
335361
- name: Prepare environment
336362
shell: bash
337363
working-directory: /opt/countly
@@ -354,7 +380,8 @@ jobs:
354380
/sbin/my_init &
355381
cd ui-tests
356382
npm install
357-
npm run cy:run:onboarding
383+
xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" \
384+
npm run cy:run:onboarding --headless --no-sandbox --disable-gpu --disable-dev-shm-usage
358385
359386
- name: Upload UI tests artifacts
360387
if: ${{ failure() }}

CHANGELOG.md

+126
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,129 @@
1+
## Version 24.10
2+
Fixes:
3+
- [core] Interpreting carrier value of "--" as an unknown value
4+
- [crash] Fixed issues with visualisation of Flutter stack traces
5+
- [dashoards] If a user is given access to a dashboard, they will now be able to see all widgets even if they don't have access to the underlying data
6+
- [density] UI fixed
7+
- [events] Fixed issue where slower loading data would replace newest event selection
8+
9+
Enterprise fixes:
10+
- [crashes-jira] Preventing crashing when jira authentification fails
11+
- [formulas] Removing HTML from tooltip localization
12+
13+
Features:
14+
- Making user guide icons stand out more before first use
15+
- [alerts] UI improvements
16+
- [alerts] small improvements in email notifications
17+
- [code] Unifying bottom menu for bulk operations
18+
- [core] Aggregated events data collections merged together
19+
- [nps] UI improvements
20+
- [surveys] UI improvements
21+
- upgraded mongoDB to version 7
22+
- upgraded nodejs to version 20
23+
24+
Enterprise Features:
25+
- [crash_symbolication] Added ability to set custom domain override for the symbolication server
26+
- [drill] Drill "by query" vizualization improved
27+
- [drill] Drill data collections merged together
28+
- [events] Added a quick transition to drill
29+
- [hooks] Added audit log entries for hook "create", "edit", "delete", "update" actions
30+
- [users] "Last Session" column in User Profiles is now sortable
31+
- [users] Crashes in the crashes tab can now be sorted
32+
- [users] UI improvements
33+
- [views] Added a quick transition to drill
34+
35+
## Version 24.05.15
36+
Enterprise fixes:
37+
- [nps] Fixed UI issues in the widget editor related to the "user consent" section
38+
- [ratings] Fixed rendering issue for escaped values
39+
40+
## Version 24.05.14
41+
Fixes:
42+
- [code] Added better handling for countly servers while deployed using subdirectory
43+
- [data-manager] Added missing "Create" button for event groups
44+
- [data-manager] Fixes for auto toggling data masking setting on redaction change
45+
- [populator] Fixed issues in case of wrongly structured data
46+
- [push] token shouldn't be revoked if it's already in db
47+
- [server-stats] Fixed a data point calculation bug
48+
49+
Enterprise fixes:
50+
- [push_approver] Fixed issue with the plugin not handling being "soft disabled"
51+
- [surveys] fixed a bug with the Survey widget where the "submit" button could become non interactable
52+
- [surveys] fixed issues with dashboard editor in relation to the "terms and conditions"
53+
- [surveys] fixed issues with previewing, creating and editing nps widgets
54+
55+
## Version 24.05.13
56+
Fixes:
57+
- [alerts] Fixed bugs related to NPS alerts
58+
- [crash] Reworked symbol files upload to support larger symbol files
59+
- [push] Fixed bug that would surface when sending Array or Object related payload
60+
61+
Enterprise fixes:
62+
- [ab-testing] Slight improvements to the UI and UX
63+
- [remote-config] Slight improvements to the UI and UX
64+
65+
Enterprise Features:
66+
- [ab-testing] Improved UI for selecting AB test expiration
67+
68+
## Version 24.05.12
69+
Fixes:
70+
- [dashboards] Fixes for dashboards grid
71+
- [dashboards] UI fix for dashboard widget action menu
72+
- [push] Refactored fcm API related code
73+
- [reports] Use config for encryption key in reports
74+
75+
Enterprise fixes:
76+
- [retention] Fixes for byval retention query calculation
77+
78+
## Version 24.05.11
79+
Fixes:
80+
- [cache] Use a cursor without timeout
81+
82+
## Version 24.05.10
83+
Fixes:
84+
- [alerts] Alerts improvements
85+
- [core] Various fixes for frontend to support running countly from subdirectory
86+
- [logs] Show collected problems on logger
87+
88+
Enterprise fixes:
89+
- [data-manager] Fixes in UI to allow events starting with "/"
90+
- [flows] Fixes for flows step generation
91+
- [surveys] Other is not allowed as a valid answer for required questions
92+
93+
## Version 24.05.9
94+
Fixes:
95+
- [crashes] Fix crashes template paths and add data check
96+
97+
Enterprise fixes:
98+
- [license] Fix for License warning appears is Flex server
99+
- [drill] Fix typo in view regeneration api response
100+
101+
## Version 24.05.8
102+
Fixes:
103+
- [scripts] script to check settings limits
104+
- [crashes] Update custom field cleanup script with streaming
105+
- [core] Skip data masking on internal appUsers data refetching query
106+
- [core][bugfix] Correct validation on "is any plugin masked"
107+
- [scripts] Delete custom events scripts
108+
- [dashboards] Show edit option also for invalid widgets
109+
- [core] batcher stats added
110+
- [dependencies] Bump xlsx-write-stream from 1.0.2 to 1.0.3
111+
112+
Enterprise fixes:
113+
- [data-manager] changes to allow skipping query rewriting using passed property
114+
- [os] fix for changing default repository of CentOS 8 to vault because OS reached EOL
115+
116+
## Version 24.05.7
117+
Fixes:
118+
- [countly-request]Fix countly-request get and post methods
119+
- [core] Improvements to prevent XSS
120+
- [push] objects are not allowed for the properties inside "data" key of the payload in new FCM API
121+
- [populator] Fixes for handling bulk requests
122+
123+
Enterprise fixes:
124+
- [adjust] Added adjust plugin
125+
- [surveys] UI changes for table
126+
1127
## Version 24.05.6
2128
Fixes:
3129
- [data-manager] Fix for event deletion timeout

Gruntfile.js

+20-2
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ module.exports = function(grunt) {
242242
'frontend/express/public/javascripts/dom/drop/drop-theme-countly.min.css',
243243
'frontend/express/public/javascripts/utils/tooltipster/tooltipster.bundle.min.css',
244244
'frontend/express/public/stylesheets/bulma/bulma-custom.css',
245-
'frontend/express/public/stylesheets/styles/manifest.css',
245+
'frontend/express/public/stylesheets/styles/manifest2.css',
246246
'frontend/express/public/stylesheets/vue/element-tiptap.css',
247247
]
248248
}
@@ -325,7 +325,25 @@ module.exports = function(grunt) {
325325

326326
grunt.registerTask('default', ['mochaTest']);
327327

328-
grunt.registerTask('dist', ['sass', 'concat', 'uglify', 'cssmin']);
328+
grunt.registerTask('replace-paths', 'Replace image paths in prod CSS files', function() {
329+
var cssFiles = [
330+
{
331+
filepath: 'frontend/express/public/stylesheets/styles/manifest.css',
332+
lookup: '../../images',
333+
replacement: '../images',
334+
newPath: 'frontend/express/public/stylesheets/styles/manifest2.css'
335+
}
336+
];
337+
338+
cssFiles.forEach(function(file) {
339+
var content = grunt.file.read(file.filepath);
340+
var newContent = content.replace(/\.\.\/\.\.\/images/g, file.replacement);
341+
grunt.file.write(file.newPath, newContent);
342+
grunt.log.writeln('Processed file: ' + file.filepath);
343+
});
344+
});
345+
346+
grunt.registerTask('dist', ['sass', 'concat', 'uglify', 'replace-paths', 'cssmin']);
329347

330348
grunt.registerTask('plugins', 'Minify plugin JS / CSS files and copy images', function() {
331349
var js = [], css = [], img = [], fs = require('fs'), path = require('path');

api/api.js

+13-5
Original file line numberDiff line numberDiff line change
@@ -370,10 +370,18 @@ plugins.connectToAllDatabases().then(function() {
370370
}
371371

372372
const form = new formidable.IncomingForm(formidableOptions);
373-
req.body = '';
374-
req.on('data', (data) => {
375-
req.body += data;
376-
});
373+
if (/crash_symbols\/(add_symbol|upload_symbol)/.test(req.url)) {
374+
req.body = [];
375+
req.on('data', (data) => {
376+
req.body.push(data);
377+
});
378+
}
379+
else {
380+
req.body = '';
381+
req.on('data', (data) => {
382+
req.body += data;
383+
});
384+
}
377385

378386
let multiFormData = false;
379387
// Check if we have 'multipart/form-data'
@@ -432,4 +440,4 @@ plugins.connectToAllDatabases().then(function() {
432440

433441
plugins.loadConfigs(common.db);
434442
}
435-
});
443+
});

0 commit comments

Comments
 (0)