MLE-31821 create release branch for release 2.1.2 - #671
Open
RitaChen609 wants to merge 47 commits into
Open
Conversation
For internal use.
MLE-30127 Expand Azure OpenAI Token Credential Support
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Switched from milliseconds to seconds. Renamed --classifier-timeout -> --classifier-socket-timeout Added --classifier-connection-timeout
MLE-30316 Allow configurable socket timeout for classification requests in Flux
MLE-30013 MLE-30014 MLE-30015 MLE-30016 MLE-30017 MLE-30018 CVEs in dependencies
MLE-30967 Update CODEOWNERS
MLE-31206 Scope Jenkins Pipeline DMC Credentials to the Publish Stage Only
MLE-31339 Snapshot Update to 2.1.2
…tions (#651) * MLE-31204 Add Interactive Masked Input to Cloud Storage Secret CLI Options. Updated docs and added 1 unit test per option. * MLE-31204 Copyright Update
MLE-31205 Added Security Warning for --ssl-hostname-verifier ANY
This matches the Spark connector. Makes necessary bumps to Hadoop and the AWS SDK as well.
* MLE-31461: Expose zip archive read limits in Flux import commands Adds --zip-max-uncompressed-entry-bytes and --zip-max-entry-count to all five zip-capable import commands (import-files, import-aggregate-xml-files, import-rdf-files, import-archive-files, import-mlcp-archive-files) via CLI flags and Java API methods. Both map directly to the connector options added in MLE-31218. Both options default to the value 0 (unlimited). Any number less than 1 is treated as unlimited. Values greater than 0 will enable limits and zip bomb protection through an opt in approach.
Bump com.azure:azure-core-http-netty from 1.16.2 to 1.16.5 so that io.projectreactor.netty:reactor-netty-http gets bumped to 1.2.18 to address BDSA-2026-13714
#664) Bump org.apache.thrift to 0.24.0 to match Spark Connector Version to avoid CVEs.
Fixed the rendering for the table of contents in the filtering-data.md file
* MLE-31396 update tika to 3.3.2 * MLE-31396 fix paragraph breaks due to Tika 3.3.2 update * MLE-31396 update Copyright * MLE-31396 add a note due to Tika 3.3.2 upgrade
Updated the LICENSE file to reflect Progress Software Corporation.
MLE-31824 LICENSE Update
RitaChen609
requested review from
BillFarber,
rjrudin and
stevebio
as code owners
August 17, 2026 16:18
Contributor
There was a problem hiding this comment.
Pull request overview
This PR prepares the Flux 2.1.2 release branch by updating release/version metadata, upgrading dependencies, and adding several CLI/API enhancements (notably zip bomb protection for ZIP imports, classifier timeout controls, improved credential handling, and Azure OpenAI token auth support).
Changes:
- Set release versions (Flux 2.1.2 / connector 3.1.2) and update core dependency versions (Spark/Hadoop/Tika/LangChain4j/Netty/Jackson/etc.).
- Add/expand CLI + API capabilities: zip bomb protection options for ZIP-capable import commands, classifier socket/connection timeouts, interactive masked input for sensitive options, and Azure OpenAI bearer token authentication.
- Update tests and documentation to reflect new options/behavior (including Tika whitespace behavior changes and security warnings).
Reviewed changes
Copilot reviewed 56 out of 59 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| test-app/build.gradle | Adds explicit warning about disabling hostname verification in local-only SSL task. |
| LICENSE.txt | Updates copyright holder/years and reformats license text. |
| Jenkinsfile | Scopes publishing credentials to develop-only publish stage. |
| gradle.properties | Sets Flux/connector versions for 2.1.2 and updates dependency versions (Spark/Hadoop/Jackson/Netty/etc.). |
| flux-embedding-model-ollama/build.gradle | Updates test logback version. |
| flux-embedding-model-minilm/build.gradle | Pins langchain4j embeddings artifact to avoid CI GLIBC incompatibility. |
| flux-embedding-model-azure-open-ai/src/test/java/com/marklogic/flux/langchain4j/embedding/ConfigTest.java | Adds test coverage for token auth and updated auth validation messaging. |
| flux-embedding-model-azure-open-ai/src/main/java/com/marklogic/flux/langchain4j/embedding/AzureOpenAiEmbeddingModelFunction.java | Implements token auth support and “exactly one auth method” validation. |
| flux-embedding-model-azure-open-ai/build.gradle | Updates Azure Netty HTTP constraint rationale/version and bumps test logback. |
| flux-cli/src/test/java/com/marklogic/flux/impl/S3ParamsTest.java | Adds test isolation for AWS credentials + tests for interactive option annotations. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportRdfFilesOptionsTest.java | Adds tests for forwarding zip bomb protection read options. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportParquetFilesTest.java | Updates assertions to match improved Spark footer/read error messages. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportOrcFilesTest.java | Updates assertions to match improved Spark footer/read error messages. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportMlcpArchiveFilesOptionsTest.java | Adds tests for forwarding zip bomb protection read options. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportFilesOptionsTest.java | Adds zip bomb protection options to CLI options map tests. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportArchiveFilesOptionsTest.java | Adds tests for forwarding zip bomb protection read options. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportAggregateXmlFilesOptionsTest.java | Adds tests for forwarding zip bomb protection read options. |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ExtractTextTest.java | Updates expected extracted text whitespace behavior (Tika-related). |
| flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ClassifierOptionsTest.java | Adds classifier timeout options and ensures defaults are omitted unless set. |
| flux-cli/src/test/java/com/marklogic/flux/impl/HandleErrorTest.java | Updates S3 connection error test to use explicit credentials. |
| flux-cli/src/test/java/com/marklogic/flux/impl/ErrorMessagesTest.java | Updates expected overridden message key count and asserts new keys. |
| flux-cli/src/test/java/com/marklogic/flux/impl/copy/CopyOptionsTest.java | Adds classifier timeout options to copy command option plumbing tests. |
| flux-cli/src/test/java/com/marklogic/flux/impl/AzureStorageParamsTest.java | Adds tests for interactive option annotations. |
| flux-cli/src/test/java/com/marklogic/flux/api/GenericFilesImporterTest.java | Adjusts expected exception type due to upstream connector behavior. |
| flux-cli/src/main/resources/marklogic-spark-messages_en.properties | Adds CLI flag overrides for new classifier timeout options. |
| flux-cli/src/main/java/com/marklogic/flux/impl/S3Params.java | Makes secret/session token options interactive + updates credentials provider builder usage. |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ReadCompressibleFilesParams.java | New shared params base class for partitions + zip bomb protection options. |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ImportRdfFilesCommand.java | Switches read params to shared compressible params base (adds zip options). |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ImportMlcpArchiveFilesCommand.java | Switches read params to shared compressible params base (adds zip options). |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ImportFilesCommand.java | Switches read params to shared compressible params base (adds zip options). |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ImportArchiveFilesCommand.java | Switches read params to shared compressible params base (adds zip options). |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ImportAggregateXmlFilesCommand.java | Switches read params to shared compressible params base (adds zip options). |
| flux-cli/src/main/java/com/marklogic/flux/impl/importdata/ClassifierParams.java | Adds classifier socket/connection timeout options and forwards to connector option map. |
| flux-cli/src/main/java/com/marklogic/flux/impl/Command.java | Adds default read method to command interface for dataset access patterns. |
| flux-cli/src/main/java/com/marklogic/flux/impl/AzureStorageParams.java | Makes Azure credential options interactive with optional arity for masking. |
| flux-cli/src/main/java/com/marklogic/flux/impl/AbstractCommand.java | Implements read by delegating to readDataset. |
| flux-cli/src/main/java/com/marklogic/flux/api/ReadCompressibleFilesOptions.java | New public API for partitions + zip bomb protection options. |
| flux-cli/src/main/java/com/marklogic/flux/api/RdfFilesImporter.java | Updates RDF importer API to use shared compressible read options. |
| flux-cli/src/main/java/com/marklogic/flux/api/MlcpArchiveFilesImporter.java | Updates MLCP archive importer API to use shared compressible read options. |
| flux-cli/src/main/java/com/marklogic/flux/api/GenericFilesImporter.java | Updates generic files importer API to use shared compressible read options. |
| flux-cli/src/main/java/com/marklogic/flux/api/ClassifierOptions.java | Adds public API for classifier socket/connection timeout options. |
| flux-cli/src/main/java/com/marklogic/flux/api/ArchiveFilesImporter.java | Updates archive importer API to use shared compressible read options. |
| flux-cli/src/main/java/com/marklogic/flux/api/AggregateXmlFilesImporter.java | Updates aggregate XML importer API to use shared compressible read options. |
| flux-cli/build.gradle | Updates dependency constraints/versions and GH packages publishing URL property handling. |
| docs/import/structured-data/filtering-data.md | Fixes TOC formatting indentation. |
| docs/import/import-files/selecting-files.md | Cleans up formatting; documents interactive masking for S3/Azure secrets. |
| docs/import/import-files/rdf.md | Formatting cleanup; documents zip bomb protection options for RDF ZIP imports. |
| docs/import/import-files/generic-files.md | Formatting cleanup; documents Tika behavior change and zip bomb protection options. |
| docs/import/import-files/archives.md | Formatting cleanup; documents zip bomb protection for archive imports. |
| docs/import/import-files/aggregate-xml.md | Formatting cleanup; documents zip bomb protection options for ZIP aggregate XML imports. |
| docs/import/embedder/embedder.md | Documents Azure OpenAI token option and updated auth requirements. |
| docs/import/classifier.md | Documents classifier timeout options. |
| docs/export/specifying-path.md | Formatting cleanup; documents interactive masking for S3/Azure secrets in export docs. |
| docs/common-options.md | Adds explicit security warning around disabling hostname verification. |
| CONTRIBUTING.md | Formatting cleanup and updates example jar naming to use <version>. |
| CODEOWNERS | Updates default code owners list. |
| build.gradle | Adds properties plugin; adds optional GH packages repo; updates forced dependency versions to use properties. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
22
to
+35
| private S3Params params = new S3Params(); | ||
|
|
||
| @BeforeEach | ||
| void setFakeAwsCredentials() { | ||
| System.setProperty("aws.accessKeyId", "fakeAccessKeyId"); | ||
| System.setProperty("aws.secretAccessKey", "fakeSecretKey"); | ||
| } | ||
|
|
||
| @AfterEach | ||
| void clearFakeAwsCredentials() { | ||
| System.clearProperty("aws.accessKeyId"); | ||
| System.clearProperty("aws.secretAccessKey"); | ||
| } | ||
|
|
Comment on lines
+44
to
+45
| | `--classifier-socket-timeout` | Set the socket timeout in seconds for classification requests. Defaults to 10. | | ||
| | `--classifier-connection-timeout` | Set the connection timeout in seconds for classification requests. Defaults to 10. | |
|
|
||
| ### Behavior change in Flux 2.1.2: Microsoft Office file extraction | ||
|
|
||
| Flux 2.1.2 upgrades Apache Tika from 3.3.1 to 3.3.2. Tika 3.3.2 changes the default parser for Microsoft Office OOXML |
Comment on lines
24
to
+28
| final String nonAzureKey = "non-azure-api-key"; | ||
| if (!options.containsKey("api-key") && !options.containsKey(nonAzureKey)) { | ||
| throw new IllegalArgumentException(String.format("Must specify either api-key or %s.", nonAzureKey)); | ||
| final String tokenKey = "token"; | ||
| long authCount = Stream.of("api-key", nonAzureKey, tokenKey) | ||
| .filter(options::containsKey) | ||
| .count(); |
Comment on lines
+95
to
+99
| // This is currently catching a ConnectorException instead of a FluxException due to a change in the Spark | ||
| // connector via PR 683 for the Spark connector. That change should be undone with the real fix being that | ||
| // FailedRequest should become serializable in the Java Client. | ||
| // FluxException ex = assertThrows(FluxException.class, command::execute); | ||
| ConnectorException ex = assertThrows(ConnectorException.class, command::execute); |
Comment on lines
+18
to
20
| assertEquals(23, bundle.keySet().size(), | ||
| "Expecting 23 keys as of the upcoming 2.0.0 release. Bump this up as more keys are added. Each key should " + | ||
| "also be verified in an assertion below."); |
Comment on lines
+327
to
331
| // Supports publishing to a GH packages repository for GH Action workflows that are not able to access our | ||
| // internal repository. | ||
| if (project.hasProperty("ghPackagesUrl")) { | ||
| maven { | ||
| name = "GitHubPackages" |
RitaChen609
requested review from
jonmille,
ngodugu-marklogic and
rjdew-progress
August 17, 2026 18:41
rjdew-progress
approved these changes
Aug 17, 2026
ngodugu-marklogic
approved these changes
Aug 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.