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

riemer pushed a commit to branch add-typescript-delete-dataset
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit fbef19c7354da0fee8c0d3e19bf9523d37d5af65
Author: Dominik Riemer <[email protected]>
AuthorDate: Thu Jan 22 22:59:12 2026 +0100

    feat: Support deletion in typescript dataset api
---
 .../streampipes/rest/impl/datalake/DataLakeResource.java   |  8 ++++----
 .../src/lib/apis/datalake-rest.service.ts                  | 14 ++++++++++++++
 2 files changed, 18 insertions(+), 4 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..ede898126e 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}")
+  @DeleteMapping(path = "/measurements/{measurementName}")
   @PreAuthorize("this.hasWriteAuthority() and 
this.checkPermissionByName(#measurementID, '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 id 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);

Reply via email to