Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
01586dc
MLE-23575 : Security vulnerability detected in Node Client
anu3990 Aug 19, 2025
cb01203
MLE-23607 : Node Client Sparql test fails for 12-nightly on Jenkins
anu3990 Aug 20, 2025
1cdebb1
MLE-24312: map port 8017 via docker-compose. SSL service configured f…
stevebio Sep 15, 2025
963cba1
Merge pull request #960 from marklogic/task/fixSslTests
stevebio Sep 16, 2025
8c9e5ff
MLE-24397 - fix reported issue on Linux FIPS around exception caused …
stevebio Sep 19, 2025
739c156
Merge pull request #963 from stevebio/task/fipsMd5Fix
stevebio Sep 19, 2025
507cec1
Re-add external www-authenticate library so we can show our changes i…
stevebio Sep 22, 2025
9d57aef
Remove unnecessary top-level MD5 digester functions that cause an exc…
stevebio Sep 22, 2025
6ba3f22
Merge pull request #965 from stevebio/task/fipsMD5Fix2
stevebio Sep 22, 2025
80fadc6
MLE-24407 : Update package.json and changelog for Node Client 3.7.1
anu3990 Sep 22, 2025
21e78bc
MLE-123456 - polaris fixes: remove unreachable break and continue sta…
stevebio Sep 22, 2025
d39fb6f
Merge pull request #967 from stevebio/task/polarisFixes
stevebio Sep 22, 2025
2d8f70e
PDP-536: Adding copyright check
SameeraPriyathamTadikonda Aug 27, 2025
e76b2a1
MLE-24492 : Upgrade Jenkins Node version for Node Client
anu3990 Sep 29, 2025
1124a2f
MLE-24382 : Fix for npm supply chain attack in Node Client
anu3990 Oct 1, 2025
98e4353
MLE-24511 Bumping server to latest 12 nightly
rjrudin Oct 1, 2025
2bc330c
MLE-24531 Converting Jenkinsfile to use Docker
rjrudin Oct 2, 2025
4d4120f
MLE-24531 Formatted Jenkinsfile
rjrudin Oct 7, 2025
6eb9a5b
MLE-24639 : Update Node Client Jenkins file to use 11.3.2 instead of …
anu3990 Oct 8, 2025
b2c2135
MLE-24531 Bumping PR tests to latest 12 nightly
rjrudin Oct 9, 2025
730ff79
MLE-24531 Added echo of Docker image
rjrudin Oct 9, 2025
a8b6451
MLE-24531 Added editorconfig
rjrudin Oct 10, 2025
acb4660
MLE-24685 Refactor: Fixing copyright string
rjrudin Oct 10, 2025
0c36e94
MLE-24685 Fixing test-complete-app deploy
rjrudin Oct 13, 2025
3805c2f
MLE-24685 Skipping timestamp test that fails due to server issue
rjrudin Oct 14, 2025
d9a236a
MLE-24722 - make sure the done() method called within each test once …
stevebio Oct 14, 2025
818217a
MLE-24685 Fixing Polaris issue in Docker file
rjrudin Oct 14, 2025
beb7957
Merge branch 'develop' into task/ensureDoneCalledForTests
stevebio Oct 15, 2025
6fb52f3
More fixes: make sure done() called once and only once for async oper…
stevebio Oct 15, 2025
d6d1ba8
Merge pull request #985 from stevebio/task/ensureDoneCalledForTests
stevebio Oct 15, 2025
f735dd2
MLE-24230 Updating whitespace in NOTICE
rjrudin Oct 15, 2025
980d0de
MLE-24230 First batch of package updates
rjrudin Oct 15, 2025
7aeb0ac
MLE-24230 Second batch of package updates
rjrudin Oct 15, 2025
84c5601
MLE-24230 Restoring overrides
rjrudin Oct 15, 2025
448f4ac
Jenkins does not store results for pull requests runs.
anu3990 Oct 15, 2025
f4d3670
MLE-24763 Upgrading from jshint to eslint
rjrudin Oct 16, 2025
95d1807
MLE-24763 Including server response body in error message
rjrudin Oct 16, 2025
f2f7a7f
MLE-24763 Lint: Replacing double quotes
rjrudin Oct 16, 2025
b704590
MLE-24733 - Adding more information to some test descriptions.
BillFarber Oct 17, 2025
0f96e98
Merge pull request #998 from BillFarber/addMoreInfoToTestDescriptions
BillFarber Oct 17, 2025
305041d
MLE-24763 Lint: Preferring const
rjrudin Oct 17, 2025
3e68289
MLE-24763 Enabling logging test and removing winston
rjrudin Oct 17, 2025
762f8e9
MLE-24763 Requiring Node 22 or higher
rjrudin Oct 17, 2025
51535dd
MLE-24763 Removing 'read' module
rjrudin Oct 17, 2025
d502ed1
MLE-24755 - fix intermittent errors: change to use modern await and P…
stevebio Oct 17, 2025
ff2f974
Merge pull request #1002 from stevebio/feature/MLE-24755-data-movemen…
stevebio Oct 20, 2025
1d50e90
MLE-24755 binary doc test fixes
stevebio Oct 20, 2025
76ba6f2
Merge pull request #1005 from stevebio/feature/MLE-24755-binary-doc-t…
stevebio Oct 20, 2025
1317d4a
Pretty good start at moving from scripts to Gradle for test-complete …
BillFarber Oct 16, 2025
c6c2d9e
revert test-complete-app
BillFarber Oct 21, 2025
db72abe
MLE-24733 - Setup temporal and LSQT
BillFarber Oct 21, 2025
b0aadbc
MLE-24733 - Missed this file.
BillFarber Oct 22, 2025
72bdd4b
MLE-24230 Updating all devDependencies
rjrudin Oct 17, 2025
d4f831d
MLE-24733 - No failures for /test-complete locally.
BillFarber Oct 22, 2025
5e8b43f
MLE-24763 Enabling lint in Jenkinsfile
rjrudin Oct 20, 2025
7baddea
MLE-24230 Using mlWaitTillReady
rjrudin Oct 20, 2025
124d192
MLE-24733 Trying out new test deployer
rjrudin Oct 27, 2025
b65817f
MLE-24733 Enabling multipleWorker test again
rjrudin Oct 28, 2025
ed4e65c
MLE-24733 Just deleting test-complete-app
rjrudin Oct 29, 2025
3bfef1e
MLE-24733 Deleting what should be unused etc/ files
rjrudin Oct 29, 2025
e528e35
MLE-24733 Deleting what should be unused config-optic files
rjrudin Oct 29, 2025
faf7be4
MLE-24733 Deleting what should be unused etc/data files
rjrudin Oct 29, 2025
2d38258
MLE-24641 Removed gulp-jsdoc, just using jsdoc
rjrudin Oct 29, 2025
0160b49
MLE-24733 Merging the two test ml-gradle projects
rjrudin Oct 29, 2025
dc795ad
MLE-24976 Updated NOTICE and README for 4.0.0
rjrudin Oct 30, 2025
8e4f6d8
MLE-24976 Updated CHANGELOG
rjrudin Oct 30, 2025
2d0b4d8
MLE-24976 Couple of Polaris fixes in tests
rjrudin Oct 30, 2025
834f352
Merge branch 'release/4.0.0' into feature/temp-master
rjrudin Oct 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .copyrightconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# COPYRIGHT VALIDATION CONFIG
# ---------------------------------
# Required start year (keep fixed; end year auto-updates in check output)
startyear: 2015

