)]}'
{
  "log": [
    {
      "commit": "b5e80e71b82d3bd95da7a5690069cb9024aa3576",
      "tree": "fe152a2de95a6e61e20e510bb41f6a85ed11934e",
      "parents": [
        "e0242201b20603f89fe4505a858633fe363a427c"
      ],
      "author": {
        "name": "Matt Gilman",
        "email": "matt.c.gilman@gmail.com",
        "time": "Fri Jun 05 15:06:16 2026 -0400"
      },
      "committer": {
        "name": "exceptionfactory",
        "email": "exceptionfactory@apache.org",
        "time": "Sat Jul 25 14:10:10 2026 -0500"
      },
      "message": "NIFI-16000 Allowed spaces in FileUtils.getSanitizedFilename\n\nRemove the space character from the invalid-character set so spaces are\npreserved rather than replaced with an underscore. Add\nTestFileUtils covering the sanitization contract.\n\nThis closes #11315\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e\n"
    },
    {
      "commit": "e0242201b20603f89fe4505a858633fe363a427c",
      "tree": "8d91b1bb716f79f4993be98140fc16a4b4e2b95b",
      "parents": [
        "03134bdcdddf0e55f4514175f704405ca83c67ef"
      ],
      "author": {
        "name": "maltesander",
        "email": "malte.sander.it@gmail.com",
        "time": "Sat Jul 25 20:05:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 13:05:25 2026 -0500"
      },
      "message": "NIFI-16067 Adjusted PutIcebergRecord to map fields by ordinal position instead of column name (#11387)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "03134bdcdddf0e55f4514175f704405ca83c67ef",
      "tree": "bb0240500d3a3a07c2042aedda9f880da51ed4f9",
      "parents": [
        "576046b79dc5b88433c990f4df6bebea08917b46"
      ],
      "author": {
        "name": "David Young",
        "email": "ohnoitsyou7043@gmail.com",
        "time": "Sat Jul 25 13:46:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 12:46:51 2026 -0500"
      },
      "message": "NIFI-15989 Improved Purge Threshold time formatting (#11313)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "576046b79dc5b88433c990f4df6bebea08917b46",
      "tree": "ca7e5a96392746213e684c1d475d710fa0c62420",
      "parents": [
        "96f2b5bf958816dadcb9ac61116f1dcacc5d40a7"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Fri Jul 24 21:12:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 20:12:54 2026 -0500"
      },
      "message": "NIFI-16141 Aligned validation message formatting of JSLTTransformJSON with JoltTransformJSON (#11472)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "96f2b5bf958816dadcb9ac61116f1dcacc5d40a7",
      "tree": "97f4b92af602c34a12dcd7800f25fd3b84c53764",
      "parents": [
        "e3cb8cf1261d1875c95e79f339f05ef302867a61"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Fri Jul 24 21:11:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 20:11:12 2026 -0500"
      },
      "message": "NIFI-16144 Removed redundant String operations (#11476)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "e3cb8cf1261d1875c95e79f339f05ef302867a61",
      "tree": "e8f9e38e15ad0e6374ab2dabc3f54e3129d56354",
      "parents": [
        "974e7aa31673a0a2bfdd2b3fb6e800350ba5bb2f"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Fri Jul 24 21:08:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 20:08:06 2026 -0500"
      },
      "message": "NIFI-16143 Removed unnecessary calls of String.valueOf on a String (#11475)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "974e7aa31673a0a2bfdd2b3fb6e800350ba5bb2f",
      "tree": "5f93f08064eae0020d31dc39c6007d9fc2339725",
      "parents": [
        "a5bc2d3cea95e834511365534ffac09f41d3c345"
      ],
      "author": {
        "name": "tpalfy",
        "email": "53442425+tpalfy@users.noreply.github.com",
        "time": "Fri Jul 24 19:11:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 13:11:23 2026 -0400"
      },
      "message": "NIFI-14861 Add EnrichGraphRecord processor (#11316)\n\n* NIFI-14861 Add EnrichGraphRecord processor\n\n* Review suggestions\n\n* Review suggestions"
    },
    {
      "commit": "a5bc2d3cea95e834511365534ffac09f41d3c345",
      "tree": "5637ac8c080d114c73568ad20f12778b56a930d9",
      "parents": [
        "bc017d6e15b071cfc4e294e717555276e1cab886"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Fri Jul 24 08:59:08 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 15:59:08 2026 +0200"
      },
      "message": "NIFI-16139 Added Source and Destination to Connection Status Events (#11468)"
    },
    {
      "commit": "bc017d6e15b071cfc4e294e717555276e1cab886",
      "tree": "875536c7a60dfd90ee714653369d9069a757819a",
      "parents": [
        "ff83256ca5236e67c4037cebabcd82bf2d8573ba"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Fri Jul 24 14:40:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 07:40:32 2026 -0500"
      },
      "message": "NIFI-16140 Bump Logback to 1.6.0, Okio to 3.18.0, Tika to 3.3.2, and others (#11467)\n\n- AWS Kinesis Client from 3.5.0 to 3.5.1 - https://github.com/awslabs/amazon-kinesis-client/releases/tag/v3.5.1\n- Elasticsearch Client from 9.4.3 to 9.4.4 - https://github.com/elastic/elasticsearch-java/releases/tag/v9.4.4\n- JanusGraph from 1.2.0-20260719-131347.d9158a6 to 1.2.0-20260723-164414.ac0eb23 - https://github.com/JanusGraph/janusgraph\n- Apache Tika from 3.3.1 to 3.3.2 - https://github.com/apache/tika/releases/tag/3.3.2\n- MongoDB Driver from 5.9.0 to 5.9.1 - https://github.com/mongodb/mongo-java-driver/releases/tag/r5.9.1\n- gRPC from 1.82.2 to 1.83.0 - https://github.com/grpc/grpc/releases/tag/v1.83.0\n- Jettison from 1.5.6 to 1.5.7 - https://github.com/jettison-json/jettison/releases/tag/jettison-1.5.7\n- FlywayDB from 12.11.0 to 13.0.0 - https://github.com/flyway/flyway/releases/tag/flyway-13.0.0\n- AWS SDK BOM from 2.48.3 to 2.49.2 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.49.2\n- Logback from 1.5.38 to 1.6.0 - https://github.com/qos-ch/logback/releases/tag/v_1.6.0\n- Okio from 3.17.0 to 3.18.0 - https://lysine.dev/okio/changelog/#version-3180\n- Nimbus OAuth2 OIDC from 11.38.1 to 11.38.2 - https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions/src/master/CHANGELOG.txt\n- Maven JAR Plugin from 3.5.0 to 3.5.1 - https://github.com/apache/maven-jar-plugin/releases/tag/maven-jar-plugin-3.5.1\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "ff83256ca5236e67c4037cebabcd82bf2d8573ba",
      "tree": "964ac293f8945a9706dbe70fac178e49b01e5222",
      "parents": [
        "5a6c47278d70a4c98a3b1403a80bc1ff748bf586"
      ],
      "author": {
        "name": "Rob Fellows",
        "email": "rob.fellows@gmail.com",
        "time": "Thu Jul 23 15:03:55 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 15:03:55 2026 -0400"
      },
      "message": "NIFI-16138 - UI dependency updates resolving dependabot findings for fast-uri, dompurify, immutable, axios, and others. (#11464)"
    },
    {
      "commit": "5a6c47278d70a4c98a3b1403a80bc1ff748bf586",
      "tree": "3bda7deb3134777dff32c3cbd275a602e34dcd2f",
      "parents": [
        "a62c856388f32984a4a7795324d81bd0861f7276"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jul 23 15:52:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 08:52:27 2026 -0500"
      },
      "message": "NIFI-16058 Treat external Controller Service reference changes in versioned flows as environmental (#11383)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "a62c856388f32984a4a7795324d81bd0861f7276",
      "tree": "16c7c46023b2ca8eea1e231da058a5228c482e73",
      "parents": [
        "c7c745e8c8dcc7518b9d03720c85879cf29281be"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jul 23 15:32:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 09:32:50 2026 -0400"
      },
      "message": "NIFI-16098 Prevent content-claim truncation from dropping content referenced by a live sibling FlowFile (#11414)\n\n* NIFI-16098 Prevent content-claim truncation from dropping content referenced by a live sibling FlowFile\n\nA FlowFile created and removed within a single session (e.g. ExecuteGroovyScript\nwith Failure Strategy \u0027transfer to failure\u0027, which clones on get and removes the\nclone at commit) yields one repository record whose type transitions CREATE-\u003eDELETE.\nThe truncation reference count is incremented only for a committed CREATE, so that\nincrement never ran, but the DELETE still decremented it. For a content claim shared\nwith a live sibling FlowFile this drove the truncation reference count to zero,\nallowing the claim to be truncated and the sibling\u0027s content to be lost.\n\nOnly decrement the truncation reference count on delete of a persisted FlowFile\n(one that has an original claim).\n\n* NIFI-16098 Add system test reproducing content-claim truncation loss with an in-session cloned FlowFile\n\nAdds a CloneAndTerminate test processor that, for each incoming FlowFile, clones it and removes both the\nclone and the input within the same session (the record set produced by ExecuteGroovyScript with Failure\nStrategy \u0027transfer to failure\u0027). A new ContentClaimTruncationIT case forks a generator to this processor\nand to a leg that holds the FlowFiles, and verifies the shared content claims are not truncated while the\nholding leg still references them. The test fails without the accompanying framework fix (content is\ntruncated away) and passes with it."
    },
    {
      "commit": "c7c745e8c8dcc7518b9d03720c85879cf29281be",
      "tree": "e2883719ca9651f86e5f4e037d6bb025b5b85fd3",
      "parents": [
        "6b30a16d092f13b38765bade5e1732969d93e058"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 22 22:12:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 15:12:30 2026 -0500"
      },
      "message": "NIFI-16064 Preserve local Public Port Names on updates from Version Control (#11384)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "6b30a16d092f13b38765bade5e1732969d93e058",
      "tree": "145ff05a558156c280744a91b4af468055d8d792",
      "parents": [
        "259c58eb1e1bb2e187cb649d7b99d06e39accfca"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 22 21:03:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 14:03:44 2026 -0500"
      },
      "message": "NIFI-16040 Corrected paging for Branches in BitBucket Registry Client (#11363)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "259c58eb1e1bb2e187cb649d7b99d06e39accfca",
      "tree": "efe0f6ad8ae58dc7a425156cb15923d42eaafc73",
      "parents": [
        "14f095aebdc1656098c38c5ff926ba06d93f10f6"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 22 14:00:04 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 13:00:04 2026 -0500"
      },
      "message": "NIFI-16021 Improved JoltTransformJSON invalid specification messaging (#11426)\n\n- Improved JoltTransformJSON error message when specified JOLT spec is invalid and ensured leading single and multi-line Java comments are supported when the Jolt spec is specified as text. Also added tests to ensure ValidateJson causes Json parsing exception when any Java comments is specified before or inside a schema.\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "14f095aebdc1656098c38c5ff926ba06d93f10f6",
      "tree": "b4fb5dcb84b678eb88f7400f1623622d24c7653b",
      "parents": [
        "15de342ed30f542cf15c3fd0a330ca63bf8cb80f"
      ],
      "author": {
        "name": "Matt Gilman",
        "email": "matt.c.gilman@gmail.com",
        "time": "Wed Jul 22 12:43:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 12:43:08 2026 -0400"
      },
      "message": "NIFI-16135 Sanitize URL-derived segments used to build nifi-api requests (#11462)\n\nAdd safeApiPath and isSameOriginTarget shared utilities and apply them to\nroute/query-derived values in AccessPolicyService, DocumentationService, and\nthe content viewer, so untrusted deep-link input cannot redirect authenticated\nrequests or bypass the same-origin ref check."
    },
    {
      "commit": "15de342ed30f542cf15c3fd0a330ca63bf8cb80f",
      "tree": "ba0fe227f03b7f1891cdbe74b2964aca75b02392",
      "parents": [
        "297bf4898005be693b47e681dec34f2bf65f5b8a"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 22 17:38:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 10:38:50 2026 -0500"
      },
      "message": "NIFI-16130 Fixed ReplayLastEventEndpointMerger to count replays per Node (#11450)\n\n- Changed accumulator to List of Long instead of Set to provide correct count of Replays regardless of matching Event IDs since different nodes can have the same local Event ID\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "297bf4898005be693b47e681dec34f2bf65f5b8a",
      "tree": "a1387d7e75ae11ad23f670fe5d1111fd5838e6d4",
      "parents": [
        "c7725c43340292e2231b4024b2456aa0ac284c44"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 22 17:24:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 10:24:56 2026 -0500"
      },
      "message": "NIFI-16134 Fixed Controller Service enable failure Bulletins not attributed to source component (#11461)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "c7725c43340292e2231b4024b2456aa0ac284c44",
      "tree": "bd862d33223ca038fd65263560a65727e6581666",
      "parents": [
        "59cff970ca8b98ee51ae4418cf4de6830fa28c37"
      ],
      "author": {
        "name": "Rakesh Kumar Singh",
        "email": "80878753+rakesh-rsky@users.noreply.github.com",
        "time": "Wed Jul 22 16:02:29 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 12:32:29 2026 +0200"
      },
      "message": "NIFI-15883: Fix Wait/Notify race condition with CAS-aware replace and complete (#11275)\n\n- WaitNotifyProtocol.replace(Signal): Changed from returning boolean to void.\n  Throws ConcurrentModificationException when the underlying cache.replace()\n  returns false (CAS failure due to concurrent Notify), making the API\n  consistent with complete(Signal) which also throws on concurrent modification.\n\n- WaitNotifyProtocol.notify(): Updated retry loop to catch\n  ConcurrentModificationException from replace() instead of checking\n  the boolean return value.\n\n- WaitNotifyProtocol.complete(Signal): Replaces raw cache.remove() with a\n  version-aware approach that re-fetches the cache entry and compares\n  revisions before removing. Throws ConcurrentModificationException if\n  a concurrent Notify updated the signal between Wait\u0027s initial read\n  and the remove call, preventing silent data loss.\n\n- Wait.java: Simplified call sites - protocol.replace(signal) and\n  protocol.complete(signal) both now throw ConcurrentModificationException\n  on concurrent modification. The catch block handles both IOException and\n  ConcurrentModificationException with session rollback and ProcessException.\n\n- TestWaitNotifyProtocol: Add three tests for complete(Signal):\n  happy-path removal, concurrent-modification detection, and no-op\n  when the signal is already absent.\n\n- TestWait: Add two integration tests that verify session rollback and\n  ProcessException wrapping when replace() throws on CAS failure\n  (waitProgressed path) and when complete() detects a stale revision\n  (waitCompleted path)."
    },
    {
      "commit": "59cff970ca8b98ee51ae4418cf4de6830fa28c37",
      "tree": "99030f3114739e84c018c8e1384b10f0c749e927",
      "parents": [
        "830760048605abbad7e538f78f3b218853f6fd5a"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Wed Jul 22 01:04:21 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 08:04:21 2026 +0200"
      },
      "message": "NIFI-16132 Added Component ID to Standard Component Log MDC (#11452)\n\n- Renamed SimpleProcessLogger to StandardComponentLog\n- Adjusted constructors to require componentId in both cases"
    },
    {
      "commit": "830760048605abbad7e538f78f3b218853f6fd5a",
      "tree": "2be79253cdddda339662efa974cd1ef9009845e0",
      "parents": [
        "073e0277a5a9bd52456dfad99e2826f37724f9cb"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Wed Jul 22 00:58:22 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 07:58:22 2026 +0200"
      },
      "message": "NIFI-16133 Removed unused validate method from Flow Analysis Rule DAO (#11453)"
    },
    {
      "commit": "073e0277a5a9bd52456dfad99e2826f37724f9cb",
      "tree": "f0b73bb8ad8cc4b512440db83ca5c87629e2bd9b",
      "parents": [
        "6263c7829ceef94df685f1b78c087c882712fe26"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Tue Jul 21 22:14:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 15:14:42 2026 -0500"
      },
      "message": "NIFI-16104 Fixed flaky ConnectorAssetsIT by polling for asset removal (#11420)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "6263c7829ceef94df685f1b78c087c882712fe26",
      "tree": "aa5280834ba0d431639acc381d00b0e786c51e61",
      "parents": [
        "648fca5c81b35541e28536aafdf34ea0160e5629"
      ],
      "author": {
        "name": "Mark Payne",
        "email": "markap14@hotmail.com",
        "time": "Tue Jul 21 14:20:03 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 14:20:03 2026 -0400"
      },
      "message": "NIFI-15932: Implemented ability to migrate a Versioned flow\u0027s Assets … (#11240)\n\n* NIFI-15932: Implemented ability to migrate a Versioned flow\u0027s Assets and config to a new Connector\n\nSquashed work:\n- Implemented ability to migrate a Versioned flow\u0027s Assets and config to a new Connector\n- Refactored the Connector Migration logic into a separate MigratableConnector interface\n- Added MIGRATE allowable action and aligned with nifi-api\n- Reworked to use migrateConfiguration/migrateState approach (NIFI-15988); bug fixes; include Process Groups acceptable to the Connector but not in desirable state with reasons\n\n* NIFI-15932: Addressed review feedback on Connector versioned-flow migration\n\n- Removed the IOException catch in StandardConnectorRepository.waitForState so a\n  persistent cluster-state failure aborts the update instead of looping without bound.\n- Added a mapAssetReferences flag to NiFiServiceFacade.getCurrentFlowSnapshotByGroupId\n  so asset references are mapped only for migration snapshots, not for general export.\n- Capped the uploaded migration payload at 100 MB via MaxLengthInputStream.\n- Changed MigrationRequestEndpointMerger to surface the most recent lastUpdated across\n  the cluster instead of the earliest.\n- Added ConnectorMigrationManager.verifyConnectorReadyForMigration and wired it through\n  the ConnectorDAO, NiFiServiceFacade, and ConnectorResource so a migration request is\n  rejected synchronously when the Connector is not ready.\n- Added a migration-in-progress marker (beginMigration/endMigration) so syncConnector\n  skips asset cleanup while a migration is copying assets.\n- Reworded the clearConnectorComponentState comment to describe the actual\n  initial-flow condition rather than an empty-flow assumption.\n- Made the AssetReadingProcessor system-test extension write its output atomically to\n  remove a truncate/rewrite race that intermittently produced an empty output file.\n\nAdded and adjusted unit tests for the merger timestamp, the asset-cleanup guard, the\nwaitForState abort path, the synchronous readiness check, the payload size cap, and the\nsnapshot asset-reference scoping, and updated the migration system test to expect the\nsynchronous rejection of a second migration attempt.\n\n* NIFI-15932: Fixed flaky eligibility system test by waiting for a minimum queue count\n\ntestMigrationSourcesListingReportsAllConcurrentIneligibilityReasons started the source\nproducer with the consumer stopped and waited for an exact queue count of 1. Because the\nproducer fills the connection without bound, the backlog can grow past 1 before the queue\nis sampled, after which the exact-count wait never matches and the test hangs until the\njob times out. Wait for a minimum of one queued FlowFile instead, which is the stable\ncondition the test actually requires.\n\n* NIFI-15932: Provided hooks for ConnectorConfigurationProvider to verify whether or not Connector\u0027s config/assets/state can be migrated from a versioned flow or not and notify upon completion\n\n* NIFI-15932: Updated StandardFrameworkConnectorMigrationContext to implement the newly added setValueReference / setValueReferences methods of ConnectorMigrationContext. Overhauled how system tests work to more accurately mimic how we expect typical connectors to work. Also performed some system test cleanup and stubbed out implementations for ProcessorFacade/ConnectionFacade so that everything compiles on latest nifi-api version. Finally, fixed a bug in which after migrating a versioned flow to a connector, the migrated flow disabled all Controller Services/Processors but not Ports; now all input/output Ports are also disabled.\n\n* NIFI-15932: Removed duplicate getQueueSnapshot() overrides after merge\n\nThe merge with main silently duplicated the getQueueSnapshot() override in\nStandaloneConnectionFacade and AuthorizingConnectionFacade: the branch had\nadded a temporary placeholder for the queue-snapshot API added in nifi-api\n2.10.0, and main added the real override at a nearby location, so the\nline-based merge kept both copies. Dropped the placeholder copies in favor\nof the versions delivered on main (StandaloneConnectionFacade throws\nUnsupportedOperationException; AuthorizingConnectionFacade delegates after\nauthorizing read). Also removed the now-unused java.util.List import.\n\n* NIFI-15932: Updated how we determine a Connector is eligible for migration from a Versioned Flow\n\n* NIFI-15932: Addressed documentation feedback from Bob Paulin\n\nReworded administration and developer guide sections covering Connector\nmigration eligibility, secrets handling, and the active FlowContext\nlifecycle. Added an asset-migration code example to the developer guide.\nUpdated the developer guide\u0027s description of the one-shot migration\ngate to match the isModified()-based eligibility check. Adjusted an\nexception message and made ineligibility reason strings count-based\ninstead of grammatically pluralized so they are easier to scan and\nmatch in logs.\n\n* NIFI-15932: Fixed system test broken by ineligibility reason wording change\n\nConnectorVersionedFlowMigrationIT still asserted on the old singular/plural\nineligibility-reason wording, which caused a macOS system test failure in CI\nafter the wording was switched to a fixed count-based format. Updated the\nsubstrings the test checks for, and refreshed a stale comment example in\nStandardConnectorMigrationManager.\n\n* NIFI-15932: Fixed isModified() reporting freshly-created Connectors with unset Secret/Asset properties as modified\n\nStandardConnectorNode.configurationDiffersFromDefaults() treated any\nSecret or Asset reference as evidence of modification, including a\nstructurally-empty one (no provider/secret name, or no asset\nidentifiers) that represents an unset property rather than a\nconfigured value. That falsely blocked the MIGRATE action for a\nfreshly-created Connector whose configuration was populated from a\nserialized/round-tripped source, since an unset secret or asset\nproperty serializes as an empty typed reference rather than being\nomitted. Added isStructurallyEmptyReference(), reusing the existing\nisEmptySecretReference() check and applying the same emptiness rule\nalready used for Asset references in isReferenceAllowed().\n\nReported by @ncover21 on the PR review thread.\n\n* NIFI-15932: Persisted migration outcome to the ConnectorConfigurationProvider\n\nStandardConnectorRepository.notifyMigrationComplete(...) invoked only the\nConnectorConfigurationProvider.migrationComplete(...) hook, unlike\nconfigureConnector(...) and updateConnector(...), which always call\nconfigurationProvider.save(...) after changing a Connector\u0027s configuration.\nA provider that persists working configuration externally (rather than\nrelying solely on flow.json.gz) never received the migrated configuration,\nleaving the externally persisted configuration stale until a later\nconfigure or update call triggered a save. By the time notifyMigrationComplete\nruns, commitMigratedConfiguration(...) has already written the merged\nconfiguration onto the active configuration and rebuilt the working flow\ncontext from it, so saving buildWorkingConfiguration(connector) here reflects\nthe migration outcome.\n\nReported by @ncover21 on the PR review thread.\n\nThis closes #11240"
    },
    {
      "commit": "648fca5c81b35541e28536aafdf34ea0160e5629",
      "tree": "69924c0114681bef15579bfe84d06dc0418a3aaf",
      "parents": [
        "2b83fe9143063abd2ccb6b5ca2d5b4649177b2d5"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 20 17:34:34 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 16:34:34 2026 -0500"
      },
      "message": "NIFI-16128 Removed redundant calls to String.format (#11449)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "2b83fe9143063abd2ccb6b5ca2d5b4649177b2d5",
      "tree": "b90bceee02767bd07f8c9416a122a9b4fdf874a2",
      "parents": [
        "0f8d5779a8863951fc0f3e0b0ae9b4e559a0d701"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 20 17:20:27 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 16:20:27 2026 -0500"
      },
      "message": "NIFI-16127 Removed redundant usage of unmodifiable Collection wrappers (#11448)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "0f8d5779a8863951fc0f3e0b0ae9b4e559a0d701",
      "tree": "a4aa62df98ac1d584172bac8843e351620ba2ea4",
      "parents": [
        "3946f7285344196a3a83ea402b176190ea85bd85"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Mon Jul 20 13:28:44 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 20:28:44 2026 +0200"
      },
      "message": "NIFI-16120 Added caching for Kubernetes Leader Election Manager (#11445)\n\n- Configured cache with timeout of 5 seconds for leader status following the pattern of the ZooKeeper implementation"
    },
    {
      "commit": "3946f7285344196a3a83ea402b176190ea85bd85",
      "tree": "08c733501c2b69fc520dd6ee4e3ba2d92597f54e",
      "parents": [
        "dbc56bd50a18df4c84d329db3e22ecef0f3811fb"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 20 13:28:28 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 12:28:28 2026 -0500"
      },
      "message": "NIFI-16122 Removed redundant type casts and added PMD rule UnnecessaryCast (#11440)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "dbc56bd50a18df4c84d329db3e22ecef0f3811fb",
      "tree": "be478633c9a25dd1b57d0f24092ffdea9829a9d3",
      "parents": [
        "cd2a346140481a7d4c0d8076c5bef70b20e7c7d9"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 20 12:59:16 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 11:59:16 2026 -0500"
      },
      "message": "NIFI-16126 Removed redundant type arguments (#11446)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "cd2a346140481a7d4c0d8076c5bef70b20e7c7d9",
      "tree": "7af38bd817a4eb1ae1bc2d3b9fcc2998143fa427",
      "parents": [
        "8d90600a04cb0cdb25ebe3d9209d406162075ff6"
      ],
      "author": {
        "name": "ing-mattioni",
        "email": "ing.mattioni@libero.it",
        "time": "Mon Jul 20 18:47:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 18:47:36 2026 +0200"
      },
      "message": "NIFI-15935 Clean up AMQP resources after processor failures (#11243)"
    },
    {
      "commit": "8d90600a04cb0cdb25ebe3d9209d406162075ff6",
      "tree": "aba5ca8ff4af87fa37b7b093a6445a65efe453a6",
      "parents": [
        "8372ecbe0968892fe0317ccebc351c1ea1c55acc"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 20 16:10:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 09:10:58 2026 -0500"
      },
      "message": "NIFI-16124 Bump Kotlin to 2.4.10, Snowflake JDBC to 4.3.2, and others (#11443)\n\n- Spotbugs Maven Plugin from 4.10.2.0 to 4.10.3.0 - https://github.com/spotbugs/spotbugs-maven-plugin/releases/tag/spotbugs-maven-plugin-4.10.3.0\n- Dropbox client from 8.0.1 to 8.0.2 - https://github.com/dropbox/dropbox-sdk-java/releases/tag/v8.0.2\n- Greenmail from 2.1.9 to 2.1.11 - https://github.com/greenmail-mail-test/greenmail/releases/tag/release-2.1.11\n- GeoIP2 from 5.1.0 to 5.2.0 - https://github.com/maxmind/GeoIP2-java/releases/tag/v5.2.0\n- Google API Services Drive from v3-rev20260624-2.0.0 to v3-rev20260712-2.0.0 - https://developers.google.com/workspace/drive/release-notes#July_15_2026\n- JanusGraph from 1.2.0-20260703-225631.5361a02 to 1.2.0-20260719-131347.d9158a6 - https://github.com/JanusGraph/janusgraph\n- Apache Ivy from 2.5.3 to 2.6.0 - https://github.com/apache/ant-ivy/releases/tag/rel%2F2.6.0\n- SNMP4J Agent from 3.9.1 to 3.9.2 - https://snmp4j.org/agent/CHANGES.txt\n- Snowflake JDBC from 4.3.1 to 4.3.2 - https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc-2026#version-432-jul-16-2026\n- AWS SDK from 2.47.5 to 2.48.3 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.48.3\n- Kotlin from 2.4.0 to 2.4.10 - https://github.com/JetBrains/kotlin/releases/tag/v2.4.10\n- Checkstyle from 13.7.0 to 13.8.0 - https://github.com/checkstyle/checkstyle/releases/tag/checkstyle-13.8.0\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "8372ecbe0968892fe0317ccebc351c1ea1c55acc",
      "tree": "7e1e670aec60b7b59106fbff9cf03a96e7c0a918",
      "parents": [
        "fb432a2db5a766c5fb2929625569ceb998c6f5e9"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Mon Jul 20 04:47:58 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 11:47:58 2026 +0200"
      },
      "message": "NIFI-16123 Added Connection Status reporting to Process Session (#11441)\n\n- Added ConnectionStatusEvent interface to framework-api\n- Updated StandardProcessSession with optional recording of Connection Status"
    },
    {
      "commit": "fb432a2db5a766c5fb2929625569ceb998c6f5e9",
      "tree": "63a68344eebbb8ce0632e86f7fc704d94be3a410",
      "parents": [
        "a2d461b59537d0f0bc000d111abbfe1d18b4195f"
      ],
      "author": {
        "name": "pkelly-nifi",
        "email": "71455011+pkelly-nifi@users.noreply.github.com",
        "time": "Thu Jul 16 08:45:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 14:45:00 2026 +0200"
      },
      "message": "NIFI-7307 Adding support for setting and retrieving Azure Blob Storage metadata and tags (#10939)"
    },
    {
      "commit": "a2d461b59537d0f0bc000d111abbfe1d18b4195f",
      "tree": "40404fe35f5c17ac3dadd0894e72c12eab34b8b1",
      "parents": [
        "d01927335d65be8fe45154027f6ca692c1ffaedd"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 15 16:55:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 15:55:45 2026 -0500"
      },
      "message": "NIFI-16119 Simplified assertion methods in multiple tests (#11437)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "d01927335d65be8fe45154027f6ca692c1ffaedd",
      "tree": "f7b182b1d330bbf1bbf9bcf89848958fd783754b",
      "parents": [
        "69a7d8d5decce3f620a6f5f5dcc6c6c2d33da329"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 15 16:53:24 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 15:53:24 2026 -0500"
      },
      "message": "NIFI-16118 Added Checkstyle rules to prevent unnecessary semicolons in Enums and try with resources (#11436)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "69a7d8d5decce3f620a6f5f5dcc6c6c2d33da329",
      "tree": "e35fc3dedbf79e7aef714c5104037009a1af6162",
      "parents": [
        "7dd9d5425ee1b32fe18ad799195bc66c9e1eb74e"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 15 12:54:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 11:54:29 2026 -0500"
      },
      "message": "NIFI-16117 Removed unused State enum and ViewableContent interface (#11434)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "7dd9d5425ee1b32fe18ad799195bc66c9e1eb74e",
      "tree": "d98f0541004fa94a5d342e9641806d15c02528a9",
      "parents": [
        "78df4c14b98114dfc7127061684684fb7d186182"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 15 12:40:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 18:40:52 2026 +0200"
      },
      "message": "NIFI-16116 Removed mention of ConsumeTwitter (#11433)"
    },
    {
      "commit": "78df4c14b98114dfc7127061684684fb7d186182",
      "tree": "2c94f385248ee23684177964fb7933b6994924f0",
      "parents": [
        "b6720a9b90bdcf29a8dfe3e16fd59eccfe2d9320"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Wed Jul 15 03:28:07 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 10:28:07 2026 +0200"
      },
      "message": "NIFI-16110 Improved MiNiFi C2 Asset File Name Validation (#11427)\n\n- Aligned Asset File Name validation for update and synchronization strategies"
    },
    {
      "commit": "b6720a9b90bdcf29a8dfe3e16fd59eccfe2d9320",
      "tree": "839e5dc87fde8ceccd348e73fa2be4f2b8a72dcd",
      "parents": [
        "8603aa88cb2afdd1e2baf5d62351c14adb018441"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Wed Jul 15 03:27:16 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 10:27:16 2026 +0200"
      },
      "message": "NIFI-16115 Removed deprecated ConsumeTwitter Processor (#11431)\n\n- Removed social-media-bundle and NAR"
    },
    {
      "commit": "8603aa88cb2afdd1e2baf5d62351c14adb018441",
      "tree": "f164223535414e552f4dc3b3fe12bc05eb6b7984",
      "parents": [
        "f516dde311fe95323bb3ca2ff4dd76366a619474"
      ],
      "author": {
        "name": "Scott Aslan",
        "email": "scottyaslan@users.noreply.github.com",
        "time": "Tue Jul 14 16:26:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 16:26:18 2026 -0400"
      },
      "message": "NIFI-16096 DESIGN.md standard for agents (#11412)\n\n* NIFI-16096 DESIGN.md standard for agents\n\n* remove DESIGN.md from RAT check"
    },
    {
      "commit": "f516dde311fe95323bb3ca2ff4dd76366a619474",
      "tree": "e3761f8c45bd6a2bae64f7cb998f775bd4f06702",
      "parents": [
        "6928146272fb9d7b4b0bb7ba9c3f320a6b2a0d76"
      ],
      "author": {
        "name": "Matt Gilman",
        "email": "matt.c.gilman@gmail.com",
        "time": "Tue Jul 14 15:47:28 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 15:47:28 2026 -0400"
      },
      "message": "NIFI-16059: validate connector postMessage origin against the host origin instead of the entity-controlled configurationUrl (CWE-346) (#11379)\n\nThis closes #11379"
    },
    {
      "commit": "6928146272fb9d7b4b0bb7ba9c3f320a6b2a0d76",
      "tree": "19d20c239bc6a5ebd5ad5e3688b344c39611eb08",
      "parents": [
        "23eacf40f8dc94e4668b92b5b1eb11ee81cfdc51"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Tue Jul 14 06:42:05 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 13:42:05 2026 +0200"
      },
      "message": "NIFI-16112 Streamlined Read Write Authorization on Parameter Contexts (#11429)\n\n- Added shared authorize read write method on Parameter Context Resource class\n- Added write authorization on Parameter Context validation request method"
    },
    {
      "commit": "23eacf40f8dc94e4668b92b5b1eb11ee81cfdc51",
      "tree": "4f3c4c94e41b8592b7a7defc46e4538a3bc60900",
      "parents": [
        "c45c77cacb57041978938170ea4357392b939295"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Tue Jul 14 04:48:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 10:48:37 2026 +0200"
      },
      "message": "NIFI-16111 Removed the unnecessary use of semicolons in enums and try with resources. (#11428)"
    },
    {
      "commit": "c45c77cacb57041978938170ea4357392b939295",
      "tree": "c383568aa92d5c2001355227b20895795129e7da",
      "parents": [
        "2fe3fa79b5f6e30f831dd49a43343a3bbe12b485"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 13 22:07:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 15:07:25 2026 -0500"
      },
      "message": "NIFI-16084 Fixed Load-balanced connection desynchronizing Socket after in-flight transaction unregistered (#11402)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "2fe3fa79b5f6e30f831dd49a43343a3bbe12b485",
      "tree": "a0f83cf3aeb6b9b50cefb3e7becaa164c839d999",
      "parents": [
        "38181d61ba5c61862ab1345a3f1d0d3bf060a96a"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 13 22:05:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 15:05:49 2026 -0500"
      },
      "message": "NIFI-16086 Added Flow Registry Client Synchronization Interval property (#11404)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "38181d61ba5c61862ab1345a3f1d0d3bf060a96a",
      "tree": "441978e3f975af33bc4b6056259ec314b0c19750",
      "parents": [
        "313b71a8c167c420db17cc6fd210423ce7eb06cb"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 13 15:11:59 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 14:11:59 2026 -0500"
      },
      "message": "NIFI-16108 Removed unnecessary calls of toString (#11424)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "313b71a8c167c420db17cc6fd210423ce7eb06cb",
      "tree": "d207ba5235f4f7ed04999e315d0cc13550f5fe3c",
      "parents": [
        "d22489fc58a247714445ac833ea5f4d67b88b831"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 13 16:47:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 09:47:37 2026 -0500"
      },
      "message": "NIFI-16105 Upgraded NiFi API from 2.9.0 to 2.10.0 (#11421)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "d22489fc58a247714445ac833ea5f4d67b88b831",
      "tree": "40d2f1106d102f9cec21f8c8bb4649f1c3f59a38",
      "parents": [
        "7ae29ec40ba106bf79f67fb466f91b85473540fc"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 13 16:38:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 09:38:34 2026 -0500"
      },
      "message": "NIFI-16106 Bump Bouncycastle to 1.85, Logback to 1.5.38, Jackson to 3.2.1, and others (#11422)\n\n- RabbitMQ Client from 5.33.1 to 5.34.0 - https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.34.0\n- Box Java SDK from 5.13.0 to 5.14.1 - https://github.com/box/box-java-sdk/releases/tag/v5.14.1\n- Github Client from 2.0-rc.6 to 2.0-rc.7 - https://github.com/hub4j/github-api/releases/tag/github-api-2.0-rc.7\n- HiveMQ MQTT Client from 1.3.16 to 1.3.17 - https://github.com/hivemq/hivemq-mqtt-client/releases/tag/v1.3.17\n- gRPC from 1.82.1 to 1.82.2 - https://github.com/grpc/grpc\n- Saxon-HE from 12.9 to 12.10 - https://blog.saxonica.com/announcements/2026/07/saxon-12.10.html\n- FlywayDB from 12.10.0 to 12.11.0 - https://github.com/flyway/flyway/releases/tag/flyway-12.11.0\n- AWS SDK from 2.47.3 to 2.47.5 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.47.5\n- Jackson 3 from 3.2.0 to 3.2.1 - https://github.com/FasterXML/jackson/wiki/Jackson-Release-3.2.1\n- Logback from 1.5.37 to 1.5.38 - https://github.com/qos-ch/logback/releases/tag/v_1.5.38\n- Apache Mina SSHd from 2.18.0 to 2.19.0 - https://github.com/apache/mina-sshd/releases/tag/sshd-2.19.0\n- Nimbus OAuth2 OIDC from 11.37.2 to 11.38.1 - https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions/src/master/CHANGELOG.txt\n- Bouncycastle from 1.84 to 1.85 - https://www.bouncycastle.org/download/bouncy-castle-java/#release-notes\n- JUnit from 6.1.1 to 6.1.2 - https://github.com/junit-team/junit-framework/releases/tag/r6.1.2\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "7ae29ec40ba106bf79f67fb466f91b85473540fc",
      "tree": "4e4349a2788da9b5577051506e5d65cf215db9ec",
      "parents": [
        "0f45af1e5b23e904f3669313b294794c25ad2a69"
      ],
      "author": {
        "name": "agturley",
        "email": "agturley@gmail.com",
        "time": "Fri Jul 10 22:04:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 11 07:04:22 2026 +0200"
      },
      "message": "NIFI-16028 - Support nested field paths in PutElasticsearchJson (#11355)\n\nAllow the Index Field, Identifier Field, and Timestamp Field properties to\nreference a nested field with a \"/\"-delimited path (e.g. \"@metadata/index\").\nA value with no \"/\" behaves exactly as before (top-level lookup), so existing\nflows are unaffected.\n\nWhen the corresponding Retain property is false, the extracted leaf is removed\nand any ancestor object left empty is pruned recursively, so a transient\nenvelope like \"@metadata\" is not indexed once its fields are consumed; parents\nthat still have other fields are kept.\n\nA field name that literally contains a \"/\" can be addressed by escaping the\nslash as \"\\/\" (and a literal backslash as \"\\\\\"); a backslash not followed by\n\"/\" or \"\\\" is left untouched, so existing field names are unaffected. The\nescaping rule and worked nesting/escaping examples are documented in the\nIndex, Identifier, and Timestamp Field property descriptions.\n\nApplies across NDJSON, JSON Array, and Single JSON, and all index operations.\nThe NDJSON raw-bytes fast path is bypassed only when a nested path is\nconfigured, since the streaming scan only matches flat field names; the path\nclassification and decoded flat names are resolved once per onTrigger rather\nthan per record.\n\nAdd a Field Path Mode property to PutElasticsearchJson controlling how the\nIdentifier Field, Index Field, and Timestamp Field values are interpreted:\n\n  - Literal Field Name (default): the value is the exact name of a top-level\n    field, with \"/\" and \"\\\" treated literally.\n  - Nested Field Path: the value is a \"/\"-delimited path into nested objects,\n    with \"\\/\" and \"\\\\\" escaping.\n\nDefaulting to Literal Field Name keeps existing configurations behaving as\nbefore, so no property migration is required. In literal mode the configured\nvalues are escaped into single-segment paths so the shared path helpers\nresolve them to the exact field name, leaving the extraction logic unchanged.\n\nDocument both modes in additionalDetails.md and add literal-mode tests\nalongside the existing nested-path coverage"
    },
    {
      "commit": "0f45af1e5b23e904f3669313b294794c25ad2a69",
      "tree": "14e3a25c9425c57d23758cca0c1453023caf6031",
      "parents": [
        "03f58ff43f0a974adabb14be41b6c45817a46666"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Sat Jul 11 01:02:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 11 07:02:52 2026 +0200"
      },
      "message": "NIFI-16102 Fixed Javadoc declaration problems (#11418)"
    },
    {
      "commit": "03f58ff43f0a974adabb14be41b6c45817a46666",
      "tree": "256bedf1407be7bb665815acf07226464300a50f",
      "parents": [
        "2654e7123f103b5f4404a827e9b06d2a5ee737a3"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Sat Jul 11 00:48:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 11 06:48:13 2026 +0200"
      },
      "message": "NIFI-16101 Fixed warnings resulting from Intellij \"Null Check Method is called with obviously non-null argument\" check. (#11416)"
    },
    {
      "commit": "2654e7123f103b5f4404a827e9b06d2a5ee737a3",
      "tree": "acb4ce600038d10b7d19abddc5e638c9016aba96",
      "parents": [
        "9df359acd4b6f50ca9cf363c18c8472c3364041b"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Fri Jul 10 23:46:39 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 11 06:46:39 2026 +0200"
      },
      "message": "NIFI-16056 Document single host format for Proxy Host Headers (#11419)\n\n* NIFI-16056 Documented single host format for Proxy Host Headers"
    },
    {
      "commit": "9df359acd4b6f50ca9cf363c18c8472c3364041b",
      "tree": "b4b9ec3698894ea7234212e3cc6e8828720c6b69",
      "parents": [
        "f1fbff83f7c7132c7643c28990831dea5cc7a43b"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Fri Jul 10 21:55:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 14:55:46 2026 -0500"
      },
      "message": "NIFI-16078 Fixed StandardHashiCorpVaultClientService for non-token Authentication (#11396)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "f1fbff83f7c7132c7643c28990831dea5cc7a43b",
      "tree": "0c749696db7398d56bbb1947a5aa5b6124357fc1",
      "parents": [
        "ec1f27fe566a873697e6d31c0168cd66f3237541"
      ],
      "author": {
        "name": "Bob Paulin",
        "email": "bob@bobpaulin.com",
        "time": "Fri Jul 10 13:21:14 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 14:21:14 2026 -0400"
      },
      "message": "NIFI-16099: Controller Service Provider should be passed to Connectors (#11415)"
    },
    {
      "commit": "ec1f27fe566a873697e6d31c0168cd66f3237541",
      "tree": "085a2e4014928330fd43e11d323ff29668654ebe",
      "parents": [
        "1fa4b35b4aa50507434425fc8349c66682122263"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jul 09 15:09:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 08:09:33 2026 -0500"
      },
      "message": "NIFI-16095 Bump Jetty to 12.1.11, Jackson to 2.22.1, and others (#11411)\n\n- Mortbay from 11.0.22 to 11.0.23 - https://github.com/jetty-project/jasper-jsp/tree/jasper-jsp-11.0.23\n- Apache IoTDB from 2.0.8 to 2.0.10 - https://github.com/apache/iotdb/releases/tag/v2.0.10\n- MongoDB Driver from 5.8.0 to 5.9.0 - https://github.com/mongodb/mongo-java-driver/releases/tag/r5.9.0\n- JSON Schema Validator from 2.0.3 to 2.0.4 - https://github.com/networknt/json-schema-validator/releases/tag/2.0.4\n- AWS SDK from 2.47.0 to 2.47.1 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.47.1\n- Jackson from 2.22.0 to 2.22.1 - https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.22.1\n- Jetty from 12.1.10 to 12.1.11 - https://github.com/jetty/jetty.project/releases/tag/jetty-12.1.11\n- Bump AWS to 2.47.3, Google to 26.85.0, Couchbase to 3.12.1\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "1fa4b35b4aa50507434425fc8349c66682122263",
      "tree": "154c84d8a722aee7c31966b101aa0166f16a6e29",
      "parents": [
        "931d4c278c480837d043535a81eb399f06f85b88"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 08 23:02:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 16:02:14 2026 -0500"
      },
      "message": "NIFI-16087 Fixed GitHub Flow Registry commit retrieval on author resolution failures (#11406)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "931d4c278c480837d043535a81eb399f06f85b88",
      "tree": "96afa18d4d909001b29a1e2924868618bf6f4c28",
      "parents": [
        "f0d292282c47a37715ac3cd5c9ed72818eed30ac"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jul 08 15:42:02 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 21:42:02 2026 +0200"
      },
      "message": "NIFI-15960 Replaced current property in AvroSchemaRegistry with a new one which utilizes a validation strategy where it details what Avro validations occur when choosing strict validation of Avro schemas (#11290)\n\n* NIFI-15960 Replaced current property in AvroSchemaRegistry with a new one which utilizes a validation strategy where it details what Avro validations occur when choosing strict validation of Avro schemas"
    },
    {
      "commit": "f0d292282c47a37715ac3cd5c9ed72818eed30ac",
      "tree": "2394cc4fdb572518c66ddfa48b1649e3e7de344a",
      "parents": [
        "6e7b31fa194280512a3866fc83c3d97ad74ba692"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 08 21:37:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 14:37:21 2026 -0500"
      },
      "message": "NIFI-16092 Imroved unstable TestStandardRecordProcessorBlocker.TimeoutBlock.testBlockAndUnblock (#11408)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "6e7b31fa194280512a3866fc83c3d97ad74ba692",
      "tree": "39498f54e50645b167d383dea09c80183929660d",
      "parents": [
        "871c97a21a03a2b4e1cb753a3ff463d18178b748"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 08 21:08:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 15:08:22 2026 -0400"
      },
      "message": "NIFI-16085 - Flow synchronization fails when a Parameter Provider-backed Parameter Context contains a parameter not flagged as provided (#11403)\n\nSigned-off-by: Kevin Doran \u003ckdoran@apache.org\u003e"
    },
    {
      "commit": "871c97a21a03a2b4e1cb753a3ff463d18178b748",
      "tree": "d523cb52eeebd3e967f2a8dc57c2cd3b79304e35",
      "parents": [
        "0e6a68aedcffad0154e830691acbee8dd76bf9d4"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 08 19:50:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 12:50:18 2026 -0500"
      },
      "message": "NIFI-16094 Added Thread join in TestNodeClusterCoordinator.testConnectionRequestCancelsPendingDisconnect (#11410)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "0e6a68aedcffad0154e830691acbee8dd76bf9d4",
      "tree": "05be4097c7eecef229e09b65446a4d8683b213f2",
      "parents": [
        "337069a4eb2f57fc194855df42b16d0e8586f474"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jul 08 19:48:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 12:48:54 2026 -0500"
      },
      "message": "NIFI-16093 Wait for Couchbase Readiness in AbstractCouchbaseIT to stabilize integration tests (#11409)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "337069a4eb2f57fc194855df42b16d0e8586f474",
      "tree": "4257f87d71ee6c5f53eebe5924aefc99c845554a",
      "parents": [
        "a9da6c4749f8b67333bd242788c78f9cd6c084ea"
      ],
      "author": {
        "name": "Kevin Doran",
        "email": "kdoran@apache.org",
        "time": "Wed Jul 08 06:40:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 12:40:12 2026 +0200"
      },
      "message": "NIFI-16088 Add scheduling diagnostics for cron primary-node-only processors (#11407)\n\nCron triggers are scheduled as one-shot tasks that reschedule only after a\nsuccessful run. If the triggered task throws, or the next trigger fails to be\nscheduled, the scheduling chain silently terminates: the component stays\nRUNNING but never fires again on its schedule until it is stopped and started,\nwith no record in the logs. Make that observable:\n\n- CronSchedulingAgent: log a WARN (before propagating) when a cron-scheduled\n  trigger throws or when rescheduling the next trigger fails, noting the\n  component will not fire again until stopped and started.\n- ConnectableTask: log at INFO (was DEBUG) when a cron-driven, primary-node-only\n  component is skipped because this is not the primary node, so a skipped\n  scheduled fire is visible; timer-driven components stay at DEBUG to avoid noise.\n\nDiagnostics only; no scheduling or lifecycle behavior is changed."
    },
    {
      "commit": "a9da6c4749f8b67333bd242788c78f9cd6c084ea",
      "tree": "fc5f9b7a4ed2d6f17ce09addfec4983a1f74ba93",
      "parents": [
        "d7b581916d916b69df750c0bb746bc205337c9a3"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Tue Jul 07 16:01:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 22:01:33 2026 +0200"
      },
      "message": "NIFI-11295 Expanded Mapping File property to also take the mapping file content (#11081)"
    },
    {
      "commit": "d7b581916d916b69df750c0bb746bc205337c9a3",
      "tree": "b7f6e6677b207c2ca17ef2fbbde6483984b66603",
      "parents": [
        "229e2fa736cfde3ba7e0d671abb2486b7ee2b62b"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Tue Jul 07 14:24:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:24:43 2026 +0200"
      },
      "message": "NIFI-16073 Applied Pattern variable in other places in the code base and made preexisting pattern variables final (#11392)"
    },
    {
      "commit": "229e2fa736cfde3ba7e0d671abb2486b7ee2b62b",
      "tree": "faba596bc18e0f6de733e40b7c31dc77f6039248",
      "parents": [
        "a2760cdc873e4245f1c80418a03e9e33fa42be5a"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Tue Jul 07 17:56:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 10:56:45 2026 -0500"
      },
      "message": "NIFI-16083 Bump Netty for 4.2.16.Final, Log4J2 to 2.26.1, Groovy to 5.0.7, and others (#11401)\n\n- LZ4 Java from 1.11.0 to 1.11.1 - https://github.com/yawkat/lz4-java/releases/tag/v1.11.1\n- RabbitMQ Client from 5.33.0 to 5.33.1 - https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.33.1\n- JanusGraph from 1.2.0-20260627-173607.cb8644d to 1.2.0-20260703-225631.5361a02 - https://github.com/JanusGraph/janusgraph\n- HiveMQ MQTT Client from 1.3.15 to 1.3.16 - https://github.com/hivemq/hivemq-mqtt-client/releases/tag/v1.3.16\n- Apache Camel Salesforce from 4.20.0 to 4.21.0 - https://github.com/apache/camel/releases/tag/camel-4.21.0\n- PostgreSQL from 42.7.12 to 42.7.13 - https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.13\n- JSON Flattener from 0.18.1 to 0.18.2 - https://github.com/wnameless/json-flattener/releases/tag/json-flattener-0.18.2\n- Checker from 4.2.0 to 4.2.1 - https://github.com/typetools/checker-framework/releases/tag/checker-framework-4.2.1\n- AWS SDK BOM from 2.46.19 to 2.47.0 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.47.0\n- Apache Groovy from 5.0.6 to 5.0.7 - https://github.com/apache/groovy/releases/tag/GROOVY_5_0_7\n- Apache Log4J2 from 2.26.0 to 2.26.1 - https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.26.1\n- Netty from 4.2.15.Final to 4.2.16.Final - https://github.com/netty/netty/releases/tag/netty-4.2.16.Final\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "a2760cdc873e4245f1c80418a03e9e33fa42be5a",
      "tree": "f8210cd357209a3d9cfa694072697ec57d0d7167",
      "parents": [
        "c9c68cf69e7e186359c8ca2aa4695c7828c51915"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Tue Jul 07 04:35:03 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 11:35:03 2026 +0200"
      },
      "message": "NIFI-16072 Add ProcessSessionEvent handling to ComponentMetricReporter (#11398)\n\n* NIFI-16072 Added ProcessSessionEvent handling to ComponentMetricReporter\n\n- Renamed FlowFileEvent to ProcessSessionEvent\n- Moved ProcessSessionEvent to framework-api for ComponentMetricReporter\n- Added recordProcessSessionEvent method to RepositoryContext"
    },
    {
      "commit": "c9c68cf69e7e186359c8ca2aa4695c7828c51915",
      "tree": "24ea4b02eef8f8723d4e212da271ff0b27385f8c",
      "parents": [
        "8f78361172ad819f7109343369380196d2789424"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Tue Jul 07 03:34:48 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 10:34:48 2026 +0200"
      },
      "message": "NIFI-16080 Switch to JDBC Enquote Identifier in UpdateDatabaseTable (#11397)"
    },
    {
      "commit": "8f78361172ad819f7109343369380196d2789424",
      "tree": "7caa0a774001e9bdbc85df43eda74df06503c8aa",
      "parents": [
        "a0dc20b7ba6576ac376cd0c54fb685f220b6924b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 06 11:24:40 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 11:24:40 2026 -0500"
      },
      "message": "NIFI-16079 Bump sigstore from 4.1.0 to 4.1.1 in /nifi-frontend/src/main/frontend (#11386)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "a0dc20b7ba6576ac376cd0c54fb685f220b6924b",
      "tree": "28526d02e1bd3ce22140baf5b63d0283e0002a19",
      "parents": [
        "ca29d160c440fb6f233dc52769540a24bab5a383"
      ],
      "author": {
        "name": "Wojciech Trefon",
        "email": "wojciechtrefon@gmail.com",
        "time": "Mon Jul 06 18:11:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 11:11:20 2026 -0500"
      },
      "message": "NIFI-16077 Changed default Security Protocol for Kafka components from PLAINTEXT to SSL (#11394)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "ca29d160c440fb6f233dc52769540a24bab5a383",
      "tree": "bc98b0841f322fc64de373859ad732ca6b94b441",
      "parents": [
        "d54eeba905b3b5409f6abd738ca6b8e11f9a6b60"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jul 06 15:16:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 08:16:45 2026 -0500"
      },
      "message": "NIFI-16043 Downgrade spring-data-redis from 4.1.0 to 4.0.6 (#11395)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "d54eeba905b3b5409f6abd738ca6b8e11f9a6b60",
      "tree": "45693ccf6c8b32f1ccbfdf4ca3136b915cc71c75",
      "parents": [
        "46fc537ec8ad6e5112a05753ffe4110f133e1c90"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jul 06 04:40:20 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:40:20 2026 +0200"
      },
      "message": "NIFI-16068 Removed unnecessary calls to close() and flush() at the end of a try-with-resources block (#11388)"
    },
    {
      "commit": "46fc537ec8ad6e5112a05753ffe4110f133e1c90",
      "tree": "322e44c4b713bc949c2c8621c522fc0762445956",
      "parents": [
        "48b2987d7109c8736833fac5771abcd1e1f815be"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Fri Jul 03 03:01:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 20:01:04 2026 -0500"
      },
      "message": "NIFI-16071 Enable newly added Controller Services on versioned flow upgrade (#11390)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "48b2987d7109c8736833fac5771abcd1e1f815be",
      "tree": "44aedeab293911072778cbea8b6afdf6d1c8468e",
      "parents": [
        "306830fcd0220ae994b3c1f7f2c5e42aacfcc1fc"
      ],
      "author": {
        "name": "Rob Fellows",
        "email": "rob.fellows@gmail.com",
        "time": "Thu Jul 02 13:31:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 13:31:10 2026 -0400"
      },
      "message": "NIFI-16025 Canvas SVG transform overflow guards (#11352)\n\nPrevent browser SVG errors and frozen navigation caused by extreme finite\nfloating-point coordinate values (e.g. 7.49e+307) stored in NiFi flow\ndefinitions. The root cause is that Number.isFinite() accepts arbitrarily\nlarge finite numbers that overflow float32 rendering and D3 arithmetic;\nthis change adds a layered defence of magnitude- and range-bounded guards\nthroughout the frontend canvas pipeline.\n\n## Shared helpers (libs/shared)\n\nAdd canvas-bounds.util.ts with:\n- MAX_ABS_COORD (1e9) and MAX_ABS_TRANSLATE (1e12) magnitude bounds\n- MIN_SCALE (0.2) / MAX_SCALE (8) scale range, centralising the values\n  previously hardcoded in canvas-view.service.ts\n- isFiniteInBound(value, bound) — type guard combining Number.isFinite\n  and Math.abs check\n- isScaleInBound(value) — rejects near-zero and out-of-range scales\n- clampScale(scale, fallback?) — NaN-safe clamp\n- sanitizePosition(position, opts) — clamps bad coordinates to (0, 0)\n  with a warn-once, per-component-id console warning\n\nRe-export from services/index.ts. Full spec coverage (30 tests) including\nthe ~7.49e+307 fingerprint and the warn-once dedupe.\n\n## Data-ingestion sanitization\n\nflow.effects.ts (loadProcessGroup$): walk all positioned entity collections\n(processors, process groups, remote process groups, input/output ports,\nlabels, funnels) and connection bends through sanitizePosition before the\nNgRx action is dispatched. A session-scoped warnedPositionIds Set prevents\nconsole spam during polling refreshes.\n\nconnector-canvas.effects.ts (loadConnectorFlow$): same sanitizer applied to\nall collections. Even the read-only connector view uses the reusable canvas,\nso its inputs must be clean.\n\n## Flow-designer transform guards\n\ncanvas-view.service.ts:\n- Zoom handler: replace !isNaN checks with isFiniteInBound + isScaleInBound\n- transform(): early-return guard before behavior.transform() call\n- getSelectionBoundingClientRect(): return null on empty selection; swap\n  Number.MAX_VALUE / MIN_VALUE sentinel seeds for POSITIVE/NEGATIVE_INFINITY\n  so negative-space selections aggregate correctly\n- getCanvasPosition(): reject results outside MAX_ABS_COORD so bad\n  coordinates cannot be written back to the server\n- fit(): guard zero-dimension container; use clampScale helper\n\nbirdseye-view.service.ts (refresh()): bail early before divide-by-scale\narithmetic when this.x / this.y / this.k are out of bounds.\n\ntransform.effects.ts (restoreViewport$): upgrade isFinite checks to\nisFiniteInBound + isScaleInBound; call storage.removeItem(name) when the\npersisted entry is invalid, breaking the page-refresh replay loop.\n\n## Reusable canvas / birdseye guards\n\nui/common/canvas/canvas.component.ts:\n- readViewportTransform: upgrade isFinite to magnitude-bounded checks\n- Zoom handler: all-or-nothing guard before SVG attribute write and emit\n- applyTransform: magnitude+scale guard at top of method\n- restoreViewportFromStorage: evict bad localStorage entries on load\n- fitContent: clampScale instead of raw Math.min/max\n- getCanvasPosition: reject out-of-bounds output\n\nui/common/birdseye/birdseye.component.ts: add isTransformSafe predicate;\nconsult it in updateBrush and renderComponents before any divide-by-scale\nrender path.\n\n## Tests\n\n- canvas-bounds.util.spec.ts: 30 new tests\n- canvas-view.service.spec.ts: 12 new tests (mountCanvasDom fixture)\n- transform.effects.spec.ts: 5 new tests (new file)\n- birdseye-view.service.spec.ts: 3 new tests\n- birdseye.component.spec.ts: 4 new tests; update scale-0.1 test to use\n  valid MAX_SCALE to keep the minimum-brush-size assertion accurate\n- canvas.component.spec.ts: 10 new tests\n- flow.effects.spec.ts: 4 new tests\n- connector-canvas.effects.spec.ts: 3 new tests; update bare label\n  fixture to carry a position so it survives sanitization unchanged\n\nAll 2700 tests pass. nx lint nifi and npm run prettier clean."
    },
    {
      "commit": "306830fcd0220ae994b3c1f7f2c5e42aacfcc1fc",
      "tree": "ba0ecae742b1bd339819343302119684080e04b3",
      "parents": [
        "0cd239a5e43546b7bd66b50dc6bed62dc6ea6929"
      ],
      "author": {
        "name": "Alaksiej Ščarbaty",
        "email": "65507498+awelless@users.noreply.github.com",
        "time": "Thu Jul 02 17:03:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 17:03:31 2026 +0200"
      },
      "message": "NIFI-16066 Release lingering rename in ConsumeKinesis (#11385)\n\n* NIFI-16066 Release lingering rename lock when error occurs in ConsumeKinesis\n\nWhen an error (e.g. a failed checkpoint copy) occurred while a node held\nthe rename lock in LegacyCheckpointMigrator, the renameOwner marker was\nleft on the migration table, blocking all future rename attempts until\nthe stale-lock timeout elapsed. Release the rename lock on error, on all\nthree lock-holding paths, so the rename can be retried. The release is\nowner-guarded (renameOwner \u003d :owner) so a slow-failing node cannot wipe a\nlock another node has already force-acquired via the stale-lock takeover,\nand it is best-effort so a transient DynamoDB error while releasing does\nnot mask the original failure.\n\nAlso make waitForTableRenamed treat a rename as complete only once the\nmigration table has been dropped, not merely when the checkpoint table\nhas the new schema. The new checkpoint table is created empty before the\ncopy runs, so schema presence alone does not indicate the migration\nfinished."
    },
    {
      "commit": "0cd239a5e43546b7bd66b50dc6bed62dc6ea6929",
      "tree": "11225f3116a93431e723cea72873ad16f238955d",
      "parents": [
        "62964f0cdba91c5b9d84c51d0317e3d1f1b92177"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jul 02 13:59:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 06:59:55 2026 -0500"
      },
      "message": "NIFI-16062 Bump FastCSV to 4.3.1, HTTPClient5 to 5.6.2, and others (#11381)\n\n- AMQP Client from 5.32.0 to 5.33.0 - https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.33.0\n- HTTPClient5 from 5.6.1 to 5.6.2 - https://downloads.apache.org/httpcomponents/httpclient/RELEASE_NOTES-5.6.x.txt\n- Dropbox SDK from 8.0.0 to 8.0.1 - https://github.com/dropbox/dropbox-sdk-java/releases/tag/v8.0.1\n- Elasticsearch client from 9.4.2 to 9.4.3 - https://github.com/elastic/elasticsearch/releases/tag/v9.4.3\n- Wire from 6.4.1 to 6.4.5 - https://github.com/square/wire/releases/tag/6.4.5\n- Jedis from 7.5.2 to 7.5.3 - https://github.com/redis/jedis/releases/tag/v7.5.3\n- PostgreSQL from 42.7.11 to 42.7.12 - https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.12\n- FastCSV from 4.3.0 to 4.3.1 - https://github.com/osiegmar/FastCSV/releases/tag/v4.3.1\n- FlywayDB from 12.9.0 to 12.10.0 - https://github.com/flyway/flyway/releases/tag/flyway-12.10.0\n- JLine from 4.2.1 to 4.3.1 - https://github.com/jline/jline3/releases/tag/4.3.1\n- AWS SDK BOM from 2.46.17 to 2.46.19 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.46.19Fa\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "62964f0cdba91c5b9d84c51d0317e3d1f1b92177",
      "tree": "1de05b15e5d914265a33d0adcc834e8c4ea5f04f",
      "parents": [
        "13feda4cc37d0e85cef84c0dc29f2b5eadf8337b"
      ],
      "author": {
        "name": "Kevin Doran",
        "email": "kdoran@apache.org",
        "time": "Wed Jul 01 09:22:53 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 09:22:53 2026 -0400"
      },
      "message": "NIFI-16060 Tolerate connector configuration load failures on read (#11380)\n\n* NIFI-16060 Tolerate connector configuration load failures on read\n\nWhen a connector\u0027s stored configuration cannot be loaded or parsed (e.g. a\ncorrupt config left behind by a failed commit), the ConnectorConfigurationProvider\nthrows ConnectorConfigurationProviderException. On the SYNC_WITH_PROVIDER read\npath this exception previously propagated uncaught and surfaced as an HTTP 500\nfrom the connector REST endpoints. Because the delete flow reads the connector\n(for its revision, and to snapshot it before deletion), a corrupt connector\nbecame impossible to read or delete.\n\nMake the two read retrieval methods (getConnector and getConnectors with\nSYNC_WITH_PROVIDER) tolerate a configuration-load failure: log a warning, mark\nthe connector invalid so the failure remains visible to clients via the DTO\u0027s\nvalidation status, and return the in-memory node instead of propagating. The\nconnector therefore stays readable and deletable.\n\nWrite paths (addConnector, applyUpdate) call syncFromProvider directly and\ncontinue to propagate the exception, so create/apply-config still fail on a bad\nconfiguration rather than proceeding silently.\n\n* NIFI-16060 Do not mark connector invalid on read-time config load failure\n\nA read-time configuration-load failure may be transient (e.g. a provider/network\nblip), not a corrupt configuration. markInvalid sets a sticky INVALID validation\nstate that is only cleared on a config/update lifecycle event, not by a later\nsuccessful read, so marking invalid on a tolerated read would leave a healthy\nconnector permanently invalid after the underlying issue resolves.\n\nDrop the markInvalid call from the tolerant read path: log the failure and return\nthe connector with its existing state untouched, so it recovers on the next\nsuccessful read. Update the tests to assert the connector is never marked invalid.\n\n* NIFI-16060 Log connector config load failure on read at error level\n\nA configuration that cannot be loaded during a read is an operational problem\nworth surfacing prominently (the connector\u0027s working configuration is stale or\nunavailable), so log it at ERROR rather than WARN."
    },
    {
      "commit": "13feda4cc37d0e85cef84c0dc29f2b5eadf8337b",
      "tree": "84242585c6a5706258cc5847b246a4caa5d72c39",
      "parents": [
        "dd10e854d63809c3a5835f51a68dd7a840160bfe"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 30 22:06:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 15:06:02 2026 -0500"
      },
      "message": "NIFI-16057 Ignored dependabot branches for GitHub Workflows (#11376)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "dd10e854d63809c3a5835f51a68dd7a840160bfe",
      "tree": "19d184eab5a4b480fd50f3cf1efe9fd6a7914a23",
      "parents": [
        "d512716ed9e2b0ac766259bcf84498fa777a675e"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Tue Jun 30 15:16:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 08:16:17 2026 -0500"
      },
      "message": "NIFI-16054 Bump Apache Lucene to 10.5.0, Logback to 1.5.37, and others (#11374)\n\n- JSON Schema Validator from 2.0.1 to 2.0.3 - https://github.com/networknt/json-schema-validator/releases/tag/2.0.3\n- SNMP4J from 3.12.1 to 3.12.2 - https://www.snmp4j.org/CHANGES.txt\n- SNMP4J Agent from 3.9.0 to 3.9.1 - https://snmp4j.org/agent/CHANGES.txt\n- Data Faker from 2.6.0 to 2.7.0 - https://github.com/datafaker-net/datafaker/releases/tag/2.7.0\n- Apache Lucene from 10.4.0 to 10.5.0 - https://github.com/apache/lucene/releases/tag/releases%2Flucene%2F10.5.0\n- Logback from 1.5.35 to 1.5.37 - https://github.com/qos-ch/logback/releases/tag/v_1.5.37\n- Google Drive API from v3-rev20260428-2.0.0 to v3-rev20260624-2.0.0 - https://github.com/googleapis/google-api-java-client-services/blob/main/clients/google-api-services-drive/v3/README.md\n- Dropbox Java SDK from 7.0.0 to 8.0.0 - https://github.com/dropbox/dropbox-sdk-java/releases/tag/v8.0.0\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "d512716ed9e2b0ac766259bcf84498fa777a675e",
      "tree": "a0264ce74928a7a612792d847fa629fd1a6f71b5",
      "parents": [
        "15fb2057be84cb05218e27d988022db947f3fea1"
      ],
      "author": {
        "name": "Mark Payne",
        "email": "markap14@hotmail.com",
        "time": "Tue Jun 30 02:57:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 08:57:33 2026 +0200"
      },
      "message": "NIFI-16055: Avoid starting processors and controller services in Troubleshooting Connectors when autoResumeState\u003dfalse (#11375)"
    },
    {
      "commit": "15fb2057be84cb05218e27d988022db947f3fea1",
      "tree": "b8e5d9b9134d249421bb05baaf0f21d5c89a1254",
      "parents": [
        "f831020f91b0cd0fb933ed8f89654df212a7f5ce"
      ],
      "author": {
        "name": "Rob Fellows",
        "email": "rob.fellows@gmail.com",
        "time": "Mon Jun 29 22:00:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 22:00:31 2026 -0400"
      },
      "message": "NIFI-16047 - Queue listing: Ensure refresh spinner stops spinning when user cancels the load action (#11368)"
    },
    {
      "commit": "f831020f91b0cd0fb933ed8f89654df212a7f5ce",
      "tree": "7df3cc3fd90f18fed03e3371a412209e2a9b80bb",
      "parents": [
        "4a077487e3b00c26cfa42e219b6c99053ad1217a"
      ],
      "author": {
        "name": "boguszj",
        "email": "47815003+boguszj@users.noreply.github.com",
        "time": "Mon Jun 29 18:45:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 18:45:02 2026 +0200"
      },
      "message": "NIFI-16051 Propagate logging attributes down the process group tree (#11372)"
    },
    {
      "commit": "4a077487e3b00c26cfa42e219b6c99053ad1217a",
      "tree": "4dd8faa5f016b3a2c9aaab7888cdf6135ca5db13",
      "parents": [
        "540cb0b4527ad0a5e8d8b3e3367f15069c46e47a"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Sat Jun 27 12:13:11 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 18:13:11 2026 +0200"
      },
      "message": "NIFI-16052 Made prexisting pattern variables final (#11373)"
    },
    {
      "commit": "540cb0b4527ad0a5e8d8b3e3367f15069c46e47a",
      "tree": "15830af6d1fa2789564c1ca6f5e476023d771856",
      "parents": [
        "f8e92df615aba161b46fe6ed088d0f5ee16dcc79"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Fri Jun 26 06:25:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 12:25:29 2026 +0200"
      },
      "message": "NIFI-16041 Applied pattern variable where possible (#11366)"
    },
    {
      "commit": "f8e92df615aba161b46fe6ed088d0f5ee16dcc79",
      "tree": "089e33c7d1d12167ebb966196acdccdece1e5a50",
      "parents": [
        "af81f18baabdeb987eafd344648a15d9ba60c936"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Fri Jun 26 04:52:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 10:52:15 2026 +0200"
      },
      "message": "NIFI-16050 Removed duplicated code in org.apache.nifi.web.api.dto.DtoFactory (#11371)"
    },
    {
      "commit": "af81f18baabdeb987eafd344648a15d9ba60c936",
      "tree": "7166652750f8dc5252da9fa3b0a3f6879d4bdfb2",
      "parents": [
        "7418e2eba6d3030bef7d80c982156c6a0d5eebe3"
      ],
      "author": {
        "name": "David Handermann",
        "email": "exceptionfactory@apache.org",
        "time": "Thu Jun 25 09:40:45 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 16:40:45 2026 +0200"
      },
      "message": "NIFI-15911 Add Web Client Service for Snowflake Ingest Service (#11369)"
    },
    {
      "commit": "7418e2eba6d3030bef7d80c982156c6a0d5eebe3",
      "tree": "1e2ff184bd6f853cf05460290733e860f9812c68",
      "parents": [
        "c9a1b51835888f0e6ca81d6f513dd235bffa48df"
      ],
      "author": {
        "name": "tpalfy",
        "email": "53442425+tpalfy@users.noreply.github.com",
        "time": "Wed Jun 24 20:07:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 20:07:39 2026 +0200"
      },
      "message": "NIFI-16042 Make rule violation \"Go to component\" link to work for more component types. (#11365)\n\nSigned-off-by: Peter Turcsanyi \u003cturcsanyi@apache.org\u003e"
    },
    {
      "commit": "c9a1b51835888f0e6ca81d6f513dd235bffa48df",
      "tree": "fa4ed5afc7da1eba1b3c44eb6713b8a5d3a34fd6",
      "parents": [
        "eae30cdcaa427c2178e2794c9cb83564e0b9a2d5"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Wed Jun 24 19:43:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 12:43:17 2026 -0500"
      },
      "message": "NIFI-16044 Bump Kafka to 4.3.1, Logback to 1.5.35, and others (#11367)\n\n- AWS Kinesis Client from 3.4.3 to 3.5.0 - https://github.com/awslabs/amazon-kinesis-client/releases/tag/v3.5.0\n- AWS SDK BOM from 2.46.15 to 2.46.17 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.46.17\n- Wire from 6.4.0 to 6.4.1 - https://github.com/square/wire/releases/tag/6.4.1\n- SNMP4J from 3.11.0 to 3.12.1 - https://www.snmp4j.org/CHANGES.txt\n- SNMP4J Agent from 3.8.3 to 3.9.0 - https://snmp4j.org/agent/CHANGES.txt\n- gRPC from 1.82.0 to 1.82.1 - https://github.com/grpc/grpc/releases/tag/v1.81.1\n- Kafka from 4.3.0 to 4.3.1 - https://github.com/apache/kafka/releases/tag/4.3.1\n- Logback from 1.5.34 to 1.5.35 - https://github.com/qos-ch/logback/releases/tag/v_1.5.35\n- Swagger from 2.2.51 to 2.2.52 - https://github.com/swagger-api/swagger-core/releases/tag/v2.2.52\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "eae30cdcaa427c2178e2794c9cb83564e0b9a2d5",
      "tree": "29868592610dca76d87b5161b071cfded44fa965",
      "parents": [
        "b0fcb8b9d5e19340e31f40c6ad96338dd76b7b31"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Wed Jun 24 03:43:59 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:43:59 2026 +0200"
      },
      "message": "NIFI-16037 Corrected legitimate spelling mistakes (#11364)"
    },
    {
      "commit": "b0fcb8b9d5e19340e31f40c6ad96338dd76b7b31",
      "tree": "c94e154c4c0577d6c844bcec45a1ed2ace3cfa54",
      "parents": [
        "d3d24018b429c1e6403d681cb3e53e5898bf2f69"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 11:48:26 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:48:26 2026 -0500"
      },
      "message": "NIFI-16039 Bump dompurify from 3.4.0 to 3.4.11 for frontend (#11359)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "d3d24018b429c1e6403d681cb3e53e5898bf2f69",
      "tree": "34674bdd7a49091a9a324e799b6411ba3b1d56a8",
      "parents": [
        "57739b5d657b17ea5396ccd3b3d539727b2fa333"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jun 22 11:39:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:39:58 2026 +0200"
      },
      "message": "NIFI-16032 Corrected misordered assertEqual arguments. (#11361)"
    },
    {
      "commit": "57739b5d657b17ea5396ccd3b3d539727b2fa333",
      "tree": "ecc54bca94c43fe4697b1c8a223f8afa508a983c",
      "parents": [
        "ff143fc63e7bcab293ea47236e7d85535a7f50b8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 09:16:44 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 09:16:44 2026 -0500"
      },
      "message": "NIFI-16036 Bump shell-quote from 1.8.3 to 1.8.4 for frontend (#11324)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "ff143fc63e7bcab293ea47236e7d85535a7f50b8",
      "tree": "ecc54bca94c43fe4697b1c8a223f8afa508a983c",
      "parents": [
        "b994c88324f3ce47ceb1e277e815f349f8b21706"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 08:56:59 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 08:56:59 2026 -0500"
      },
      "message": "NIFI-16035 Upgraded hono from 4.12.18 to 4.12.25 for frontend (#11319)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "b994c88324f3ce47ceb1e277e815f349f8b21706",
      "tree": "6c0659b5271b6bd491ccc1f934022ee47f121058",
      "parents": [
        "fd3b843a7896d2354175573677e47a34a89cf3fe"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jun 22 15:44:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 08:44:58 2026 -0500"
      },
      "message": "NIFI-16034 Improved flaky system tests related to Provenance Event Count expectations (#11362)\n\n- Improved flaky system tests ClassloaderIsolationWithControllerServicePropertyIT / ClusteredReplayProvenanceIT \n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "fd3b843a7896d2354175573677e47a34a89cf3fe",
      "tree": "599a4a58f9ed389706acbc95d4acd38ccf08698f",
      "parents": [
        "4776001c55e1657c0e81935711cff9f05f636eb1"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Mon Jun 22 15:35:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 08:35:33 2026 -0500"
      },
      "message": "NIFI-16030 Bump Snowflake JDBC from 4.3.0 to 4.3.1, HikariCP from 7.0.2 to 7.1.0, and others (#11357)\n\n- RabbitMQ client from 5.31.0 to 5.32.0 - https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.32.0\n- Greenmail from 2.1.8 to 2.1.9 - https://github.com/greenmail-mail-test/greenmail/releases/tag/release-2.1.9\n- Neo4J driver from 6.1.0 to 6.2.0 - https://github.com/neo4j/neo4j-java-driver/releases/tag/6.2.0\n- Snowflake JDBC from 4.3.0 to 4.3.1 - https://docs.snowflake.com/en/release-notes/clients-drivers/jdbc-2026#version-431-jun-16-2026\n- DataFaker from 2.5.4 to 2.6.0 - https://github.com/datafaker-net/datafaker/releases/tag/2.6.0\n- HikariCP from 7.0.2 to 7.1.0 - https://github.com/brettwooldridge/HikariCP/releases/tag/HikariCP-7.1.0\n- Jettison from 1.5.5 to 1.5.6 - https://github.com/jettison-json/jettison/releases/tag/jettison-1.5.6\n- FlywayDB from 12.8.1 to 12.9.0 - https://github.com/flyway/flyway/releases/tag/flyway-12.9.0\n- JLine from 4.1.3 to 4.2.1 - https://github.com/jline/jline3/releases/tag/4.2.1\n- AWS SDK BOM from 2.46.10 to 2.46.14 - https://github.com/aws/aws-sdk-java-v2/releases/tag/2.46.14\n- Checkstyle from 13.5.0 to 13.6.0 - https://github.com/checkstyle/checkstyle/releases/tag/checkstyle-13.6.0\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "4776001c55e1657c0e81935711cff9f05f636eb1",
      "tree": "4e58aac9a5df2f0b6b0181daa0f98974749d397a",
      "parents": [
        "c22ffdbef5439f026b0c2f648375bfeb08d73553"
      ],
      "author": {
        "name": "Alaksiej Ščarbaty",
        "email": "65507498+awelless@users.noreply.github.com",
        "time": "Mon Jun 22 11:13:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:13:37 2026 +0200"
      },
      "message": "NIFI-16026 - Add Hex header encoding option to ConsumeKafka (#11356)\n\nAdd a \u0027Header Format\u0027 property (String/Hex) to ConsumeKafka so binary\nKafka Record Header values can be written as a lowercase hexadecimal\nstring instead of being corrupted by charset decoding. The existing\n\u0027Header Encoding\u0027 property keeps its meaning (the character set used for\nthe String format) and is shown only when Header Format is String, so\nexisting flows are unchanged and no property migration is needed.\n\nHeader decoding is resolved once into a HeaderValueConverter in\nonScheduled and applied uniformly to FlowFile attributes and the\nwrapper/inject-metadata record header fields. Internal batch headers\n(kafka.max.offset, kafka.count) decode as fixed UTF-8, matching how they\nare written.\n\nAlso add unit tests for KafkaUtils.toKeyString and correct the KeyEncoding\nHEX description, which claimed uppercase output although HexFormat.of()\nemits lowercase."
    },
    {
      "commit": "c22ffdbef5439f026b0c2f648375bfeb08d73553",
      "tree": "0db26911838846b2ab1394702da9298c7408ed3d",
      "parents": [
        "fe04cb18438efbbb9632f0ea3b9cd04b3f2ca3d2"
      ],
      "author": {
        "name": "Hiroyuki Yagihashi",
        "email": "email@yagipy.me",
        "time": "Mon Jun 22 18:06:44 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:06:44 2026 +0200"
      },
      "message": "NIFI-15984 Use HOSTNAME_PORT_VALIDATOR for Token Request Endpoint in AwsRdsIamDatabasePasswordProvider (#11302)"
    },
    {
      "commit": "fe04cb18438efbbb9632f0ea3b9cd04b3f2ca3d2",
      "tree": "7a5fceb1b76bb7ce9935019438306ba95770303d",
      "parents": [
        "cb90809e29d80b73bc1cc3903610fbdf4954349f"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Mon Jun 22 05:00:20 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:00:20 2026 +0200"
      },
      "message": "NIFI-15975 Fixed single line comment bug, multiple let statements bug and improved the invalid read JSLT transform message. (#11338)"
    },
    {
      "commit": "cb90809e29d80b73bc1cc3903610fbdf4954349f",
      "tree": "1624ee30dc40ea7681151733aafc3dd5eb3915af",
      "parents": [
        "af8028a3f06ca26dcaaeeaa36afb797edd2b58dc"
      ],
      "author": {
        "name": "dan-s1",
        "email": "dstieg1@gmail.com",
        "time": "Sun Jun 21 08:09:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 14:09:31 2026 +0200"
      },
      "message": "NIFI-16031 Replaced org.springframework.data.redis.connection.RedisStringCommands deprecated set method with suggested set method (#11360)"
    },
    {
      "commit": "af8028a3f06ca26dcaaeeaa36afb797edd2b58dc",
      "tree": "52c4e7808459d4c27378f4abe4ceba64b9ea1249",
      "parents": [
        "a9b20a6b9dbaaca2e17689e22900b5dc0f2dff9c"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat Jun 20 20:18:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 19:18:13 2026 -0500"
      },
      "message": "NIFI-16033 Add AGENTS.md and SECURITY.md security-model discoverability (#11353)\n\nSigned-off-by: David Handermann \u003cexceptionfactory@apache.org\u003e"
    },
    {
      "commit": "a9b20a6b9dbaaca2e17689e22900b5dc0f2dff9c",
      "tree": "de28f9b7de6e1ab33a6a69c4e357db38a2d7393e",
      "parents": [
        "32ccb0cc1e95643787e8f5941382b5c53c0d9215"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jun 18 20:28:48 2026 -0700"
      },
      "committer": {
        "name": "pvillard31",
        "email": "pvillard@apache.org",
        "time": "Thu Jun 18 20:28:48 2026 -0700"
      },
      "message": "NIFI-16019 Updated version to 2.11.0-SNAPSHOT\n"
    },
    {
      "commit": "32ccb0cc1e95643787e8f5941382b5c53c0d9215",
      "tree": "e77c6ecdf2a4e71f4354d42e569938630346567d",
      "parents": [
        "e6013c8cfe9c5912ca198f296f2d5a2cb1a449dd",
        "2baff691128fa782983fb79bb1087adff027a4c1"
      ],
      "author": {
        "name": "Pierre Villard",
        "email": "pierre.villard.fr@gmail.com",
        "time": "Thu Jun 18 20:27:45 2026 -0700"
      },
      "committer": {
        "name": "pvillard31",
        "email": "pvillard@apache.org",
        "time": "Thu Jun 18 20:27:45 2026 -0700"
      },
      "message": "NIFI-16019 Merged NIFI-16019-RC2\n"
    }
  ],
  "next": "e6013c8cfe9c5912ca198f296f2d5a2cb1a449dd"
}
