Skip to content

Commit c6807e5

Browse files
committed
Merge branch 'next' into ar2rsawseen/feature/ingestion
# Conflicts: # api/utils/requestProcessor.js
2 parents a940d17 + d49adb0 commit c6807e5

File tree

100 files changed

+5230
-5751
lines changed

Some content is hidden

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

100 files changed

+5230
-5751
lines changed

.eslintrc.json

+22
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,28 @@
251251
]
252252
}
253253
},
254+
{
255+
"files": [ "plugins/content/api/positioning/**/*.js" ],
256+
"parserOptions": {
257+
"ecmaVersion": 2023,
258+
"sourceType": "module"
259+
},
260+
"env": {
261+
"node": true,
262+
"es2023": true
263+
}
264+
},
265+
{
266+
"files": [ "plugins/content/api/positioning/**/*.cjs" ],
267+
"parserOptions": {
268+
"ecmaVersion": 2023,
269+
"sourceType": "commonjs"
270+
},
271+
"env": {
272+
"node": true,
273+
"es2023": true
274+
}
275+
},
254276
{
255277
"files": [
256278
"api/**/*.js",

.github/workflows/deploy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name: Deploy
66
on:
77
# Triggers the workflow on push or pull request events but only for the master branch
88
push:
9-
branches: [ master, next ]
9+
branches: [ master, next, release.24.10, release.24.12 ]
1010

1111
# Allows you to run this workflow manually from the Actions tab
1212
workflow_dispatch:

.github/workflows/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name: CI
66
on:
77
# Triggers the workflow on push or pull request events but only for the master branch
88
pull_request:
9-
branches: [ master, next, release.24.10 ]
9+
branches: [ master, next, release.*, flex ]
1010

1111
# Allows you to run this workflow manually from the Actions tab
1212
workflow_dispatch:
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: Deploy Journey Engine
4+
5+
# Controls when the workflow will run
6+
on:
7+
# Triggers the workflow on push or pull request events but only for the master branch
8+
push:
9+
branches: [ next ]
10+
11+
# Allows you to run this workflow manually from the Actions tab
12+
workflow_dispatch:
13+
14+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
15+
jobs:
16+
# This workflow contains a single job called "build"
17+
deploy:
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
22+
- uses: actions/checkout@v3
23+
24+
- name: Deploy server
25+
shell: bash
26+
env:
27+
SSH_PRIVATE_KEY: ${{ secrets.STABLE_JE_SSH_PRIVATE_KEY }}
28+
run: bash ./bin/scripts/deploy-je.sh

CHANGELOG.md

+149-5
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,147 @@
1+
## Version 25.x.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 24.12
211
Features:
312
- [audit-logs] Exported audit logs from UI now would have "BEFORE" and "AFTER" fields
413
- [core] Ability to mark reports as 'dirty' to make sure they are regenerated in full
514
- [core] Adding a cancel button to "create new app" form
615
- [core] Adding a nightly job to delete old data
16+
- [core] Fixed a bug causing events to not being loaded when there's an escaped character in the event name
717
- [core] Redirecting user to a newly created app
818
- [core] Removing HTML from localization files
919
- [core] Showing a flex banner on sidebar if the version is Countly Lite
1020
- [crashes] Adding confirmation for deleting crash groups
1121
- [dashoards] Fixed the "Add/manage notes" button that did not work for the technology widget
1222
- [dbviewer] Preventing aggregation of using any stages which might open user to harmful actions (like $merge, $out, $lookup, $uninonWith) for all users except global admin
23+
- [gridfs] fixes for moving to Promises
1324
- [nps] Fixing issues with default logo selection
1425
- [populator] Adding ability to select features to populate and other small improvements
26+
- [push] Fixed bug where IOS credentials get mixed up while sending messages from different apps at the same time
27+
- [push] Fixed bug where it crashes in connection pool growth because of a type mismatch in an if condition
28+
- [reports] Fixes report generation failure due to SSL error
1529
- [star-rating] Removed unnecessary limitation with using cohorts for targeting
16-
- [surveys] Removed unnecessary limitation with using cohorts for targeting
30+
- [system-utility] Fixed: Mongo error (code: 26) in some Countly instances when the profiler gets run for the first time
31+
- [user-management] Global admins can now disable 2FA for individual users
1732

1833
Enterprise Features:
1934
- [cohorts] Adding ability to edit cohorts. This deletes historical calculations
2035
- [content] Adding "Content Builder" feature
2136
- [core] Adding support For SingleStore Kai
2237
- [flows] Adding UX improvements to the editor
2338
- [journey_engine] Adding "Journey Engine" feature
39+
- [ldap] Fixed issues that would lead to configuration options not being picked up
2440
- [remote-config] Moving enable/disable functionality to the dropdown
41+
- [surveys] "Select one" text in the widget can be edited now
42+
- [surveys] Removed unnecessary limitation with using cohorts for targeting
2543

2644
Dependencies:
27-
- Bump countly-sdk-nodejs from 22.6.0 to 24.10.0
28-
- Bump countly-sdk-web from 24.4.1 to 24.11.0
45+
- Bump countly-sdk-nodejs from 24.10.0 to 24.10.1
46+
- Bump countly-sdk-web from 24.11.2 to 24.11.3
47+
- Bump express from 4.21.1 to 4.21.2
48+
- Bump express-rate-limit from 7.4.1 to 7.5.0
2949
- Bump form-data from 4.0.0 to 4.0.1
3050
- Bump jimp from 0.22.12 to 1.6.0
3151
- Bump jsdoc from 4.0.3 to 4.0.4
52+
- Bump mocha from 10.2.0 to 10.8.2
3253
- Bump nodemailer from 6.9.15 to 6.9.16
33-
- Bump puppeteer from 23.8.0 to 23.9.0
54+
- Bump puppeteer from 23.10.4 to 23.11.1
55+
- Bump sass from 1.81.0 to 1.83.3
3456
- Bump tslib from 2.7.0 to 2.8.1
3557

58+
## Version 24.10.7
59+
Fixes:
60+
- [data-manager] Modifying existing values when segment values want to be updated in the Data Manager
61+
- [drill] Fix for UI error when push plugin is not enabled
62+
63+
Enterprise fixes:
64+
- [drill] Fixed empty events list in drill section
65+
66+
Features:
67+
- [core] Add self tracking capability
68+
- [hooks] Added remote config changes to internal actions
69+
- [system-utility] New endpoint: /take-heap-snapshot.
70+
- [system-utility] Using nodejs fs to write profiler files instead of gridfs.
71+
72+
## Version 24.10.6
73+
Fixes:
74+
- [push] Using apns-id header as message result in debug mode
75+
- [server-stats] Fix data point calculation in job
76+
- [TopEventsJob] preserver previous state if overwriting fails
77+
- [ui] scroll top on step changes in drawers
78+
79+
Enterprise fixes:
80+
- [drill] Encoding url component before changing history state
81+
- [drill] Fixed drill meta regeneration
82+
- [drill] [license] Update license loader to enable supplying db client
83+
- [users] Format data points displayed in user sidebar
84+
- [cohorts] Unescape drill texts in cohort component
85+
86+
Dependencies:
87+
- Bump fs-extra from 11.2.0 to 11.3.0
88+
- Bump nodemailer from 6.9.16 to 6.10.0
89+
90+
Enterprise Dependencies:
91+
- Bump nanoid in /plugins/cognito from 2.1.11 to 3.3.8
92+
- Bump shortid in /plugins/cognito from 2.2.16 to 2.2.17
93+
94+
## Version 24.10.3
95+
Fixes:
96+
- [dashboards] Fixing issue where dashboard widgets go into single column
97+
98+
Security:
99+
- Bump puppeteer from 17.1.3 to 23.8.0
100+
- Bump express from 4.21.0 to 4.21.1
101+
- Bump sass from 1.79.4 to 1.81.0
102+
- Bump express-session from 1.18.0 to 1.18.1
103+
- Bump cross-spawn from 7.0.3 to 7.0.6 in /ui-tests
104+
- Bump cross-spawn from 7.0.3 to 7.0.6 in /plugins/hooks
105+
106+
## Version 24.10.2
107+
Fixes:
108+
- [core] Correct aggregated collection cleanup on event omitting
109+
- [core] Fixed bug where changing passwords results in the loss of the "Global Admin" role
110+
- [core] Fixed bug where exporting incoming data logs could result in "Incorrect parameter \"data\" error
111+
- [core] Removed use of commands which needs admin rights from report manager.
112+
- [crash] Fixed bug in crash ingestion for scenarios where the "app version" is not a string.
113+
- [script] Fixing bug with "delete_old_members" script that led to malformed requests
114+
115+
Enterprise fixes:
116+
- [nps] Fixed bug that showed the wrong nps preview title
117+
118+
## Version 24.10.1
119+
Fixes:
120+
- [core] Replaced "Users" with "Sessions" label on technology home widgets
121+
- [push] Improved ability to observe push related errors
122+
- [push] Replaced push plugin with an earlier version of the plugin
123+
124+
Enterprise fixes:
125+
- [cohorts] Fixed issues with nightly cleanup
126+
- [data-manager] Fixed UI bug where rules were not visible when editing "Merge by regex" transformations
127+
- [drill] Fixed wrong pie chart label tooltip in dashboard widget
128+
- [flows] Fixed bug in case of null data in schema
129+
- [license] Fixed bug with MAU type of licenses that would prevent the server from starting
130+
- [nps] Fixed bug in the editor where the "internal name" field was not mandatory
131+
- [nps] Fixed bug where it was possible to submit empty nps surveys
132+
- [ratings] Fixed bug with user consent
133+
- [ratings] Fixed UI bug where "Internal name" was not a mandatory field
134+
135+
Security:
136+
- Bumped cookie-parser from 1.4.6 to 1.4.7
137+
- Bumped express-rate-limit from 7.4.0 to 7.4.1
138+
- Bumped moment-timezone from 0.5.45 to 0.5.46
139+
- Bumped sass from 1.79.3 to 1.79.4
140+
- Fixing minor vulnerability that would allow for unauthorized file upload
141+
142+
Enterprise Features:
143+
- [block] Added a way to filter crashes by their error (stacktrace)
144+
36145
## Version 24.10
37146
Fixes:
38147
- [core] Correct aggregated collection cleanup on event omitting
@@ -69,6 +178,42 @@ Enterprise Features:
69178
- [users] UI improvements
70179
- [views] Added a quick transition to drill
71180

181+
## Version 24.05.21
182+
Fixes:
183+
- [core] Fixed a bug causing events to not being loaded when there's an escaped character in the event name
184+
- [gridfs] fixes for moving to Promises
185+
- [reports] Fixes report generation failure due to SSL error
186+
- [surveys] "Select one" text in the widget can be edited now
187+
- [system-utility] Fixed: Mongo error (code: 26) in some Countly instances when the profiler gets run for the first time
188+
189+
Dependencies:
190+
- Bump countly-sdk-nodejs from 24.10.0 to 24.10.1
191+
- Bump countly-sdk-web from 24.11.2 to 24.11.4
192+
- Bump express-rate-limit from 7.4.1 to 7.5.0
193+
- Bump puppeteer from 23.10.4 to 23.11.1
194+
- Bump sass from 1.81.0 to 1.83.4
195+
196+
## Version 24.05.20
197+
Fixes:
198+
- [push] Fixed bug where IOS credentials get mixed up while sending messages from different apps at the same time
199+
- [push] Fixed bug where it crashes in connection pool growth because of a type mismatch in an if condition
200+
201+
Security:
202+
- [cohorts] Prevent query injection on cohort creation
203+
204+
Dependencies:
205+
- Bump countly-sdk-nodejs from 22.6.0 to 24.10.0
206+
- Bump countly-sdk-web from 24.4.1 to 24.11.0
207+
- Bump express from 4.21.1 to 4.21.2
208+
- Bump form-data from 4.0.0 to 4.0.1
209+
- Bump jimp from 0.22.12 to 1.6.0
210+
- Bump jsdoc from 4.0.3 to 4.0.4
211+
- Bump mocha from 10.2.0 to 10.8.2
212+
- Bump mongodb from 4.9.1 to 4.17.2
213+
- Bump nodemailer from 6.9.15 to 6.9.16
214+
- Bump puppeteer from 23.8.0 to 23.9.0
215+
- Bump tslib from 2.7.0 to 2.8.1
216+
72217
## Version 24.05.19
73218
Fixes:
74219
- [dashboards] Fixing issue where dashboard widgets go into single column
@@ -4460,4 +4605,3 @@ This version provides several features and bugfixes to both server and SDKs. The
44604605
A user of an application can only view analytics for that application
44614606
and cannot edit its settings.
44624607
* Added csfr protection to all methods provided through app.js.
4463-

Dockerfile-api

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:hydrogen-bullseye-slim
1+
FROM node:iron-bookworm-slim
22

33
ARG COUNTLY_PLUGINS=mobile,web,desktop,plugins,density,locale,browser,sources,views,logger,systemlogs,populator,reports,crashes,push,star-rating,slipping-away-users,compare,server-stats,dbviewer,times-of-day,compliance-hub,alerts,onboarding,consolidate,remote-config,hooks,dashboards,sdk,data-manager,guides
44
# Countly Enterprise:
@@ -25,15 +25,14 @@ COPY . .
2525

2626
# install required dependencies which slim image doesn't have
2727
RUN apt-get update && \
28-
apt-get install -y iputils-ping procps net-tools telnet apt-transport-https curl wget git python2 make gcc g++ unzip && \
29-
ln -s /usr/bin/python2.7 /usr/bin/python
28+
apt-get install -y iputils-ping procps net-tools telnet apt-transport-https curl wget git make gcc g++ unzip xz-utils
3029

3130
RUN apt-get update && \
3231
apt-get upgrade -y && \
3332
cd /usr/src && \
3433
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz && \
3534
tar -xf Python-3.8.12.tar.xz && \
36-
apt-get install -y build-essential sudo zlib1g-dev libssl1.1 libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev && \
35+
apt-get install -y build-essential sudo zlib1g-dev libssl3 libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev && \
3736
cd Python-3.8.12 && \
3837
./configure --enable-optimizations --enable-shared && \
3938
make && \
@@ -51,14 +50,15 @@ RUN curl -s -L -o /tmp/tini.deb "https://github.com/krallin/tini/releases/downlo
5150
# preinstall
5251
cp -n ./api/config.sample.js ./api/config.js && \
5352
cp -n ./frontend/express/config.sample.js ./frontend/express/config.js && \
53+
HOME=/tmp npm install -g npm@latest && \
5454
HOME=/tmp npm install --unsafe-perm=true --allow-root && \
5555
HOME=/tmp npm install argon2 --build-from-source --unsafe-perm=true --allow-root && \
5656
./bin/docker/preinstall.sh && \
5757
bash /opt/countly/bin/scripts/detect.init.sh && \
5858
\
5959
# cleanup & chown
6060
npm remove -y --no-save mocha nyc should supertest && \
61-
apt-get remove -y git gcc g++ make automake autoconf libtool pkg-config unzip sqlite3 && \
61+
apt-get remove -y git gcc g++ make automake autoconf libtool pkg-config unzip sqlite3 wget && \
6262
apt-get install -y libgbm-dev libgbm1 gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils && \
6363
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
6464
rm -rf test /tmp/* /tmp/.??* /var/tmp/* /var/tmp/.??* /var/log/* /root/.npm && \

Dockerfile-centos-api

+4-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ RUN yum update -y
3434
RUN curl -s -L -o /tmp/tini.rpm "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini_${TINI_VERSION}.rpm" && \
3535
rpm -i /tmp/tini.rpm && \
3636
\
37-
curl -sL https://rpm.nodesource.com/setup_18.x | bash - && \
37+
curl -sL https://rpm.nodesource.com/setup_20.x | bash - && \
3838
yum install -y nodejs python3.8 python2 python38-libs python38-devel python38-pip nss libdrm libgbm cyrus-sasl* && \
3939
ln -s /usr/bin/node /usr/bin/nodejs && \
4040
unlink /usr/bin/python3 && \
@@ -45,14 +45,15 @@ RUN curl -s -L -o /tmp/tini.rpm "https://github.com/krallin/tini/releases/downlo
4545
yum group install -y "Development Tools" && \
4646
yum install -y epel-release && \
4747
yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc && \
48-
yum install -y https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm && \
48+
yum install -y https://pkgs.sysadmins.ws/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm && \
4949
yum install -y wget openssl-devel make git libsqlite* sqlite unzip bzip2 && \
5050
# modify standard distribution
5151
./bin/docker/modify.sh && \
5252
\
5353
# preinstall
5454
cp -n ./api/config.sample.js ./api/config.js && \
5555
cp -n ./frontend/express/config.sample.js ./frontend/express/config.js && \
56+
HOME=/tmp npm install -g npm@latest && \
5657
HOME=/tmp npm install --unsafe-perm=true --allow-root && \
5758
HOME=/tmp npm install argon2 --build-from-source --unsafe-perm=true --allow-root && \
5859
./bin/docker/preinstall.sh && \
@@ -73,4 +74,4 @@ USER 1001:0
7374

7475
ENTRYPOINT ["/usr/bin/tini", "-v", "--"]
7576

76-
CMD ["/opt/countly/bin/docker/cmd.sh"]
77+
CMD ["/opt/countly/bin/docker/cmd.sh"]

Dockerfile-centos-frontend

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ RUN yum update -y
3232
RUN curl -s -L -o /tmp/tini.rpm "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini_${TINI_VERSION}.rpm" && \
3333
rpm -i /tmp/tini.rpm && \
3434
\
35-
curl -sL https://rpm.nodesource.com/setup_18.x | bash - && \
35+
curl -sL https://rpm.nodesource.com/setup_20.x | bash - && \
3636
yum install -y nodejs python3.8 python2 python38-libs python38-devel python38-pip nss libdrm libgbm cyrus-sasl* && \
3737
ln -s /usr/bin/node /usr/bin/nodejs && \
3838
unlink /usr/bin/python3 && \
@@ -43,7 +43,7 @@ RUN curl -s -L -o /tmp/tini.rpm "https://github.com/krallin/tini/releases/downlo
4343
yum group install -y "Development Tools" && \
4444
yum install -y epel-release && \
4545
yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc && \
46-
yum install -y https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm && \
46+
yum install -y https://pkgs.sysadmins.ws/el8/base/x86_64/raven-release-1.0-2.el8.noarch.rpm && \
4747
yum install -y wget openssl-devel make git sqlite libsqlite* unzip bzip2 && \
4848
# modify standard distribution
4949
./bin/docker/modify.sh && \
@@ -52,6 +52,7 @@ RUN curl -s -L -o /tmp/tini.rpm "https://github.com/krallin/tini/releases/downlo
5252
cp -n ./frontend/express/public/javascripts/countly/countly.config.sample.js ./frontend/express/public/javascripts/countly/countly.config.js && \
5353
cp -n ./frontend/express/config.sample.js ./frontend/express/config.js && \
5454
cp -n ./api/config.sample.js ./api/config.js && \
55+
HOME=/tmp npm install -g npm@latest && \
5556
HOME=/tmp npm install --unsafe-perm=true --allow-root && \
5657
HOME=/tmp npm install argon2 --build-from-source --unsafe-perm=true --allow-root && \
5758
./bin/docker/preinstall.sh && \

Dockerfile-core

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ RUN useradd -r -M -U -d /opt/countly -s /bin/false countly && \
4040
gcc g++ make binutils autoconf automake autotools-dev libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev \
4141
libevent-dev libjansson-dev libjemalloc-dev cython python3-dev python-setuptools && \
4242
# node
43-
wget -qO- https://deb.nodesource.com/setup_18.x | bash - && \
43+
wget -qO- https://deb.nodesource.com/setup_20.x | bash - && \
4444
# data_migration (mongo clients)
4545
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - && \
4646
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list && \

0 commit comments

Comments
 (0)