You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2024/04/03 07:52:00 UTC

(streampipes) branch 2651-incorrect-redirect-to-dashboard-instead-of-app-module updated (34a55cd1e4 -> 30c2f83f53)

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

zehnder pushed a change to branch 2651-incorrect-redirect-to-dashboard-instead-of-app-module
in repository https://gitbox.apache.org/repos/asf/streampipes.git


    from 34a55cd1e4 fix(#2651): Fix app module and deactivate it for default installation
     add 3c8649fc93 fix: Show display options for data processors in pipeline editor
     add 501b8de0f3 chore(deps): bump org.apache.inlong:tubemq-client from 1.10.0 to 1.11.0 (#2655)
     add aaa32a6da8 chore(deps-dev): bump @typescript-eslint/eslint-plugin in /ui (#2656)
     add 0c9b86bd16 fix(#2650): Better highlight mandatory settings for self-registration (#2652)
     add 21fde95a24 feat(#232): Support optional free text properties (#2653)
     add 083caec94b feat(#2567): Add tooltips to dashboard icon buttons (#2658)
     new 842f3eca02 Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module
     add cc76ea61e7 refactor: remove unused code in streampipes user model (#2663)
     add 4110a3a43c refactor: remove dead class `RunningVisualization` (#2666)
     add 9e201a2f2a refactor: Improve extension installation process (#2645)
     add 4998dca35d refactor: remove unused ontology package (#2670)
     add 78a5a86e4b refactor: remove unused deployment package (#2669)
     add 6c2d23051f refactor: remove unused monitoring package (#2668)
     add 92aabcd31b refactor: remove dead data lake model classes (#2671)
     add d8beb9c046 fix: Inject missing Angular service (#2676)
     add 170da3d32e feat: add versionsApi and data lake measure deletion API in Go client (#2617)
     add 2c2ddc10ab chore(deps-dev): bump numpydoc in /streampipes-client-python (#2674)
     add bea3bf934c refactor: remove unused class `CanvasAttributes` (#2667)
     add b3427e7bab monthly update of vulnerability report (#2678)
     add 3f1a06ec6e feat(#2632): Auto-generate PLC4X adapters (#2637)
     add 744bfacbef build(#2633): Enable auto fix for lint and prettier in git pre-commit hook (#2634)
     add a88c20bc7c refactor: user registration in backend (#2664)
     add 68c8c1ec9f add pr-label (#2685)
     add c9f407809f docs: add python tutorial about ML with ONNX (#2687)
     new 0096bed6b3 Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module
     new 30c2f83f53 fix(#2651): Refactor and deprecate AssetDashboardResource

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/pr-labeler-config.yml                      |   7 +
 VULNERABILITY.md                                   |  10 +-
 pom.xml                                            |  20 +-
 .../streampipes/data_lake_measure_api.go           |  46 +-
 streampipes-client-go/streampipes/endpoint.go      |   1 +
 .../internal/serializer/deserializer.go            |  22 +-
 .../internal/util/streampipes_api_path_test.go     |   1 +
 .../streampipes_version/versions.go}               |  37 +-
 .../streampipes/streampipes_client.go              |   5 +
 .../streampipes/streampipes_version_api.go         |  70 +++
 .../docs/img/tutorial-prediction-data-stream.png   | Bin 0 -> 221844 bytes
 streampipes-client-python/docs/index.md            |   9 -
 ...ine-learning-on-a-streampipes-data-stream.ipynb |  25 +-
 ...roperable-machine-learning-in-streampipes.ipynb | 509 +++++++++++++++++++++
 streampipes-client-python/mkdocs.yml               |   3 +-
 streampipes-client-python/poetry.lock              |  13 +-
 streampipes-client-python/pyproject.toml           |   2 +-
 .../extensions/api/assets/AssetResolvable.java     |   6 +-
 .../extensions/api/assets/AssetResolver.java       |  13 +-
 .../api/assets/DefaultAssetResolver.java           |  73 +++
 .../api/connect/IAdapterConfiguration.java         |   3 +-
 .../management/assets/AssetZipGenerator.java       |  35 +-
 .../connect/ConnectWorkerDescriptionProvider.java  |  37 +-
 .../management/locales/LabelGenerator.java         | 180 +++-----
 .../ConnectWorkerDescriptionProviderTest.java      |  13 -
 .../management/locales/LabelGeneratorTest.java     |   9 +-
 .../streampipes-connectors-plc/pom.xml             |  29 +-
 .../connectors/plc/PlcConnectorsModuleExport.java  |   8 +-
 .../plc/adapter/GenericAdapterGenerator.java       |  68 +++
 .../plc/adapter/generic/GenericPlc4xAdapter.java   | 155 +++++++
 .../generic/assets/DocumentationGenerator.java     | 107 +++++
 .../generic/assets/PlcAdapterAssetResolver.java    |  60 +++
 .../config/AdapterConfigurationProvider.java       |  91 ++++
 .../generic/config/EventSchemaProvider.java        |  59 +++
 .../generic/config/MetadataOptionGenerator.java    | 116 +++++
 .../connection/ContinuousPlcRequestReader.java     |  97 ++++
 .../connection/OneTimePlcRequestReader.java        |  54 +++
 .../generic/connection/PlcEventGenerator.java      |  66 +++
 .../generic/connection/PlcRequestProvider.java     |  26 +-
 .../generic/model/Plc4xConnectionExtractor.java    | 148 ++++++
 .../generic/model/Plc4xConnectionSettings.java     |  11 +-
 .../plc/adapter/generic/model/Plc4xLabels.java     |  42 ++
 .../plc/adapter/modbus/Plc4xModbusAdapter.java     |  14 +-
 .../connectors/plc/adapter/s7/Plc4xS7Adapter.java  | 105 +----
 .../documentation.md                               |  88 ++++
 .../icon.png                                       | Bin
 .../strings.en                                     |  43 ++
 .../streampipes-extensions-all-iiot/pom.xml        |  14 +
 .../streampipes-extensions-all-jvm/pom.xml         |  14 +
 .../streampipes-extensions-iiot-minimal/pom.xml    |   4 +
 .../siddhi/trend/TrendConfigurationVisitor.java    |   6 +
 .../model/client/RunningVisualization.java         | 107 -----
 .../client/assetdashboard/CanvasAttributes.java    | 199 --------
 .../client/deployment/DeploymentConfiguration.java | 130 ------
 .../model/client/deployment/ElementType.java       |  23 -
 .../model/client/deployment/OutputType.java        |  23 -
 .../model/client/deployment/RuntimeType.java       |  23 -
 .../client/endpoint/ExtensionsServiceEndpoint.java |  61 ---
 .../model/client/monitoring/JobReport.java         |  64 ---
 .../model/client/monitoring/TaskReport.java        |  57 ---
 .../monitoring/pipeline/AbstractBurrowInfo.java    |  49 --
 .../pipeline/BurrowConsumerGroupStatus.java        | 100 ----
 .../pipeline/BurrowConsumerGroupStatusInfo.java    |  39 --
 .../monitoring/pipeline/BurrowConsumerInfo.java    |  45 --
 .../streampipes/model/client/ontology/Concept.java |  51 ---
 .../streampipes/model/client/ontology/Context.java |  65 ---
 .../model/client/ontology/ElementHeader.java       |  77 ----
 .../model/client/ontology/ElementType.java         |  23 -
 .../model/client/ontology/EnumeratedRange.java     |  44 --
 .../model/client/ontology/EnumeratedValue.java     |  50 --
 .../model/client/ontology/Instance.java            |  49 --
 .../model/client/ontology/Namespace.java           |  50 --
 .../model/client/ontology/NodeType.java            |  23 -
 .../model/client/ontology/OntologyElement.java     |  66 ---
 .../model/client/ontology/OntologyNode.java        | 115 -----
 .../model/client/ontology/OntologyQuery.java       |  54 ---
 .../model/client/ontology/OntologyQueryItem.java   |  50 --
 .../client/ontology/OntologyQueryResponse.java     |  66 ---
 .../model/client/ontology/PrimitiveRange.java      |  52 ---
 .../model/client/ontology/Property.java            |  84 ----
 .../client/ontology/QuantitativeValueRange.java    |  67 ---
 .../streampipes/model/client/ontology/Range.java   |  60 ---
 .../model/client/ontology/RdfFormat.java           |  23 -
 .../model/client/ontology/Resource.java            |  61 ---
 .../model/client/ontology/Statement.java           |  53 ---
 .../streampipes/model/client/user/Element.java     |  50 --
 .../streampipes/model/client/user/Principal.java   |   6 -
 .../model/client/user/RegistrationData.java        |  68 ---
 .../streampipes/model/client/user/Token.java       |  49 --
 .../UserRegistrationData.java}                     |   7 +-
 .../org/apache/streampipes/model/SpDataStream.java |   5 +
 .../model/base/NamedStreamPipesEntity.java         |  24 +
 .../model/datalake/DataLakeConfiguration.java      |  79 ----
 .../model/datalake/DataLakeRetentionPolicy.java    |  77 ----
 .../model/datalake/LabelDefinition.java            |  46 --
 .../model/datalake/PersistedDataStream.java        |  71 ---
 .../model/extensions/ExtensionAssetType.java       |   7 +-
 .../model/extensions/ExtensionItemDescription.java |  38 +-
 .../ExtensionItemInstallationRequest.java          |  22 +-
 .../svcdiscovery/SpServiceRegistration.java        |  41 +-
 .../extensions/svcdiscovery/SpServiceTag.java      |   2 +-
 .../svcdiscovery/SpServiceTagPrefix.java           |  19 +-
 .../streampipes/model/schema/PropertyScope.java    |   2 +-
 .../staticproperty/RemoteOneOfStaticProperty.java  |   2 +-
 .../RuntimeResolvableGroupStaticProperty.java      |  51 +++
 .../model/staticproperty/StaticProperty.java       |  20 +-
 .../model/staticproperty/StaticPropertyGroup.java  |  13 +
 .../model/staticproperty/StaticPropertyType.java   |   1 +
 .../staticproperty/StaticPropertyVisitor.java      |   2 +
 .../org/apache/streampipes/model/util/Cloner.java  |   3 +
 .../model}/util/ServiceDefinitionUtil.java         |  36 +-
 .../extensions/IExtensionsResourceUrlProvider.java |  13 +-
 .../manager/endpoint/EndpointFetcher.java          |  40 --
 .../manager/endpoint/EndpointItemFetcher.java      |  70 ---
 .../manager/endpoint/EndpointItemParser.java       |  53 ---
 .../manager/endpoint/HttpJsonParser.java           |  54 ---
 .../extensions/AvailableExtensionsProvider.java    | 128 ++++++
 .../manager/extensions/ExtensionItemInstaller.java |  57 +++
 .../extensions/ExtensionsResourceUrlProvider.java  |  74 +++
 .../streampipes/manager/file/FileManager.java      |   5 +
 .../v2/pipeline/CheckCompletedVisitor.java         |   6 +
 .../v2/pipeline/UpdateStaticPropertiesVisitor.java |   6 +
 .../migration/AbstractMigrationManager.java        |   7 +-
 .../pipeline/ExtensionsServiceLogExecutor.java     |   3 +-
 .../streampipes/manager/operations/Operations.java |   7 -
 .../manager/setup/ExtensionsInstallationTask.java  |  34 +-
 .../manager/setup/InstallationConfiguration.java   |   3 +-
 .../setup/PipelineElementInstallationStep.java     |  66 +--
 .../template/PipelineElementTemplateVisitor.java   |   6 +
 .../streampipes/manager/file/TestFileManager.java  |  86 +++-
 .../resource/management/UserResourceManager.java   |  57 ++-
 .../resource/management/secret/SecretVisitor.java  |   6 +
 .../rest/core/base/impl/AbstractRestResource.java  |  16 -
 .../extensions/connect/AdapterAssetResource.java   |  36 +-
 .../connect/AdapterDescriptionResource.java        |  11 +-
 .../extensions/html/page/WelcomePageGenerator.java |  23 +-
 .../rest/impl/AssetDashboardResource.java          |  50 +-
 .../streampipes/rest/impl/Authentication.java      |  14 +-
 .../rest/impl/RestorePasswordResource.java         |   7 +-
 ...rt.java => ExtensionsInstallationResource.java} |  73 +--
 .../admin/ExtensionsServiceEndpointResource.java   | 154 +------
 .../apache/streampipes/sdk/StaticProperties.java   |   9 +
 ...AbstractConfigurablePipelineElementBuilder.java |   6 +
 .../sdk/builder/adapter/AdapterConfiguration.java  |   9 +
 .../adapter/AdapterConfigurationBuilder.java       |  17 +-
 .../org/apache/streampipes/sdk/utils/Assets.java   |  10 +-
 .../builder/adapter/AdapterConfigurationTest.java  |   2 +-
 .../api/model/SpServicePathPrefix.java             |   1 -
 .../api/model/SpServiceUrlProvider.java            |  40 +-
 .../svcdiscovery/SpServiceDiscoveryCore.java       |  23 +-
 .../service/extensions/ExtensionItemProvider.java  |  86 ++++
 .../extensions/ExtensionsModelSubmitter.java       |  54 +--
 .../service/extensions/ServiceTagProvider.java     |  58 ---
 .../StreamPipesExtensionsServiceBase.java          |  60 ++-
 .../security/TokenAuthenticationFilter.java        |   3 +-
 .../api/IExtensionsServiceEndpointStorage.java     |  32 --
 .../streampipes/storage/api/IUserStorage.java      |   2 +-
 .../storage/couchdb/impl/UserStorage.java          |   4 +-
 .../couchdb/serializer/RangeSerializer.java        |  62 ---
 ui/.lintstagedrc.json                              |   4 +-
 ui/package-lock.json                               | 278 +----------
 ui/package.json                                    |   2 +-
 ...ervice.ts => extension-installation.service.ts} |  30 +-
 .../src/lib/model/gen/streampipes-model.ts         | 149 ++++--
 .../platform-services/src/public-api.ts            |   2 +-
 ui/src/app/add/add.component.html                  |  14 +-
 ui/src/app/add/add.component.ts                    |  42 +-
 ui/src/app/add/add.module.ts                       |  10 +
 .../endpoint-item/endpoint-item.component.html     |   6 +-
 .../endpoint-item/endpoint-item.component.ts       |  75 +--
 .../endpoint-installation.component.html           |   8 +-
 .../endpoint-installation.component.ts             |  38 +-
 ui/src/app/add/filter/order-by.pipe.ts             |   7 +-
 .../pipeline-element-installation-status.pipe.ts   |   6 +-
 .../app/add/filter/pipeline-element-name.pipe.ts   |   6 +-
 .../app/add/filter/pipeline-element-type.pipe.ts   |  10 +-
 ui/src/app/add/services/add.service.ts             |  16 +-
 ui/src/app/configuration/configuration.module.ts   |   2 +
 .../service-configs/service-configs.component.ts   |   3 +-
 .../general-configuration.component.html           | 101 ++--
 .../general-configuration.component.scss           |   6 +
 .../general-configuration.component.ts             |   1 -
 ui/src/app/core-ui/core-ui.module.ts               |   2 +
 .../core-ui/static-properties/input.validator.ts   |  15 +-
 .../static-code-input.component.ts                 |   1 -
 .../static-free-input.component.html               |   1 -
 .../static-free-input.component.ts                 |   4 +-
 .../static-one-of-input.component.ts               |   5 +
 .../static-property.component.html                 |  24 +-
 .../static-properties/static-property.component.ts |   5 +
 .../static-runtime-resolvable-group.component.html |  77 ++++
 .../static-runtime-resolvable-group.component.ts   |  69 +++
 .../base-runtime-resolvable-input.ts               |  37 +-
 ...tic-runtime-resolvable-oneof-input.component.ts |   2 +
 .../overview/dashboard-overview.component.html     |   6 +
 .../pipeline-element-icon-stand.component.html     |   1 -
 .../pipeline-status-dialog.component.scss          |  11 -
 ui/src/scss/sp/main.scss                           |  11 +
 198 files changed, 3755 insertions(+), 4393 deletions(-)
 copy streampipes-client-go/streampipes/{internal/util/streampipes_api_path_test.go => model/streampipes_version/versions.go} (53%)
 create mode 100644 streampipes-client-go/streampipes/streampipes_version_api.go
 create mode 100644 streampipes-client-python/docs/img/tutorial-prediction-data-stream.png
 create mode 100644 streampipes-client-python/docs/tutorials/5-applying-interoperable-machine-learning-in-streampipes.ipynb
 rename streampipes-model-client/src/main/java/org/apache/streampipes/model/client/deployment/DeploymentType.java => streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/assets/AssetResolvable.java (86%)
 copy streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/PipelineExecutionStatus.java => streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/assets/AssetResolver.java (75%)
 create mode 100644 streampipes-extensions-api/src/main/java/org/apache/streampipes/extensions/api/assets/DefaultAssetResolver.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/GenericAdapterGenerator.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/GenericPlc4xAdapter.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/assets/DocumentationGenerator.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/assets/PlcAdapterAssetResolver.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/config/AdapterConfigurationProvider.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/config/EventSchemaProvider.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/config/MetadataOptionGenerator.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/ContinuousPlcRequestReader.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/OneTimePlcRequestReader.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcEventGenerator.java
 rename streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/BurrowTopicInfo.java => streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcRequestProvider.java (56%)
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionExtractor.java
 copy streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/PipelineExecutionStatus.java => streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionSettings.java (73%)
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xLabels.java
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/resources/org.apache.streampipes.connect.iiot.adapters.plc4x.generic/documentation.md
 copy streampipes-extensions/streampipes-connectors-plc/src/main/resources/{org.apache.streampipes.connect.iiot.adapters.plc4x.modbus => org.apache.streampipes.connect.iiot.adapters.plc4x.generic}/icon.png (100%)
 create mode 100644 streampipes-extensions/streampipes-connectors-plc/src/main/resources/org.apache.streampipes.connect.iiot.adapters.plc4x.generic/strings.en
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/RunningVisualization.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/assetdashboard/CanvasAttributes.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/deployment/DeploymentConfiguration.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/deployment/ElementType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/deployment/OutputType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/deployment/RuntimeType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/endpoint/ExtensionsServiceEndpoint.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/JobReport.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/TaskReport.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/AbstractBurrowInfo.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/BurrowConsumerGroupStatus.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/BurrowConsumerGroupStatusInfo.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/BurrowConsumerInfo.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Concept.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Context.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/ElementHeader.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/ElementType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/EnumeratedRange.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/EnumeratedValue.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Instance.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Namespace.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/NodeType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/OntologyElement.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/OntologyNode.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/OntologyQuery.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/OntologyQueryItem.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/OntologyQueryResponse.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/PrimitiveRange.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Property.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/QuantitativeValueRange.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Range.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/RdfFormat.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Resource.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/Statement.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Element.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/RegistrationData.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Token.java
 copy streampipes-model-client/src/main/java/org/apache/streampipes/model/client/{monitoring/pipeline/PipelineExecutionStatus.java => user/UserRegistrationData.java} (83%)
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeConfiguration.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeRetentionPolicy.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/datalake/LabelDefinition.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/datalake/PersistedDataStream.java
 rename streampipes-model-client/src/main/java/org/apache/streampipes/model/client/ontology/RangeType.java => streampipes-model/src/main/java/org/apache/streampipes/model/extensions/ExtensionAssetType.java (80%)
 rename streampipes-model-client/src/main/java/org/apache/streampipes/model/client/endpoint/ExtensionsServiceEndpointItem.java => streampipes-model/src/main/java/org/apache/streampipes/model/extensions/ExtensionItemDescription.java (78%)
 rename streampipes-service-discovery-api/src/main/java/org/apache/streampipes/svcdiscovery/api/model/DefaultSpServiceTags.java => streampipes-model/src/main/java/org/apache/streampipes/model/extensions/ExtensionItemInstallationRequest.java (56%)
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/RuntimeResolvableGroupStaticProperty.java
 rename {streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management => streampipes-model/src/main/java/org/apache/streampipes/model}/util/ServiceDefinitionUtil.java (57%)
 rename streampipes-model-client/src/main/java/org/apache/streampipes/model/client/monitoring/pipeline/PipelineExecutionStatus.java => streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/api/extensions/IExtensionsResourceUrlProvider.java (66%)
 delete mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointFetcher.java
 delete mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
 delete mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
 delete mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/HttpJsonParser.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/extensions/AvailableExtensionsProvider.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/extensions/ExtensionItemInstaller.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/extensions/ExtensionsResourceUrlProvider.java
 rename streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/admin/{PipelineElementImport.java => ExtensionsInstallationResource.java} (57%)
 create mode 100644 streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ExtensionItemProvider.java
 delete mode 100644 streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/ServiceTagProvider.java
 delete mode 100644 streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IExtensionsServiceEndpointStorage.java
 delete mode 100644 streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/serializer/RangeSerializer.java
 rename ui/projects/streampipes/platform-services/src/lib/apis/{pipeline-element-endpoint.service.ts => extension-installation.service.ts} (65%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.ts


(streampipes) 02/03: Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module

Posted by ze...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 2651-incorrect-redirect-to-dashboard-instead-of-app-module
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 0096bed6b3fca9e3dc953f40bc023527810400c5
Merge: 842f3eca02 c9f407809f
Author: Philipp Zehnder <te...@users.noreply.github.com>
AuthorDate: Wed Apr 3 09:40:18 2024 +0200

    Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module

 .github/pr-labeler-config.yml                      |   7 +
 VULNERABILITY.md                                   |  10 +-
 pom.xml                                            |  18 +-
 .../streampipes/data_lake_measure_api.go           |  46 +-
 streampipes-client-go/streampipes/endpoint.go      |   1 +
 .../internal/serializer/deserializer.go            |  22 +-
 .../internal/util/streampipes_api_path_test.go     |   1 +
 .../streampipes_version/versions.go}               |  37 +-
 .../streampipes/streampipes_client.go              |   5 +
 .../streampipes/streampipes_version_api.go         |  70 +++
 .../docs/img/tutorial-prediction-data-stream.png   | Bin 0 -> 221844 bytes
 streampipes-client-python/docs/index.md            |   9 -
 ...ine-learning-on-a-streampipes-data-stream.ipynb |  25 +-
 ...roperable-machine-learning-in-streampipes.ipynb | 509 +++++++++++++++++++++
 streampipes-client-python/mkdocs.yml               |   3 +-
 streampipes-client-python/poetry.lock              |  13 +-
 streampipes-client-python/pyproject.toml           |   2 +-
 .../extensions/api/assets/AssetResolvable.java     |   6 +-
 .../extensions/api/assets/AssetResolver.java       |  13 +-
 .../api/assets/DefaultAssetResolver.java           |  73 +++
 .../api/connect/IAdapterConfiguration.java         |   3 +-
 .../management/assets/AssetZipGenerator.java       |  35 +-
 .../connect/ConnectWorkerDescriptionProvider.java  |  37 +-
 .../management/locales/LabelGenerator.java         | 180 +++-----
 .../ConnectWorkerDescriptionProviderTest.java      |  13 -
 .../management/locales/LabelGeneratorTest.java     |   9 +-
 .../streampipes-connectors-plc/pom.xml             |  29 +-
 .../connectors/plc/PlcConnectorsModuleExport.java  |   8 +-
 .../plc/adapter/GenericAdapterGenerator.java       |  68 +++
 .../plc/adapter/generic/GenericPlc4xAdapter.java   | 155 +++++++
 .../generic/assets/DocumentationGenerator.java     | 107 +++++
 .../generic/assets/PlcAdapterAssetResolver.java    |  60 +++
 .../config/AdapterConfigurationProvider.java       |  91 ++++
 .../generic/config/EventSchemaProvider.java        |  59 +++
 .../generic/config/MetadataOptionGenerator.java    | 116 +++++
 .../connection/ContinuousPlcRequestReader.java     |  97 ++++
 .../connection/OneTimePlcRequestReader.java        |  54 +++
 .../generic/connection/PlcEventGenerator.java      |  66 +++
 .../generic/connection/PlcRequestProvider.java     |  26 +-
 .../generic/model/Plc4xConnectionExtractor.java    | 148 ++++++
 .../generic/model/Plc4xConnectionSettings.java     |  11 +-
 .../plc/adapter/generic/model/Plc4xLabels.java     |  42 ++
 .../plc/adapter/modbus/Plc4xModbusAdapter.java     |  14 +-
 .../connectors/plc/adapter/s7/Plc4xS7Adapter.java  | 105 +----
 .../documentation.md                               |  88 ++++
 .../icon.png                                       | Bin 0 -> 46022 bytes
 .../strings.en                                     |  43 ++
 .../streampipes-extensions-all-iiot/pom.xml        |  14 +
 .../streampipes-extensions-all-jvm/pom.xml         |  14 +
 .../streampipes-extensions-iiot-minimal/pom.xml    |   4 +
 .../siddhi/trend/TrendConfigurationVisitor.java    |   6 +
 .../model/client/RunningVisualization.java         | 107 -----
 .../client/assetdashboard/CanvasAttributes.java    | 199 --------
 .../client/deployment/DeploymentConfiguration.java | 130 ------
 .../model/client/deployment/ElementType.java       |  23 -
 .../model/client/deployment/OutputType.java        |  23 -
 .../model/client/deployment/RuntimeType.java       |  23 -
 .../client/endpoint/ExtensionsServiceEndpoint.java |  61 ---
 .../model/client/monitoring/JobReport.java         |  64 ---
 .../model/client/monitoring/TaskReport.java        |  57 ---
 .../monitoring/pipeline/AbstractBurrowInfo.java    |  49 --
 .../pipeline/BurrowConsumerGroupStatus.java        | 100 ----
 .../pipeline/BurrowConsumerGroupStatusInfo.java    |  39 --
 .../monitoring/pipeline/BurrowConsumerInfo.java    |  45 --
 .../streampipes/model/client/ontology/Concept.java |  51 ---
 .../streampipes/model/client/ontology/Context.java |  65 ---
 .../model/client/ontology/ElementHeader.java       |  77 ----
 .../model/client/ontology/ElementType.java         |  23 -
 .../model/client/ontology/EnumeratedRange.java     |  44 --
 .../model/client/ontology/EnumeratedValue.java     |  50 --
 .../model/client/ontology/Instance.java            |  49 --
 .../model/client/ontology/Namespace.java           |  50 --
 .../model/client/ontology/NodeType.java            |  23 -
 .../model/client/ontology/OntologyElement.java     |  66 ---
 .../model/client/ontology/OntologyNode.java        | 115 -----
 .../model/client/ontology/OntologyQuery.java       |  54 ---
 .../model/client/ontology/OntologyQueryItem.java   |  50 --
 .../client/ontology/OntologyQueryResponse.java     |  66 ---
 .../model/client/ontology/PrimitiveRange.java      |  52 ---
 .../model/client/ontology/Property.java            |  84 ----
 .../client/ontology/QuantitativeValueRange.java    |  67 ---
 .../streampipes/model/client/ontology/Range.java   |  60 ---
 .../model/client/ontology/RdfFormat.java           |  23 -
 .../model/client/ontology/Resource.java            |  61 ---
 .../model/client/ontology/Statement.java           |  53 ---
 .../streampipes/model/client/user/Element.java     |  50 --
 .../streampipes/model/client/user/Principal.java   |   6 -
 .../model/client/user/RegistrationData.java        |  68 ---
 .../streampipes/model/client/user/Token.java       |  49 --
 .../UserRegistrationData.java}                     |   7 +-
 .../org/apache/streampipes/model/SpDataStream.java |   5 +
 .../model/base/NamedStreamPipesEntity.java         |  24 +
 .../model/datalake/DataLakeConfiguration.java      |  79 ----
 .../model/datalake/DataLakeRetentionPolicy.java    |  77 ----
 .../model/datalake/LabelDefinition.java            |  46 --
 .../model/datalake/PersistedDataStream.java        |  71 ---
 .../model/extensions/ExtensionAssetType.java       |   7 +-
 .../model/extensions/ExtensionItemDescription.java |  38 +-
 .../ExtensionItemInstallationRequest.java          |  22 +-
 .../svcdiscovery/SpServiceRegistration.java        |  41 +-
 .../extensions/svcdiscovery/SpServiceTag.java      |   2 +-
 .../svcdiscovery/SpServiceTagPrefix.java           |  19 +-
 .../streampipes/model/schema/PropertyScope.java    |   2 +-
 .../RuntimeResolvableGroupStaticProperty.java      |  51 +++
 .../model/staticproperty/StaticProperty.java       |   3 +-
 .../model/staticproperty/StaticPropertyGroup.java  |  13 +
 .../model/staticproperty/StaticPropertyType.java   |   1 +
 .../staticproperty/StaticPropertyVisitor.java      |   2 +
 .../org/apache/streampipes/model/util/Cloner.java  |   3 +
 .../model}/util/ServiceDefinitionUtil.java         |  36 +-
 .../extensions/IExtensionsResourceUrlProvider.java |  13 +-
 .../manager/endpoint/EndpointFetcher.java          |  40 --
 .../manager/endpoint/EndpointItemFetcher.java      |  70 ---
 .../manager/endpoint/EndpointItemParser.java       |  53 ---
 .../manager/endpoint/HttpJsonParser.java           |  54 ---
 .../extensions/AvailableExtensionsProvider.java    | 128 ++++++
 .../manager/extensions/ExtensionItemInstaller.java |  57 +++
 .../extensions/ExtensionsResourceUrlProvider.java  |  74 +++
 .../v2/pipeline/CheckCompletedVisitor.java         |   6 +
 .../v2/pipeline/UpdateStaticPropertiesVisitor.java |   6 +
 .../migration/AbstractMigrationManager.java        |   7 +-
 .../pipeline/ExtensionsServiceLogExecutor.java     |   3 +-
 .../streampipes/manager/operations/Operations.java |   7 -
 .../manager/setup/ExtensionsInstallationTask.java  |  34 +-
 .../manager/setup/InstallationConfiguration.java   |   3 +-
 .../setup/PipelineElementInstallationStep.java     |  66 +--
 .../template/PipelineElementTemplateVisitor.java   |   6 +
 .../resource/management/UserResourceManager.java   |  57 ++-
 .../resource/management/secret/SecretVisitor.java  |   6 +
 .../rest/core/base/impl/AbstractRestResource.java  |  16 -
 .../extensions/connect/AdapterAssetResource.java   |  36 +-
 .../connect/AdapterDescriptionResource.java        |  11 +-
 .../extensions/html/page/WelcomePageGenerator.java |  23 +-
 .../streampipes/rest/impl/Authentication.java      |  14 +-
 .../rest/impl/RestorePasswordResource.java         |   7 +-
 ...rt.java => ExtensionsInstallationResource.java} |  73 +--
 .../admin/ExtensionsServiceEndpointResource.java   | 154 +------
 .../apache/streampipes/sdk/StaticProperties.java   |   9 +
 ...AbstractConfigurablePipelineElementBuilder.java |   6 +
 .../sdk/builder/adapter/AdapterConfiguration.java  |   9 +
 .../adapter/AdapterConfigurationBuilder.java       |  17 +-
 .../org/apache/streampipes/sdk/utils/Assets.java   |  10 +-
 .../builder/adapter/AdapterConfigurationTest.java  |   2 +-
 .../api/model/SpServicePathPrefix.java             |   1 -
 .../api/model/SpServiceUrlProvider.java            |  40 +-
 .../svcdiscovery/SpServiceDiscoveryCore.java       |  23 +-
 .../service/extensions/ExtensionItemProvider.java  |  86 ++++
 .../extensions/ExtensionsModelSubmitter.java       |  54 +--
 .../service/extensions/ServiceTagProvider.java     |  58 ---
 .../StreamPipesExtensionsServiceBase.java          |  60 ++-
 .../security/TokenAuthenticationFilter.java        |   3 +-
 .../api/IExtensionsServiceEndpointStorage.java     |  32 --
 .../streampipes/storage/api/IUserStorage.java      |   2 +-
 .../storage/couchdb/impl/UserStorage.java          |   4 +-
 .../couchdb/serializer/RangeSerializer.java        |  62 ---
 ui/.lintstagedrc.json                              |   4 +-
 ...ervice.ts => extension-installation.service.ts} |  30 +-
 .../src/lib/model/gen/streampipes-model.ts         | 138 ++++--
 .../platform-services/src/public-api.ts            |   2 +-
 ui/src/app/add/add.component.html                  |  14 +-
 ui/src/app/add/add.component.ts                    |  42 +-
 ui/src/app/add/add.module.ts                       |  10 +
 .../endpoint-item/endpoint-item.component.html     |   6 +-
 .../endpoint-item/endpoint-item.component.ts       |  75 +--
 .../endpoint-installation.component.html           |   8 +-
 .../endpoint-installation.component.ts             |  38 +-
 ui/src/app/add/filter/order-by.pipe.ts             |   7 +-
 .../pipeline-element-installation-status.pipe.ts   |   6 +-
 .../app/add/filter/pipeline-element-name.pipe.ts   |   6 +-
 .../app/add/filter/pipeline-element-type.pipe.ts   |  10 +-
 ui/src/app/add/services/add.service.ts             |  16 +-
 .../service-configs/service-configs.component.ts   |   3 +-
 ui/src/app/core-ui/core-ui.module.ts               |   2 +
 .../static-code-input.component.ts                 |   1 -
 .../static-one-of-input.component.ts               |   5 +
 .../static-property.component.html                 |  24 +-
 .../static-properties/static-property.component.ts |   5 +
 .../static-runtime-resolvable-group.component.html |  77 ++++
 .../static-runtime-resolvable-group.component.ts   |  69 +++
 .../base-runtime-resolvable-input.ts               |  37 +-
 ...tic-runtime-resolvable-oneof-input.component.ts |   2 +
 .../pipeline-status-dialog.component.scss          |  11 -
 ui/src/scss/sp/main.scss                           |  11 +
 183 files changed, 3540 insertions(+), 4018 deletions(-)


(streampipes) 01/03: Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module

Posted by ze...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 2651-incorrect-redirect-to-dashboard-instead-of-app-module
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 842f3eca029743b4342c4c20d19241b2e6959d69
Merge: 34a55cd1e4 083caec94b
Author: Philipp Zehnder <te...@users.noreply.github.com>
AuthorDate: Thu Mar 28 10:54:24 2024 +0100

    Merge branch 'dev' into 2651-incorrect-redirect-to-dashboard-instead-of-app-module

 pom.xml                                            |   2 +-
 .../staticproperty/RemoteOneOfStaticProperty.java  |   2 +-
 .../model/staticproperty/StaticProperty.java       |  17 +-
 ui/package-lock.json                               | 278 ++-------------------
 ui/package.json                                    |   2 +-
 .../src/lib/model/gen/streampipes-model.ts         |  13 +-
 ui/src/app/configuration/configuration.module.ts   |   2 +
 .../general-configuration.component.html           | 101 ++++----
 .../general-configuration.component.scss           |   6 +
 .../general-configuration.component.ts             |   1 -
 .../core-ui/static-properties/input.validator.ts   |  15 +-
 .../static-free-input.component.html               |   1 -
 .../static-free-input.component.ts                 |   4 +-
 .../overview/dashboard-overview.component.html     |   6 +
 .../pipeline-element-icon-stand.component.html     |   1 -
 15 files changed, 110 insertions(+), 341 deletions(-)


(streampipes) 03/03: fix(#2651): Refactor and deprecate AssetDashboardResource

Posted by ze...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 2651-incorrect-redirect-to-dashboard-instead-of-app-module
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit 30c2f83f532e334302cbfe0a9e4ecceb4c1041cd
Author: Philipp Zehnder <te...@users.noreply.github.com>
AuthorDate: Wed Apr 3 09:51:51 2024 +0200

    fix(#2651): Refactor and deprecate AssetDashboardResource
---
 .../streampipes/manager/file/FileManager.java      |  5 ++
 .../streampipes/manager/file/TestFileManager.java  | 86 ++++++++++++++++------
 .../rest/impl/AssetDashboardResource.java          | 50 +++++++++----
 3 files changed, 106 insertions(+), 35 deletions(-)

diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java
index 192d124bbe..5674aaa12e 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/file/FileManager.java
@@ -64,6 +64,7 @@ public class FileManager {
 
     fileInputStream = cleanFile(fileInputStream, filetype);
 
+
     FileMetadata fileMetadata = makeFileMetadata(user, filename, filetype);
     new FileHandler().storeFile(filename, fileInputStream);
     storeFileMetadata(fileMetadata);
@@ -97,6 +98,10 @@ public class FileManager {
     return !fileHash.equals(hash);
   }
 
+  public static String sanitizeFilename(String filename) {
+    return filename.replaceAll("[^a-zA-Z0-9.\\-]", "_");
+  }
+
   private static void storeFileMetadata(FileMetadata fileMetadata) {
     getFileMetadataStorage().addFileMetadata(fileMetadata);
   }
diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java
index 58553e72f6..59e96b1e8c 100644
--- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java
+++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/file/TestFileManager.java
@@ -18,46 +18,88 @@
 package org.apache.streampipes.manager.file;
 
 import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class TestFileManager {
 
   @Test
   public void testCleanFileWithoutBom() throws IOException {
-    String expected = "test";
-    InputStream inputStream = IOUtils.toInputStream(expected, StandardCharsets.UTF_8);
-    InputStream resultStream = FileManager.cleanFile(inputStream, "CSV");
-    String resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
+    var expected = "test";
+    var inputStream = IOUtils.toInputStream(expected, StandardCharsets.UTF_8);
+    var resultStream = FileManager.cleanFile(inputStream, "CSV");
+    var resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
 
-    Assertions.assertEquals(expected, resultString);
+    assertEquals(expected, resultString);
   }
 
   @Test
   public void testCleanFileWithBom() throws IOException {
-    String expected = "test";
-    String utf8Bom = "\uFEFF";
-    String inputString = utf8Bom + expected;
-    InputStream inputStream = IOUtils.toInputStream(inputString, StandardCharsets.UTF_8);
-    InputStream resultStream = FileManager.cleanFile(inputStream, "CSV");
-    String resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
+    var expected = "test";
+    var utf8Bom = "\uFEFF";
+    var inputString = utf8Bom + expected;
+    var inputStream = IOUtils.toInputStream(inputString, StandardCharsets.UTF_8);
+    var resultStream = FileManager.cleanFile(inputStream, "CSV");
+    var resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
 
-    Assertions.assertEquals(expected, resultString);
+    assertEquals(expected, resultString);
   }
 
   @Test
   public void testCleanFileWithBomAndUmlauts() throws IOException {
-    String expected = "testäüö";
-    String utf8Bom = "\uFEFF";
-    String inputString = utf8Bom + expected;
-    InputStream inputStream = IOUtils.toInputStream(inputString, StandardCharsets.UTF_8);
-    InputStream resultStream = FileManager.cleanFile(inputStream, "CSV");
-    String resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
-
-    Assertions.assertEquals(expected, resultString);
+    var expected = "testäüö";
+    var utf8Bom = "\uFEFF";
+    var inputString = utf8Bom + expected;
+    var inputStream = IOUtils.toInputStream(inputString, StandardCharsets.UTF_8);
+    var resultStream = FileManager.cleanFile(inputStream, "CSV");
+    var resultString = IOUtils.toString(resultStream, StandardCharsets.UTF_8);
+
+    assertEquals(expected, resultString);
+  }
+
+  @Test
+  public void sanitizeFilename_replacesNonAlphanumericCharactersWithUnderscore() {
+    var filename = "file@name#with$special%characters";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals("file_name_with_special_characters", sanitizedFilename);
+  }
+
+  @Test
+  public void sanitizeFilename_keepsAlphanumericAndDotAndHyphenCharacters() {
+    var filename = "file.name-with_alphanumeric123";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals(filename, sanitizedFilename);
+  }
+
+  @Test
+  public void sanitizeFilename_returnsUnderscoreForFilenameWithAllSpecialCharacters() {
+    var filename = "@#$%^&*()";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals("_________", sanitizedFilename);
+  }
+
+  @Test
+  public void sanitizeFilename_returnsEmptyStringForEmptyFilename() {
+    var filename = "";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals("", sanitizedFilename);
+  }
+
+  @Test
+  public void sanitizeFilename_removesSingleParentDirectory() {
+    var filename = "../file";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals(".._file", sanitizedFilename);
+  }
+
+  @Test
+  public void sanitizeFilename_removesDoubleParentDirectoryy() {
+    var filename = "../../file";
+    var sanitizedFilename = FileManager.sanitizeFilename(filename);
+    assertEquals(".._.._file", sanitizedFilename);
   }
 }
\ No newline at end of file
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java
index 919bea60d9..111ea8ab14 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AssetDashboardResource.java
@@ -17,6 +17,7 @@
  */
 package org.apache.streampipes.rest.impl;
 
+import org.apache.streampipes.manager.file.FileManager;
 import org.apache.streampipes.model.client.assetdashboard.AssetDashboardConfig;
 import org.apache.streampipes.rest.core.base.impl.AbstractRestResource;
 import org.apache.streampipes.rest.shared.exception.SpMessageException;
@@ -43,6 +44,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.FileNameMap;
 import java.net.URLConnection;
 import java.nio.file.Files;
@@ -51,6 +53,7 @@ import java.util.List;
 
 @RestController
 @RequestMapping("/api/v2/asset-dashboards")
+@Deprecated(forRemoval = true, since = "0.95.0")
 public class AssetDashboardResource extends AbstractRestResource {
 
   private static final Logger LOG = LoggerFactory.getLogger(AssetDashboardResource.class);
@@ -59,44 +62,52 @@ public class AssetDashboardResource extends AbstractRestResource {
 
   @GetMapping(path = "/{dashboardId}", produces = MediaType.APPLICATION_JSON_VALUE)
   public ResponseEntity<AssetDashboardConfig> getAssetDashboard(@PathVariable("dashboardId") String dashboardId) {
-    return ok(getNoSqlStorage().getAssetDashboardStorage().getAssetDashboard(dashboardId));
+    return ok(getNoSqlStorage().getAssetDashboardStorage()
+                               .getAssetDashboard(dashboardId));
   }
 
   @PutMapping(
       path = "/{dashboardId}",
       produces = MediaType.APPLICATION_JSON_VALUE,
       consumes = MediaType.APPLICATION_JSON_VALUE)
-  public ResponseEntity<Void> updateAssetDashboard(@PathVariable("dashboardId") String dashboardId,
-                                                   @RequestBody AssetDashboardConfig dashboardConfig) {
+  public ResponseEntity<Void> updateAssetDashboard(
+      @PathVariable("dashboardId") String dashboardId,
+      @RequestBody AssetDashboardConfig dashboardConfig
+  ) {
     AssetDashboardConfig dashboard = getAssetDashboardStorage().getAssetDashboard(dashboardId);
     dashboardConfig.setRev(dashboard.getRev());
-    getNoSqlStorage().getAssetDashboardStorage().updateAssetDashboard(dashboardConfig);
+    getNoSqlStorage().getAssetDashboardStorage()
+                     .updateAssetDashboard(dashboardConfig);
     return ok();
   }
 
   @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
   public ResponseEntity<List<AssetDashboardConfig>> getAllDashboards() {
-    return ok(getNoSqlStorage().getAssetDashboardStorage().getAllAssetDashboards());
+    return ok(getNoSqlStorage().getAssetDashboardStorage()
+                               .getAllAssetDashboards());
   }
 
   @PostMapping(
       produces = MediaType.APPLICATION_JSON_VALUE,
       consumes = MediaType.APPLICATION_JSON_VALUE)
   public ResponseEntity<Void> storeAssetDashboard(@RequestBody AssetDashboardConfig dashboardConfig) {
-    getNoSqlStorage().getAssetDashboardStorage().storeAssetDashboard(dashboardConfig);
+    getNoSqlStorage().getAssetDashboardStorage()
+                     .storeAssetDashboard(dashboardConfig);
     return ok();
   }
 
   @DeleteMapping(path = "/{dashboardId}")
   public ResponseEntity<Void> deleteAssetDashboard(@PathVariable("dashboardId") String dashboardId) {
-    getNoSqlStorage().getAssetDashboardStorage().deleteAssetDashboard(dashboardId);
+    getNoSqlStorage().getAssetDashboardStorage()
+                     .deleteAssetDashboard(dashboardId);
     return ok();
   }
 
   @GetMapping(path = "/images/{imageName}")
   public ResponseEntity<byte[]> getDashboardImage(@PathVariable("imageName") String imageName) {
     try {
-      java.nio.file.Path path = Paths.get(getTargetFile(imageName));
+      var sanitizedFileName = FileManager.sanitizeFilename(imageName);
+      java.nio.file.Path path = Paths.get(getTargetFile(sanitizedFileName));
       File file = new File(path.toString());
       FileNameMap fileNameMap = URLConnection.getFileNameMap();
       String mimeType = fileNameMap.getContentTypeFor(file.getName());
@@ -114,16 +125,28 @@ public class AssetDashboardResource extends AbstractRestResource {
 
   @PostMapping(path = "/images", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
   public ResponseEntity<Void> storeDashboardImage(@RequestPart("file_upload") MultipartFile fileDetail) {
-    File targetDirectory = new File(getTargetDirectory());
+    try {
+      storeFile(fileDetail.getName(), fileDetail.getInputStream());
+      return ok();
+    } catch (IOException e) {
+      LOG.error("Could not extract image input stream from request", e);
+      return fail();
+    }
+  }
+
+  private void storeFile(String fileName, InputStream fileInputStream) {
+
+    var targetDirectory = new File(getTargetDirectory());
     if (!targetDirectory.exists()) {
       targetDirectory.mkdirs();
     }
 
-    File targetFile = new File(getTargetFile(fileDetail.getName()));
+    var sanitizedFileName = FileManager.sanitizeFilename(fileName);
+
+    var targetFile = new File(getTargetFile(sanitizedFileName));
 
     try {
-      FileUtils.copyInputStreamToFile(fileDetail.getInputStream(), targetFile);
-      return ok();
+      FileUtils.copyInputStreamToFile(fileInputStream, targetFile);
     } catch (IOException e) {
       LOG.error(e.getMessage(), e);
       throw new SpMessageException(HttpStatus.INTERNAL_SERVER_ERROR, e);
@@ -140,6 +163,7 @@ public class AssetDashboardResource extends AbstractRestResource {
   }
 
   private IAssetDashboardStorage getAssetDashboardStorage() {
-    return StorageDispatcher.INSTANCE.getNoSqlStore().getAssetDashboardStorage();
+    return StorageDispatcher.INSTANCE.getNoSqlStore()
+                                     .getAssetDashboardStorage();
   }
 }