You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2026/01/23 09:15:22 UTC

(streampipes) branch dev updated: feat: Support deletion in typescript dataset api (#4125)

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

riemer 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 a98d00a3e9 feat: Support deletion in typescript dataset api (#4125)
a98d00a3e9 is described below

commit a98d00a3e990b1c834696da1b4251cab0e2b9113
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Fri Jan 23 10:15:17 2026 +0100

    feat: Support deletion in typescript dataset api (#4125)
    
    Co-authored-by: Philipp Zehnder <te...@users.noreply.github.com>
---
 .../streampipes/rest/impl/datalake/DataLakeResource.java   | 10 +++++-----
 .../src/lib/apis/datalake-rest.service.ts                  | 14 ++++++++++++++
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResource.java
index 5332a92bbb..51d2ea14be 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResource.java
@@ -106,20 +106,20 @@ public class DataLakeResource extends AbstractDataLakeResource {
     this.dataExplorerQueryManagement = dataExplorerQueryManagement;
   }
 
-  @DeleteMapping(path = "/measurements/{measurementID}")
-  @PreAuthorize("this.hasWriteAuthority() and this.checkPermissionByName(#measurementID, 'WRITE')")
+  @DeleteMapping(path = "/measurements/{measurementName}")
+  @PreAuthorize("this.hasWriteAuthority() and this.checkPermissionByName(#measurementName, 'WRITE')")
   @Operation(summary = "Remove data from a single measurement series with given id", tags = {
       "Data Lake" }, responses = {
           @ApiResponse(responseCode = "200", description = "Data from measurement series successfully removed"),
           @ApiResponse(responseCode = "400", description = "Measurement series with given id not found") })
   public ResponseEntity<?> deleteData(
-      @Parameter(in = ParameterIn.PATH, description = "the id of the measurement series", required = true) @PathVariable("measurementID") String measurementID,
+      @Parameter(in = ParameterIn.PATH, description = "the name of the measurement series", required = true) @PathVariable("measurementName") String measurementName,
       @Parameter(in = ParameterIn.QUERY, description = "start date for slicing operation") @RequestParam(value = "startDate", required = false) Long startDate,
       @Parameter(in = ParameterIn.QUERY, description = "end date for slicing operation") @RequestParam(value = "endDate", required = false) Long endDate) {
 
-    if (this.dataExplorerQueryManagement.deleteData(measurementID, startDate, endDate)) {
+    if (this.dataExplorerQueryManagement.deleteData(measurementName, startDate, endDate)) {
       return ok(Notifications
-          .success("Successfully deleted measure " + measurementID + " between " + startDate + " and " + endDate));
+          .success("Successfully deleted measure " + measurementName + " between " + startDate + " and " + endDate));
     } else {
       return ResponseEntity
           .status(HttpStatus.NOT_FOUND)
diff --git a/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
index 0b89eecce9..c7f8aeec7a 100644
--- a/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/datalake-rest.service.ts
@@ -174,6 +174,20 @@ export class DatalakeRestService {
         return this.http.request(request);
     }
 
+    deleteData(
+        measurementName: string,
+        startTime: number,
+        endTime: number,
+    ): Observable<void> {
+        const params = new HttpParams()
+            .set('startDate', startTime.toString())
+            .set('endDate', endTime.toString());
+        return this.http.delete<void>(
+            `${this.dataLakeUrl}/measurements/${measurementName}`,
+            { params },
+        );
+    }
+
     deleteCleanup(index: string) {
         const url = `${this.dataLakeUrl}/${index}/cleanup`;
         return this.http.delete(url);