This is an automated email from the ASF dual-hosted git repository.

dominikriemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new 424265b293 fix: Use StreamPipes client for fetching permissions (#4422)
424265b293 is described below

commit 424265b293c118c73e164f6fac3714fd39a2731c
Author: Dominik Riemer <[email protected]>
AuthorDate: Mon May 4 09:09:35 2026 +0200

    fix: Use StreamPipes client for fetching permissions (#4422)
---
 .../connect/adapter/AdapterPipelineGenerator.java  | 31 +++++++++++++++++++++-
 .../connect/adapter/ScriptContextResolver.java     | 28 -------------------
 2 files changed, 30 insertions(+), 29 deletions(-)

diff --git 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/AdapterPipelineGenerator.java
 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/AdapterPipelineGenerator.java
index 779b6db526..1243908242 100644
--- 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/AdapterPipelineGenerator.java
+++ 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/AdapterPipelineGenerator.java
@@ -19,15 +19,18 @@
 package org.apache.streampipes.extensions.management.connect.adapter;
 
 import org.apache.streampipes.connect.shared.AdapterPipelineGeneratorBase;
+import 
org.apache.streampipes.extensions.management.client.StreamPipesClientResolver;
 import 
org.apache.streampipes.extensions.management.connect.adapter.model.pipeline.AdapterPipeline;
 import 
org.apache.streampipes.extensions.management.connect.adapter.preprocessing.elements.SendToBrokerAdapterSink;
+import org.apache.streampipes.model.client.user.Permission;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
 
 public class AdapterPipelineGenerator extends AdapterPipelineGeneratorBase {
 
   public AdapterPipeline generatePipeline(AdapterDescription 
adapterDescription) {
     var pipelineElements = makeAdapterPipelineElements(true, 
adapterDescription);
-    var scriptContext = new 
ScriptContextResolver().resolve(adapterDescription);
+    var userId = getUserId(adapterDescription);
+    var scriptContext = new ScriptContextResolver().resolve(userId, 
adapterDescription.getTransformationConfig().getLanguage());
 
     if (hasValidGrounding(adapterDescription)) {
       return new AdapterPipeline(
@@ -55,4 +58,30 @@ public class AdapterPipelineGenerator extends 
AdapterPipelineGeneratorBase {
         && adapterDescription.getEventGrounding().getTransportProtocol() != 
null
         && 
adapterDescription.getEventGrounding().getTransportProtocol().getBrokerHostname()
 != null;
   }
+
+  private String getUserId(AdapterDescription adapterDescription) {
+    var client = new 
StreamPipesClientResolver().makeStreamPipesClientInstance();
+    if (!adapterDescription.getTransformationConfig().isScriptActive()) {
+      return null;
+    }
+
+    if (adapterDescription.getCorrespondingDataStreamElementId() == null
+        || adapterDescription.getCorrespondingDataStreamElementId().isBlank()) 
{
+      return null;
+    }
+
+    var permissions = client
+        .customRequest()
+        .getList(
+            String.format("/api/v2/admin/permissions/objects/%s",
+                adapterDescription.getCorrespondingDataStreamElementId()),
+            Permission.class
+        );
+
+    if (permissions.isEmpty()) {
+      return null;
+    }
+
+    return permissions.get(0).getOwnerSid();
+  }
 }
diff --git 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/ScriptContextResolver.java
 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/ScriptContextResolver.java
index 055cdd8d1c..a61f311a96 100644
--- 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/ScriptContextResolver.java
+++ 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/adapter/ScriptContextResolver.java
@@ -23,17 +23,9 @@ import 
org.apache.streampipes.connect.transformer.api.Context;
 import org.apache.streampipes.connect.transformer.groovy.GroovyScriptContext;
 import org.apache.streampipes.connect.transformer.js.GraalJsScriptContext;
 import 
org.apache.streampipes.extensions.management.client.StreamPipesClientResolver;
-import org.apache.streampipes.model.connect.adapter.AdapterDescription;
-import org.apache.streampipes.resource.management.PermissionResourceManager;
 
 public class ScriptContextResolver {
 
-  public Context resolve(AdapterDescription adapterDescription) {
-    var userId = getUserId(adapterDescription);
-    var language = adapterDescription.getTransformationConfig().getLanguage();
-    return resolve(userId, language);
-  }
-
   public Context resolve(String userId, String language) {
     if (userId == null || userId.isBlank()) {
       return null;
@@ -54,24 +46,4 @@ public class ScriptContextResolver {
       default -> throw new UnsupportedOperationException("Unsupported 
language: " + language);
     }
   }
-
-  private String getUserId(AdapterDescription adapterDescription) {
-    if (!adapterDescription.getTransformationConfig().isScriptActive()) {
-      return null;
-    }
-
-    if (adapterDescription.getCorrespondingDataStreamElementId() == null
-            || 
adapterDescription.getCorrespondingDataStreamElementId().isBlank()) {
-      return null;
-    }
-
-    var permissions = new PermissionResourceManager()
-            
.findForObjectId(adapterDescription.getCorrespondingDataStreamElementId());
-
-    if (permissions.isEmpty()) {
-      return null;
-    }
-
-    return permissions.get(0).getOwnerSid();
-  }
 }

Reply via email to