# Optional exclusions list (comma-separated). Leave commented if none.
# Rules:
# - Relative paths (no leading ./)
# - Simple * wildcard only (no recursive **)
# - Use sparingly (third_party, generated, binary assets)
# - Dotfiles already skipped automatically
# Enable by removing the leading '# ' from the next line and editing values.
# filesexcluded: third_party/*, docs/generated/*.md, assets/*.png, scripts/temp_*.py, vendor/lib.js
filesexcluded: .github/*, README.md, Jenkinsfile, test-app/*, *.md, docker-compose.yaml, test-complete-app-mlDeploy/*, *.json
22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# http://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.{json,yml,yaml}]
indent_size = 2

[*.{js,ts}]
indent_size = 2

[*.java]
indent_size = 4
7 changes: 7 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Latest 12 nightly release:
MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12

# Latest MarkLogic release:
# MARKLOGIC_IMAGE="progressofficial/marklogic-db:latest"

MARKLOGIC_LOGS_VOLUME=./docker/marklogic/logs
9 changes: 8 additions & 1 deletion .github/workflows/pr-workflow.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: 🏷️ JIRA ID Validator
name: PR Workflow

on:
# Using pull_request_target instead of pull_request to handle PRs from forks
Expand All @@ -14,3 +14,10 @@ jobs:
with:
# Pass the PR title from the event context
pr-title: ${{ github.event.pull_request.title }}
copyright-validation:
name: © Validate Copyright Headers
uses: marklogic/pr-workflows/.github/workflows/copyright-check.yml@main
permissions:
contents: read
pull-requests: write
issues: write
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ tmp
.settings
.vscode
.DS_Store
.gradle

docker
test-app/build
test-app/.gradle
test-app/gradle-local.properties
test-app/docker
test-app/containerLogs

test-complete-app/build
test-complete-app/.gradle
test-complete-app/.gradle
test-complete-app-mlDeploy/build
test-complete-app-mlDeploy/.gradle
11 changes: 0 additions & 11 deletions .jshintrc

This file was deleted.

1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# CHANGELOG

## 4.0.0

This major release does not impact any client functionality, but rather raises the minimum required version of Node.js
to 22 or higher. It also updates all dependencies to their latest version and removes unnecessary dependencies that
were included in previous releases.

## 3.7.1
#### Bug Fix
- https://github.com/marklogic/node-client-api/issues/961
Expand Down
112 changes: 110 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ please see the README file.

To run any of the steps below, first verify that you have the following available;
[sdkman](https://sdkman.io/) is recommended for installing and maintaining versions of Java:
* Java 8.x
* Java 17.x

You will also need to clone this repository locally and open a CLI in the root directory of the cloned project.

Expand All @@ -21,7 +21,6 @@ instance available for testing.

If you are able to use Docker, run the following:

cd test-app
docker-compose up -d --build

This will create a container with the MarkLogic service. The MarkLogic service will take a minute or two to initialize.
Expand All @@ -31,7 +30,9 @@ username and password are in the docker-compose.yaml file in the /test-app direc
Once the container is finished initializing, you need to deploy the test application to the MarkLogic service.
While still in the test-app directory run the following gradle command.

cd test-app
./gradlew -i mlDeploy
./gradlew -i -Penv=e2e mlLoadData mlLoadModules

Once the deploy has completed successfully, use "cd .." to return to the root directory of the project.

Expand All @@ -53,3 +54,110 @@ contained in either the "it" function or the "describe" function, respectively.
or

mocha test-basic -timeout 0 -g 'test bindParam with qualifier'

There are also tests in the `test-complete` folder. The setup for these is more complicated and can
be found in the `Jenkinsfile` file in this repository in the `runE2ETests` function.

## Generating documentation

After installing the project dependencies, you can build the reference documentation locally from the root
directory of the marklogic package:

npm run doc

The documentation is generated in the `./doc` gitignored directory. The documentation can also be
accessed online at <https://docs.marklogic.com/jsdoc/index.html>.

## Explanation of overrides in package.json

Each override is being documented here so we have some ability in the future to remove an override as needed.
These explanations have been copied from a Copilot analysis.

braces: "3.0.3"
- Purpose: Fixes ReDoS vulnerability in brace expansion
- Affects: mocha, gulp, and test infrastructure
- Why needed: Older braces versions vulnerable to regex attacks
- CVE/Issue: CVE-2024-4068 - ReDoS vulnerability

brace-expansion: "2.0.2"
- Purpose: Fixes ReDoS in brace expansion patterns
- Affects: minimatch → brace-expansion
- Why needed: Prevents regex denial of service attacks
- CVE/Issue: Related to minimatch vulnerabilities

glob: "10.3.11"
- Purpose: Fixes ReDoS and security issues in file globbing
- Affects: mocha, gulp-mocha build tooling
- Why needed: Older glob versions have pattern matching vulnerabilities
- CVE/Issue: Multiple vulnerabilities in older glob versions

glob-parent: "6.0.2"
- Purpose: Fixes ReDoS in path parsing
- Affects: Transitive dependency through glob
- Why needed: Older versions vulnerable to regex attacks
- CVE/Issue: CVE-2020-28469 - ReDoS vulnerability

minimatch: "5.1.0"
- Purpose: Fixes ReDoS (Regular Expression Denial of Service) vulnerability
- Affects: mocha, gulp-mocha, and other build tools
- Why needed: Older minimatch versions have catastrophic backtracking vulnerability
- CVE/Issue: CVE-2022-3517 - ReDoS vulnerability

semver: "7.5.3"
- Purpose: Fixes ReDoS in version parsing
- Affects: Multiple packages across dependency tree
- Why needed: Older semver versions have regex vulnerabilities
- CVE/Issue: CVE-2022-25883 - ReDoS vulnerability

tar-fs: "2.1.4"
- Purpose: Fixes directory traversal vulnerability
- Affects: kerberos → prebuild-install → tar-fs
- Why needed: Older tar-fs allows extracting files outside intended directory
- CVE/Issue: CVE-2024-28861 - Path traversal

The following are related to this npm supply chain attack - https://orca.security/resources/blog/qix-npm-attack/ .

ansi-styles: "4.3.0"
- Purpose: Protect against supply chain attack variants
- Affects: chalk → ansi-styles, eslint toolchain

ansi-regex: "5.0.1"
- Purpose: Protect against supply chain attack variants
- Affects: strip-ansi → ansi-regex

chalk: "4.1.2"
- Purpose: Avoid compromised chalk 5.6.1, maintain ESLint compatibility
- Affects: eslint, mocha, gulp-mocha
- Why needed: Chalk 5.6.1 was compromised in supply chain attack. ESLint 9.x requires chalk 4.x (incompatible with chalk 5.x API)

color-convert: "3.1.0"
- Purpose: Protect against supply chain attack variants
- Affects: ansi-styles → color-convert

color-name: "2.0.0"
- Purpose: Protect against supply chain attack variants
- Affects: color-convert → color-name

cross-spawn: "7.0.6"
- Purpose: Protect against supply chain attack variants
- Affects: eslint → cross-spawn

debug: "4.3.6"
- Purpose: Protect against supply chain attack variants
- Affects: eslint, mocha, multiple packages

supports-color: "7.2.0"
- Purpose: Protect against supply chain attack variants
- Affects: mocha, chalk

strip-ansi: "6.0.0"
- Purpose: Protect against supply chain attack variants
- Affects: mocha, cliui in test infrastructure

wrap-ansi: "6.2.0"
- Purpose: Protect against supply chain attack variants
- Affects: mocha → cliui → wrap-ansi

Also, we are using @fastify/busboy because it has a forked copy of dicer that apparently does not
have the same high security vulnerability that the 0.3.1 release of dicer has.

Loading