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();
- }
}