This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch
3285-extend-allowed-file-extensions-for-upload-with-environment-variable
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to
refs/heads/3285-extend-allowed-file-extensions-for-upload-with-environment-variable
by this push:
new 6586df6f82 feat(#3285): Introduce environment variable to define
allowed extensions for file upload
6586df6f82 is described below
commit 6586df6f82a6b2c289aafdaaf49daa27812315d4
Author: Dominik Riemer <[email protected]>
AuthorDate: Fri Oct 4 13:11:48 2024 +0200
feat(#3285): Introduce environment variable to define allowed extensions
for file upload
---
.../apache/streampipes/commons/constants/Envs.java | 3 ++-
.../commons/environment/DefaultEnvironment.java | 5 +++++
.../commons/environment/Environment.java | 2 ++
.../apache/streampipes/sdk/helpers/Filetypes.java | 24 +++++++++++++++++++---
4 files changed, 30 insertions(+), 4 deletions(-)
diff --git
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/constants/Envs.java
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/constants/Envs.java
index 00765b76b5..7ad56fe402 100644
---
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/constants/Envs.java
+++
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/constants/Envs.java
@@ -107,7 +107,8 @@ public enum Envs {
SP_PULSAR_URL("SP_PULSAR_URL", "pulsar://localhost:6650"),
// expects a comma separated string of service names
- SP_SERVICE_TAGS("SP_SERVICE_TAGS", "");
+ SP_SERVICE_TAGS("SP_SERVICE_TAGS", ""),
+ SP_ALLOWED_UPLOAD_FILETYPES("SP_ALLOWED_UPLOAD_FILETYPES", "", "");
private final String envVariableName;
private String defaultValue;
diff --git
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/DefaultEnvironment.java
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/DefaultEnvironment.java
index 5b6d5428d6..36ed402360 100644
---
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/DefaultEnvironment.java
+++
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/DefaultEnvironment.java
@@ -323,4 +323,9 @@ public class DefaultEnvironment implements Environment {
return new StringEnvironmentVariable(Envs.SP_SERVICE_TAGS);
}
+ @Override
+ public StringEnvironmentVariable getAllowedUploadFiletypes() {
+ return new StringEnvironmentVariable(Envs.SP_ALLOWED_UPLOAD_FILETYPES);
+ }
+
}
diff --git
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/Environment.java
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/Environment.java
index 1a72910522..d1d6efab67 100644
---
a/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/Environment.java
+++
b/streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/Environment.java
@@ -156,4 +156,6 @@ public interface Environment {
StringEnvironmentVariable getCustomServiceTags();
+ StringEnvironmentVariable getAllowedUploadFiletypes();
+
}
diff --git
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/Filetypes.java
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/Filetypes.java
index b8895a9b1f..167518917a 100644
---
a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/Filetypes.java
+++
b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/Filetypes.java
@@ -17,8 +17,13 @@
*/
package org.apache.streampipes.sdk.helpers;
+import org.apache.streampipes.commons.environment.Environments;
+
import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
public enum Filetypes {
@@ -42,9 +47,22 @@ public enum Filetypes {
return fileExtensions;
}
- public static List<String> getAllFileExtensions() {
- return Stream.of(Filetypes.values())
+ public static Set<String> getAllFileExtensions() {
+ var filetypes = Stream.of(Filetypes.values())
.flatMap(filetype -> filetype.getFileExtensions().stream())
- .toList();
+ .collect(Collectors.toSet());
+ filetypes.addAll(getSupportedFiletypesFromEnv());
+ return filetypes;
+ }
+
+ private static Set<String> getSupportedFiletypesFromEnv() {
+ return Optional.ofNullable(Environments.getEnvironment()
+ .getAllowedUploadFiletypes()
+ .getValueOrDefault())
+ .stream()
+ .flatMap(allowedFiletypes ->
Arrays.stream(allowedFiletypes.split(",")))
+ .map(String::trim)
+ .filter(s -> !s.isEmpty())
+ .collect(Collectors.toSet());
}
}