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.")

Reply via email to