Skip to content

Commit 834f352

Browse files
committed
Merge branch 'release/4.0.0' into feature/temp-master
2 parents a6bcd85 + 2d0b4d8 commit 834f352

File tree

457 files changed

+7710
-14319
lines changed

Some content is hidden

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

457 files changed

+7710
-14319
lines changed

.copyrightconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# COPYRIGHT VALIDATION CONFIG
2+
# ---------------------------------
3+
# Required start year (keep fixed; end year auto-updates in check output)
4+
startyear: 2015
5+
6+
# Optional exclusions list (comma-separated). Leave commented if none.
7+
# Rules:
8+
# - Relative paths (no leading ./)
9+
# - Simple * wildcard only (no recursive **)
10+
# - Use sparingly (third_party, generated, binary assets)
11+
# - Dotfiles already skipped automatically
12+
# Enable by removing the leading '# ' from the next line and editing values.
13+
# filesexcluded: third_party/*, docs/generated/*.md, assets/*.png, scripts/temp_*.py, vendor/lib.js
14+
filesexcluded: .github/*, README.md, Jenkinsfile, test-app/*, *.md, docker-compose.yaml, test-complete-app-mlDeploy/*, *.json

.editorconfig

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# http://editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_style = space
6+
indent_size = 2
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false
14+
15+
[*.{json,yml,yaml}]
16+
indent_size = 2
17+
18+
[*.{js,ts}]
19+
indent_size = 2
20+
21+
[*.java]
22+
indent_size = 4

.env

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Latest 12 nightly release:
2+
MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12
3+
4+
# Latest MarkLogic release:
5+
# MARKLOGIC_IMAGE="progressofficial/marklogic-db:latest"
6+
7+
MARKLOGIC_LOGS_VOLUME=./docker/marklogic/logs

.github/workflows/pr-workflow.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 🏷️ JIRA ID Validator
1+
name: PR Workflow
22

33
on:
44
# Using pull_request_target instead of pull_request to handle PRs from forks
@@ -14,3 +14,10 @@ jobs:
1414
with:
1515
# Pass the PR title from the event context
1616
pr-title: ${{ github.event.pull_request.title }}
17+
copyright-validation:
18+
name: © Validate Copyright Headers
19+
uses: marklogic/pr-workflows/.github/workflows/copyright-check.yml@main
20+
permissions:
21+
contents: read
22+
pull-requests: write
23+
issues: write

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@ tmp
77
.settings
88
.vscode
99
.DS_Store
10+
.gradle
11+
12+
docker
1013
test-app/build
1114
test-app/.gradle
1215
test-app/gradle-local.properties
1316
test-app/docker
1417
test-app/containerLogs
15-
1618
test-complete-app/build
17-
test-complete-app/.gradle
19+
test-complete-app/.gradle
20+
test-complete-app-mlDeploy/build
21+
test-complete-app-mlDeploy/.gradle

.jshintrc

Lines changed: 0 additions & 11 deletions
This file was deleted.

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
engine-strict=true

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# CHANGELOG
22

3+
## 4.0.0
4+
5+
This major release does not impact any client functionality, but rather raises the minimum required version of Node.js
6+
to 22 or higher. It also updates all dependencies to their latest version and removes unnecessary dependencies that
7+
were included in previous releases.
8+
39
## 3.7.1
410
#### Bug Fix
511
- https://github.com/marklogic/node-client-api/issues/961

CONTRIBUTING.md

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ please see the README file.
88

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

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

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

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

24-
cd test-app
2524
docker-compose up -d --build
2625

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

33+
cd test-app
3434
./gradlew -i mlDeploy
35+
./gradlew -i -Penv=e2e mlLoadData mlLoadModules
3536

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

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

5556
mocha test-basic -timeout 0 -g 'test bindParam with qualifier'
57+
58+
There are also tests in the `test-complete` folder. The setup for these is more complicated and can
59+
be found in the `Jenkinsfile` file in this repository in the `runE2ETests` function.
60+
61+
## Generating documentation
62+
63+
After installing the project dependencies, you can build the reference documentation locally from the root
64+
directory of the marklogic package:
65+
66+
npm run doc
67+
68+
The documentation is generated in the `./doc` gitignored directory. The documentation can also be
69+
accessed online at <https://docs.marklogic.com/jsdoc/index.html>.
70+
71+
## Explanation of overrides in package.json
72+
73+
Each override is being documented here so we have some ability in the future to remove an override as needed.
74+
These explanations have been copied from a Copilot analysis.
75+
76+
braces: "3.0.3"
77+
- Purpose: Fixes ReDoS vulnerability in brace expansion
78+
- Affects: mocha, gulp, and test infrastructure
79+
- Why needed: Older braces versions vulnerable to regex attacks
80+
- CVE/Issue: CVE-2024-4068 - ReDoS vulnerability
81+
82+
brace-expansion: "2.0.2"
83+
- Purpose: Fixes ReDoS in brace expansion patterns
84+
- Affects: minimatch → brace-expansion
85+
- Why needed: Prevents regex denial of service attacks
86+
- CVE/Issue: Related to minimatch vulnerabilities
87+
88+
glob: "10.3.11"
89+
- Purpose: Fixes ReDoS and security issues in file globbing
90+
- Affects: mocha, gulp-mocha build tooling
91+
- Why needed: Older glob versions have pattern matching vulnerabilities
92+
- CVE/Issue: Multiple vulnerabilities in older glob versions
93+
94+
glob-parent: "6.0.2"
95+
- Purpose: Fixes ReDoS in path parsing
96+
- Affects: Transitive dependency through glob
97+
- Why needed: Older versions vulnerable to regex attacks
98+
- CVE/Issue: CVE-2020-28469 - ReDoS vulnerability
99+
100+
minimatch: "5.1.0"
101+
- Purpose: Fixes ReDoS (Regular Expression Denial of Service) vulnerability
102+
- Affects: mocha, gulp-mocha, and other build tools
103+
- Why needed: Older minimatch versions have catastrophic backtracking vulnerability
104+
- CVE/Issue: CVE-2022-3517 - ReDoS vulnerability
105+
106+
semver: "7.5.3"
107+
- Purpose: Fixes ReDoS in version parsing
108+
- Affects: Multiple packages across dependency tree
109+
- Why needed: Older semver versions have regex vulnerabilities
110+
- CVE/Issue: CVE-2022-25883 - ReDoS vulnerability
111+
112+
tar-fs: "2.1.4"
113+
- Purpose: Fixes directory traversal vulnerability
114+
- Affects: kerberos → prebuild-install → tar-fs
115+
- Why needed: Older tar-fs allows extracting files outside intended directory
116+
- CVE/Issue: CVE-2024-28861 - Path traversal
117+
118+
The following are related to this npm supply chain attack - https://orca.security/resources/blog/qix-npm-attack/ .
119+
120+
ansi-styles: "4.3.0"
121+
- Purpose: Protect against supply chain attack variants
122+
- Affects: chalk → ansi-styles, eslint toolchain
123+
124+
ansi-regex: "5.0.1"
125+
- Purpose: Protect against supply chain attack variants
126+
- Affects: strip-ansi → ansi-regex
127+
128+
chalk: "4.1.2"
129+
- Purpose: Avoid compromised chalk 5.6.1, maintain ESLint compatibility
130+
- Affects: eslint, mocha, gulp-mocha
131+
- 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)
132+
133+
color-convert: "3.1.0"
134+
- Purpose: Protect against supply chain attack variants
135+
- Affects: ansi-styles → color-convert
136+
137+
color-name: "2.0.0"
138+
- Purpose: Protect against supply chain attack variants
139+
- Affects: color-convert → color-name
140+
141+
cross-spawn: "7.0.6"
142+
- Purpose: Protect against supply chain attack variants
143+
- Affects: eslint → cross-spawn
144+
145+
debug: "4.3.6"
146+
- Purpose: Protect against supply chain attack variants
147+
- Affects: eslint, mocha, multiple packages
148+
149+
supports-color: "7.2.0"
150+
- Purpose: Protect against supply chain attack variants
151+
- Affects: mocha, chalk
152+
153+
strip-ansi: "6.0.0"
154+
- Purpose: Protect against supply chain attack variants
155+
- Affects: mocha, cliui in test infrastructure
156+
157+
wrap-ansi: "6.2.0"
158+
- Purpose: Protect against supply chain attack variants
159+
- Affects: mocha → cliui → wrap-ansi
160+
161+
Also, we are using @fastify/busboy because it has a forked copy of dicer that apparently does not
162+
have the same high security vulnerability that the 0.3.1 release of dicer has.
163+

0 commit comments

Comments
 (0)