This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new ab050e0c3c NIFI-15473 Added Execute Code Required Permission
annotation to Jolt Processors (#10777)
ab050e0c3c is described below
commit ab050e0c3c4f725a32c77d23830bceaaaf271869
Author: Matt Burgess <[email protected]>
AuthorDate: Tue Jan 20 21:16:32 2026 -0500
NIFI-15473 Added Execute Code Required Permission annotation to Jolt
Processors (#10777)
Signed-off-by: David Handermann <[email protected]>
---
.../org/apache/nifi/processors/jolt/JoltTransformJSON.java | 10 ++++++++++
.../org/apache/nifi/processors/jolt/JoltTransformRecord.java | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformJSON.java
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformJSON.java
index 9b98420385..a5bfe5f338 100644
---
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformJSON.java
+++
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformJSON.java
@@ -23,6 +23,8 @@ import io.joltcommunity.jolt.JsonUtil;
import io.joltcommunity.jolt.JsonUtils;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.RequiresInstanceClassLoading;
+import org.apache.nifi.annotation.behavior.Restricted;
+import org.apache.nifi.annotation.behavior.Restriction;
import org.apache.nifi.annotation.behavior.SideEffectFree;
import org.apache.nifi.annotation.behavior.SupportsBatching;
import org.apache.nifi.annotation.behavior.WritesAttribute;
@@ -30,6 +32,7 @@ import
org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.annotation.lifecycle.OnScheduled;
import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.RequiredPermission;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
@@ -58,6 +61,13 @@ import java.util.stream.Stream;
@Tags({"json", "jolt", "transform", "chainr", "shift", "default", "remove",
"cardinality", "sort"})
@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
@WritesAttribute(attribute = "mime.type", description = "Always set to
application/json")
+@Restricted(
+ restrictions = {
+ @Restriction(
+ requiredPermission = RequiredPermission.EXECUTE_CODE,
+ explanation = "Enables configuration of custom code
for Jolt Transforms")
+ }
+)
@CapabilityDescription("Applies a list of Jolt specifications to either the
FlowFile JSON content or a specified FlowFile JSON attribute. "
+ "If the JSON transform fails, the original FlowFile is routed to the
'failure' relationship.")
@RequiresInstanceClassLoading
diff --git
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
index 70ac8466f2..634b09313c 100644
---
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
+++
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
@@ -21,6 +21,8 @@ import io.joltcommunity.jolt.JoltTransform;
import io.joltcommunity.jolt.Transform;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.RequiresInstanceClassLoading;
+import org.apache.nifi.annotation.behavior.Restricted;
+import org.apache.nifi.annotation.behavior.Restriction;
import org.apache.nifi.annotation.behavior.SideEffectFree;
import org.apache.nifi.annotation.behavior.SupportsBatching;
import org.apache.nifi.annotation.behavior.WritesAttribute;
@@ -28,6 +30,7 @@ import org.apache.nifi.annotation.behavior.WritesAttributes;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.RequiredPermission;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.logging.ComponentLog;
@@ -70,6 +73,13 @@ import java.util.stream.Stream;
@WritesAttribute(attribute = "record.count", description = "The number
of records in an outgoing FlowFile"),
@WritesAttribute(attribute = "mime.type", description = "The MIME Type
that the configured Record Writer indicates is appropriate"),
})
+@Restricted(
+ restrictions = {
+ @Restriction(
+ requiredPermission = RequiredPermission.EXECUTE_CODE,
+ explanation = "Enables configuration of custom code
for Jolt Transforms")
+ }
+)
@CapabilityDescription("Applies a JOLT specification to each record in the
FlowFile payload. A new FlowFile is created "
+ "with transformed content and is routed to the 'success'
relationship. If the transform "
+ "fails, the original FlowFile is routed to the 'failure'
relationship.")