From 8b3e68fc113b839b3554b1dddbc2d20d7545d0f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 01:02:18 +0000 Subject: [PATCH 01/17] chore(deps-dev): bump lint-staged from 16.2.3 to 16.2.4 Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 16.2.3 to 16.2.4. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v16.2.3...v16.2.4) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 16.2.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index d71dd6f9448..6f494b00bd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8253,16 +8253,16 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.3.tgz", - "integrity": "sha512-1OnJEESB9zZqsp61XHH2fvpS1es3hRCxMplF/AJUDa8Ho8VrscYDIuxGrj3m8KPXbcWZ8fT9XTMUhEQmOVKpKw==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.4.tgz", + "integrity": "sha512-Pkyr/wd90oAyXk98i/2KwfkIhoYQUMtss769FIT9hFM5ogYZwrk+GRE46yKXSg2ZGhcJ1p38Gf5gmI5Ohjg2yg==", "dev": true, "license": "MIT", "dependencies": { "commander": "^14.0.1", "listr2": "^9.0.4", "micromatch": "^4.0.8", - "nano-spawn": "^1.0.3", + "nano-spawn": "^2.0.0", "pidtree": "^0.6.0", "string-argv": "^0.3.2", "yaml": "^2.8.1" @@ -9622,9 +9622,9 @@ "optional": true }, "node_modules/nano-spawn": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.3.tgz", - "integrity": "sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", "dev": true, "license": "MIT", "engines": { From 03fbe22fe219323ab21d59b04b427c08307e9ecf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 01:22:56 +0000 Subject: [PATCH 02/17] chore(deps): bump github/codeql-action from 3 to 4 in the actions group Bumps the actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action). Updates `github/codeql-action` from 3 to 4 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9fb507a8dc1..ba02babecb0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -41,7 +41,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -52,7 +52,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # â„šī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -66,4 +66,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 From 0f88fdaddc5f317f4af8c4430de4e21c0e2f1a5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 01:07:11 +0000 Subject: [PATCH 03/17] chore(deps): bump @faker-js/faker from 10.0.0 to 10.1.0 in /ui-tests Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 10.0.0 to 10.1.0. - [Release notes](https://github.com/faker-js/faker/releases) - [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md) - [Commits](https://github.com/faker-js/faker/compare/v10.0.0...v10.1.0) --- updated-dependencies: - dependency-name: "@faker-js/faker" dependency-version: 10.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- ui-tests/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index ae822a5d290..ba44c9a2686 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -66,9 +66,9 @@ } }, "node_modules/@faker-js/faker": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.0.0.tgz", - "integrity": "sha512-UollFEUkVXutsaP+Vndjxar40Gs5JL2HeLcl8xO1QAjJgOdhc3OmBFWyEylS+RddWaaBiAzH+5/17PLQJwDiLw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.1.0.tgz", + "integrity": "sha512-C3mrr3b5dRVlKPJdfrAXS8+dq+rq8Qm5SNRazca0JKgw1HQERFmrVb0towvMmw5uu8hHKNiQasMaR/tydf3Zsg==", "funding": [ { "type": "opencollective", From 39f0dbbfb831b929d49ccdf8b8be8ef4c2dfe726 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 2 Oct 2025 20:16:26 +0700 Subject: [PATCH 04/17] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a63a21150bc..c8ad88be7d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## Version 25.03.X +Enterprise Fixes: +- [users] Fix add/remove user to profile group +- [users] Remove link to profile group page after removing user from group + + ## Version 25.03.23 Fixes: - [events] Entries in the event list are now sorted alphabetically From 56acf8197be3488083b958f12a164a72ee298c87 Mon Sep 17 00:00:00 2001 From: Anna Sosina Date: Wed, 15 Oct 2025 10:55:12 +0300 Subject: [PATCH 05/17] Add entry for version 25.03.XX in CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a63a21150bc..f8a8480c87e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 25.03.XX +Enterprise Fixes: +- [data-manager] Fixed segment data deletion + ## Version 25.03.23 Fixes: - [events] Entries in the event list are now sorted alphabetically From 18cb1041942132c716d09cc917c64ce9d6cb2c91 Mon Sep 17 00:00:00 2001 From: Can Angun <39311746+can-angun@users.noreply.github.com> Date: Wed, 15 Oct 2025 11:01:03 +0300 Subject: [PATCH 06/17] Add checks for pace running and active states --- ui-tests/cypress/lib/dashboard/manage/sdk/stats.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui-tests/cypress/lib/dashboard/manage/sdk/stats.js b/ui-tests/cypress/lib/dashboard/manage/sdk/stats.js index 3e0c4fcf9d5..fe26bb18414 100644 --- a/ui-tests/cypress/lib/dashboard/manage/sdk/stats.js +++ b/ui-tests/cypress/lib/dashboard/manage/sdk/stats.js @@ -12,6 +12,8 @@ const verifyStaticElementsOfPage = () => { labelText: "SDK stats", }); + cy.checkPaceRunning(); + cy.checkPaceActive(); cy.scrollPageToTop(); cy.verifyElement({ @@ -469,4 +471,4 @@ module.exports = { verifySdkStatsEChart, verifySDKsDataFromTable, verifySDKVersionsDataFromTable -}; \ No newline at end of file +}; From d90b2f70fec475ba09fabfe8e998dfc8117b3252 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:05:50 +0000 Subject: [PATCH 07/17] chore(deps): bump countly-sdk-nodejs from 24.10.2 to 24.10.3 Bumps [countly-sdk-nodejs](https://github.com/Countly/countly-sdk-nodejs) from 24.10.2 to 24.10.3. - [Release notes](https://github.com/Countly/countly-sdk-nodejs/releases) - [Changelog](https://github.com/Countly/countly-sdk-nodejs/blob/master/CHANGELOG.md) - [Commits](https://github.com/Countly/countly-sdk-nodejs/compare/24.10.2...24.10.3) --- updated-dependencies: - dependency-name: countly-sdk-nodejs dependency-version: 24.10.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f494b00bd5..93b1a8c7bb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4113,9 +4113,9 @@ "link": true }, "node_modules/countly-sdk-nodejs": { - "version": "24.10.2", - "resolved": "https://registry.npmjs.org/countly-sdk-nodejs/-/countly-sdk-nodejs-24.10.2.tgz", - "integrity": "sha512-ags7l6aXy31ZYgXHgE/GAH/12PhYp9Mzn2vtQHSxhKl0BT6AdlSu3XEYeFmbk8ouwHN8AnGB7YeqOiw5Z3TrxQ==", + "version": "24.10.3", + "resolved": "https://registry.npmjs.org/countly-sdk-nodejs/-/countly-sdk-nodejs-24.10.3.tgz", + "integrity": "sha512-Xf5P6AuyGR63s91ZHAPZbz5vq6xnP0hSUq4tA5qVvZcGJMhzzeOtG1sadY5oXYFfbvKolhrzcL3QlstkUfqz0A==", "license": "MIT" }, "node_modules/countly-sdk-web": { From 97bb211e663489fa8b193c2fddd93af3d24eb9de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:05:57 +0000 Subject: [PATCH 08/17] chore(deps): bump puppeteer from 24.23.0 to 24.24.1 Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.23.0 to 24.24.1. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.23.0...puppeteer-v24.24.1) --- updated-dependencies: - dependency-name: puppeteer dependency-version: 24.24.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 64 ++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f494b00bd5..b816a0d51cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2151,17 +2151,17 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.10.10", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.10.tgz", - "integrity": "sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==", + "version": "2.10.12", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.12.tgz", + "integrity": "sha512-mP9iLFZwH+FapKJLeA7/fLqOlSUwYpMwjR1P5J23qd4e7qGJwecJccJqHYrjw33jmIZYV4dtiTHPD/J+1e7cEw==", "license": "Apache-2.0", "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", - "semver": "^7.7.2", - "tar-fs": "^3.1.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, "bin": { @@ -2953,15 +2953,23 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", - "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", - "license": "Apache-2.0" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz", + "integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } }, "node_modules/bare-fs": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.5.tgz", - "integrity": "sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.10.tgz", + "integrity": "sha512-arqVF+xX/rJHwrONZaSPhlzleT2gXwVs9rsAe1p1mIVwWZI2A76/raio+KwwxfWMO8oV9Wo90EaUkS2QwVmy4w==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -3026,9 +3034,9 @@ } }, "node_modules/bare-url": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.2.2.tgz", - "integrity": "sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.0.tgz", + "integrity": "sha512-c+RCqMSZbkz97Mw1LWR0gcOqwK82oyYKfLoHJ8k13ybi1+I80ffdDzUy0TdAburdrR/kI0/VuN8YgEnJqX+Nyw==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -11058,17 +11066,17 @@ } }, "node_modules/puppeteer": { - "version": "24.23.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.23.0.tgz", - "integrity": "sha512-BVR1Lg8sJGKXY79JARdIssFWK2F6e1j+RyuJP66w4CUmpaXjENicmA3nNpUXA8lcTdDjAndtP+oNdni3T/qQqA==", + "version": "24.25.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.25.0.tgz", + "integrity": "sha512-P3rUaom2w/Ubrnz3v3kSbxGkN7SpbtQeGRPb7iO86Bv/dAz2WUmGQBHr37W/Rp1fbAocMvu0rHFbCIJvjiNhGw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.10", + "@puppeteer/browsers": "2.10.12", "chromium-bidi": "9.1.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1508733", - "puppeteer-core": "24.23.0", + "puppeteer-core": "24.25.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11079,17 +11087,17 @@ } }, "node_modules/puppeteer-core": { - "version": "24.23.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.23.0.tgz", - "integrity": "sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==", + "version": "24.25.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.25.0.tgz", + "integrity": "sha512-8Xs6q3Ut+C8y7sAaqjIhzv1QykGWG4gc2mEZ2mYE7siZFuRp4xQVehOf8uQKSQAkeL7jXUs3mknEeiqnRqUKvQ==", "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.10", + "@puppeteer/browsers": "2.10.12", "chromium-bidi": "9.1.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1508733", "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.3.6", + "webdriver-bidi-protocol": "0.3.7", "ws": "^8.18.3" }, "engines": { @@ -13076,9 +13084,9 @@ } }, "node_modules/webdriver-bidi-protocol": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.6.tgz", - "integrity": "sha512-mlGndEOA9yK9YAbvtxaPTqdi/kaCWYYfwrZvGzcmkr/3lWM+tQj53BxtpVd6qbC6+E5OnHXgCcAhre6AkXzxjA==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.7.tgz", + "integrity": "sha512-wIx5Gu/LLTeexxilpk8WxU2cpGAKlfbWRO5h+my6EMD1k5PYqM1qQO1MHUFf4f3KRnhBvpbZU7VkizAgeSEf7g==", "license": "Apache-2.0" }, "node_modules/webidl-conversions": { From 2a03669fd5cd89b77a677a495c07b919b444b6cb Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 15 Oct 2025 16:41:14 +0300 Subject: [PATCH 09/17] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea73ecc6f50..2ea5aa42a3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ Enterprise Fixes: - [users] Fix add/remove user to profile group - [users] Remove link to profile group page after removing user from group +Dependencies +- Bump lint-staged from 16.2.3 to 16.2.4 +- Bump @faker-js/faker from 10.0.0 to 10.1.0 in /ui-tests +- Bump puppeteer from 24.23.0 to 24.24.1 +- Bump countly-sdk-nodejs from 24.10.2 to 24.10.3 + ## Version 25.03.23 Fixes: - [events] Entries in the event list are now sorted alphabetically From f577befb1e5e93e3c7334b43c5eeaa17cf23a60f Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 16 Oct 2025 14:07:44 +0700 Subject: [PATCH 10/17] [core] Rename release to prerelease --- api/parts/data/usage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/parts/data/usage.js b/api/parts/data/usage.js index 0b03e0599de..83a6ddad119 100644 --- a/api/parts/data/usage.js +++ b/api/parts/data/usage.js @@ -1125,7 +1125,7 @@ plugins.register("/sdk/user_properties", async function(ob) { userProps.av_major = null; userProps.av_minor = null; userProps.av_patch = null; - userProps.av_rel = null; + userProps.av_prerel = null; userProps.av_build = null; } } From 0e80c6807b7e3e12ed275fd4e135d39ddc90b0fa Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Fri, 17 Oct 2025 08:15:10 +0100 Subject: [PATCH 11/17] chore: update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ea5aa42a3a..0c8aacce5f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Version 25.03.XX Enterprise Fixes: - [data-manager] Fixed segment data deletion +- [data-manager] Fixed bug preventing transformation of events ending in a dot - [users] Fix add/remove user to profile group - [users] Remove link to profile group page after removing user from group From 0e444e7f023b23e613b060583921182d73d25ab2 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Fri, 17 Oct 2025 14:18:24 +0300 Subject: [PATCH 12/17] Consent fixes --- plugins/compliance-hub/api/api.js | 20 ++++++++++++++----- plugins/compliance-hub/install.js | 32 ------------------------------- 2 files changed, 15 insertions(+), 37 deletions(-) diff --git a/plugins/compliance-hub/api/api.js b/plugins/compliance-hub/api/api.js index e3a2f39957a..3b5ef533c6a 100644 --- a/plugins/compliance-hub/api/api.js +++ b/plugins/compliance-hub/api/api.js @@ -16,6 +16,13 @@ const FEATURE_NAME = 'compliance_hub'; plugins.internalDrillEvents.push("[CLY]_consent"); + plugins.register("/master", function() { + common.db.collection('consent_history').ensureIndex({app_id: 1, device_id: 1}, function() {}); + common.db.collection('consent_history').ensureIndex({app_id: 1, uid: 1}, function() {}); + common.db.collection('consent_history').ensureIndex({app_id: 1, type: 1}, function() {}); + common.db.collection('consent_history').ensureIndex({app_id: 1, ts: 1}, function() {}); + }); + //write api call plugins.register("/sdk/user_properties", function(ob) { var params = ob.params; @@ -142,7 +149,7 @@ const FEATURE_NAME = 'compliance_hub'; } } common.db.collection("app_users" + params.qstring.app_id).findOne(query, function(err, res) { - common.returnOutput(params, res.consent || {}); + common.returnOutput(params, res?.consent || {}); }); }); break; @@ -162,7 +169,8 @@ const FEATURE_NAME = 'compliance_hub'; query = {}; } } - common.db.collection("consent_history").count(query, function(err, total) { + query.app_id = params.app_id.toString(); + common.db.collection("consent_history").countDocuments(query, function(err, total) { if (err) { common.returnMessage(params, 400, err); } @@ -338,7 +346,7 @@ const FEATURE_NAME = 'compliance_hub'; var newUid = ob.newUser.uid; if (oldUid !== newUid) { return new Promise(function(resolve, reject) { - common.db.collection('consent_history').update({uid: oldUid}, {'$set': {uid: newUid}}, {multi: true}, function(err) { + common.db.collection('consent_history').update({uid: oldUid}, {'$set': {app_id: ob.app_id, uid: newUid}}, {multi: true}, function(err) { if (err) { reject(err); return; @@ -364,7 +372,7 @@ const FEATURE_NAME = 'compliance_hub'; plugins.register("/i/apps/delete", function(ob) { var appId = ob.appId; common.db.collection('consents').remove({'_id': {$regex: appId + ".*"}}, function() {}); - common.db.collection('consent_history').drop(function() {}); + common.db.collection('consent_history').deleteMany({app_id: appId}, function() {}); if (common.drillDb) { common.drillDb.collection("drill_events" + crypto.createHash('sha1').update("[CLY]_consent" + appId).digest('hex')).drop(function() {}); } @@ -373,7 +381,7 @@ const FEATURE_NAME = 'compliance_hub'; plugins.register("/i/apps/reset", function(ob) { var appId = ob.appId; common.db.collection('consents').remove({'_id': {$regex: appId + ".*"}}, function() {}); - common.db.collection('consent_history').drop(function() {}); + common.db.collection('consent_history').deleteMany({app_id: appId}, function() {}); if (common.drillDb) { common.drillDb.collection("drill_events" + crypto.createHash('sha1').update("[CLY]_consent" + appId).digest('hex')).drop(function() {}); } @@ -382,6 +390,7 @@ const FEATURE_NAME = 'compliance_hub'; plugins.register("/i/apps/clear_all", function(ob) { var appId = ob.appId; common.db.collection('consents').remove({'_id': {$regex: appId + ".*"}}, function() {}); + common.db.collection('consent_history').deleteMany({app_id: appId}, function() {}); if (common.drillDb) { common.drillDb.collection("drill_events" + crypto.createHash('sha1').update("[CLY]_consent" + appId).digest('hex')).drop(function() {}); } @@ -391,6 +400,7 @@ const FEATURE_NAME = 'compliance_hub'; var appId = ob.appId; var ids = ob.ids; common.db.collection('consents').remove({$and: [{'_id': {$regex: appId + ".*"}}, {'_id': {$nin: ids}}]}, function() {}); + common.db.collection('consent_history').deleteMany({app_id: appId, ts: {$lt: ob.moment.valueOf()}}, function() {}); if (common.drillDb) { common.drillDb.collection("drill_events" + crypto.createHash('sha1').update("[CLY]_consent" + appId).digest('hex')).remove({ts: {$lt: ob.moment.valueOf()}}, function() {}); } diff --git a/plugins/compliance-hub/install.js b/plugins/compliance-hub/install.js index 9fbea495bed..e69de29bb2d 100644 --- a/plugins/compliance-hub/install.js +++ b/plugins/compliance-hub/install.js @@ -1,32 +0,0 @@ -var pluginManager = require('../pluginManager.js'), - async = require('async'); - -console.log("Installing compliance-hub plugin"); -pluginManager.dbConnection().then((countlyDb) => { - countlyDb.collection('apps').find({}).toArray(function(err, apps) { - - if (!apps || err) { - console.log("No apps to upgrade"); - countlyDb.close(); - return; - } - function upgrade(app, done) { - console.log("Adding compliance-hub indexes to " + app.name); - var cnt = 0; - function cb() { - cnt++; - if (cnt == 4) { - done(); - } - } - countlyDb.collection('consent_history').ensureIndex({device_id: 1}, cb); - countlyDb.collection('consent_history').ensureIndex({uid: 1}, cb); - countlyDb.collection('consent_history').ensureIndex({type: 1}, cb); - countlyDb.collection('consent_history').ensureIndex({ts: 1}, cb); - } - async.forEach(apps, upgrade, function() { - console.log("Compliance hub plugin installation finished"); - countlyDb.close(); - }); - }); -}); \ No newline at end of file From ba9bfbc12248cf192211b7975692b60504d33607 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Fri, 17 Oct 2025 14:44:39 +0300 Subject: [PATCH 13/17] Update CHANGELOG with recent enterprise fixes --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c8aacce5f8..854b7d75d90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## Version 25.03.XX Enterprise Fixes: +- [compliance-hub] Fixed query patterns - [data-manager] Fixed segment data deletion - [data-manager] Fixed bug preventing transformation of events ending in a dot - [users] Fix add/remove user to profile group From 528da0c75c57659007fa92d76ab877912f21d651 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 9 Oct 2025 22:25:48 +0700 Subject: [PATCH 14/17] [jobs] Fix condition for scheduling alert job --- api/parts/jobs/job.js | 49 ++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/api/parts/jobs/job.js b/api/parts/jobs/job.js index 1bf39c2e6a1..46577397cc8 100644 --- a/api/parts/jobs/job.js +++ b/api/parts/jobs/job.js @@ -254,32 +254,33 @@ class Job extends EventEmitter { this._json.next = next.getTime(); } - if (this.name !== "alerts:monitor") { - //check if any job already scheduled or running - let query = { - status: {"$in": [STATUS.SCHEDULED, STATUS.RUNNING]}, - name: this.name, - }; - if (this._id) { - query._id = {$ne: this._id}; - } - var self = this; - return new Promise((resolve, reject) => { - Job.findMany(this.db(), query).then(existing => { - if (existing && existing.length) { - log.d('Job already scheduled or running: %j', existing); - this._json.status = STATUS.CANCELLED; //set this as cancelled now as we have other scheduled - } - else { - self._save().then(resolve, reject); - } - }); - }); + //check if any job already scheduled or running + let query = { + status: {"$in": [STATUS.SCHEDULED, STATUS.RUNNING]}, + name: this.name, + }; + + if (this.name === 'alerts:monitor' && this.data && Object.keys(this.data).length) { + query.data = this.data; } - else { - return this._save(); + + if (this._id) { + query._id = {$ne: this._id}; } + + var self = this; + return new Promise((resolve, reject) => { + Job.findMany(this.db(), query).then(existing => { + if (existing && existing.length) { + log.d('Job already scheduled or running: %j', existing); + this._json.status = STATUS.CANCELLED; //set this as cancelled now as we have other scheduled + } + else { + self._save().then(resolve, reject); + } + }); + }); } /** @@ -1142,4 +1143,4 @@ module.exports = { STATUS: STATUS, STATUS_MAP: STATUS_MAP, debounce: debounce -}; \ No newline at end of file +}; From bd7d1cbfc82bde08d535f251380b89af62727099 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Mon, 20 Oct 2025 09:38:11 +0700 Subject: [PATCH 15/17] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 854b7d75d90..1b07faa8c69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ ## Version 25.03.XX +Enterprise Fixes: +- [jobs] Fix condition for scheduling alert job + Enterprise Fixes: - [compliance-hub] Fixed query patterns - [data-manager] Fixed segment data deletion From 7c88f7fbc6ae2870f3dcbd56d39b0ae9ff9e970f Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 21 Oct 2025 11:21:30 +0700 Subject: [PATCH 16/17] Update changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b07faa8c69..982487c47a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## Version 25.03.XX -Enterprise Fixes: +Fixes: - [jobs] Fix condition for scheduling alert job Enterprise Fixes: @@ -8,6 +8,7 @@ Enterprise Fixes: - [data-manager] Fixed bug preventing transformation of events ending in a dot - [users] Fix add/remove user to profile group - [users] Remove link to profile group page after removing user from group +- [license] Stop sending metric after license expired Dependencies - Bump lint-staged from 16.2.3 to 16.2.4 From a04ddc597bfede54675d6175faba9693f3a512e0 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Tue, 21 Oct 2025 10:46:35 +0100 Subject: [PATCH 17/17] Update CHANGELOG.md --- CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 982487c47a8..be3f3fa092b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,20 @@ -## Version 25.03.XX +## Version 25.03.24 Fixes: - [jobs] Fix condition for scheduling alert job Enterprise Fixes: - [compliance-hub] Fixed query patterns -- [data-manager] Fixed segment data deletion - [data-manager] Fixed bug preventing transformation of events ending in a dot +- [data-manager] Fixed segment data deletion +- [license] Stop sending metric after license expired - [users] Fix add/remove user to profile group - [users] Remove link to profile group page after removing user from group -- [license] Stop sending metric after license expired Dependencies -- Bump lint-staged from 16.2.3 to 16.2.4 - Bump @faker-js/faker from 10.0.0 to 10.1.0 in /ui-tests -- Bump puppeteer from 24.23.0 to 24.24.1 - Bump countly-sdk-nodejs from 24.10.2 to 24.10.3 +- Bump lint-staged from 16.2.3 to 16.2.4 +- Bump puppeteer from 24.23.0 to 24.24.1 ## Version 25.03.23 Fixes: