From 0a2937ad550ded70c157f2f62ec8053d2ac75f0c Mon Sep 17 00:00:00 2001 From: Aboubacar TRAORE Date: Thu, 25 Dec 2025 07:39:17 +0000 Subject: [PATCH] adding support for dokploy application --- .../dokploy/DokployClient.java | 4 +++ .../dto/DokployApplicationUpdateRequest.java | 6 ++++ .../infisical/InfisicalWebhookController.java | 28 ++++++++++++++----- 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/abnov/infisicalbridge/dto/DokployApplicationUpdateRequest.java diff --git a/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java index 9a8b768..88e6613 100644 --- a/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java +++ b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java @@ -4,6 +4,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import com.abnov.infisicalbridge.dto.DokployApplicationUpdateRequest; import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest; @FeignClient(name = "dokployClient", url = "${dokploy.api-url}", configuration = DokployFeignConfig.class) @@ -11,4 +12,7 @@ public interface DokployClient { @PostMapping("/compose.update") void updateCompose(@RequestBody DokployComposeUpdateRequest request); + + @PostMapping("/application.update") + void updateApplication(@RequestBody DokployApplicationUpdateRequest request); } diff --git a/src/main/java/com/abnov/infisicalbridge/dto/DokployApplicationUpdateRequest.java b/src/main/java/com/abnov/infisicalbridge/dto/DokployApplicationUpdateRequest.java new file mode 100644 index 0000000..7f24ce7 --- /dev/null +++ b/src/main/java/com/abnov/infisicalbridge/dto/DokployApplicationUpdateRequest.java @@ -0,0 +1,6 @@ +package com.abnov.infisicalbridge.dto; + +public record DokployApplicationUpdateRequest( + String applicationId, + String env) { +} diff --git a/src/main/java/com/abnov/infisicalbridge/infisical/InfisicalWebhookController.java b/src/main/java/com/abnov/infisicalbridge/infisical/InfisicalWebhookController.java index b47b6bb..dc51ff6 100644 --- a/src/main/java/com/abnov/infisicalbridge/infisical/InfisicalWebhookController.java +++ b/src/main/java/com/abnov/infisicalbridge/infisical/InfisicalWebhookController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.abnov.infisicalbridge.dokploy.DokployClient; +import com.abnov.infisicalbridge.dto.DokployApplicationUpdateRequest; import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest; import com.abnov.infisicalbridge.dto.InfisicalWebhookEventResponse; import com.fasterxml.jackson.core.JsonProcessingException; @@ -38,7 +39,8 @@ public class InfisicalWebhookController { @PostMapping public ResponseEntity handleWebhook( @RequestBody String payload, - @RequestParam String dokployComposeId, + @RequestParam(required = false) String dokployComposeId, + @RequestParam(required = false) String dokployApplicationId, @RequestHeader(value = "X-Infisical-Signature", required = false) String signature) throws InfisicalException { @@ -80,12 +82,24 @@ public class InfisicalWebhookController { .map(s -> s.getSecretKey() + "=" + s.getSecretValue()) .collect(Collectors.joining("\n")); - try { - dokployClient.updateCompose( - new DokployComposeUpdateRequest(dokployComposeId, envContent)); - } catch (Exception e) { - log.error("Failed to update Dokploy compose {}", dokployComposeId, e); - return ResponseEntity.status(HttpStatus.BAD_GATEWAY).build(); + if (dokployComposeId != null) { + try { + dokployClient.updateCompose( + new DokployComposeUpdateRequest(dokployComposeId, envContent)); + } catch (Exception e) { + log.error("Failed to update Dokploy compose {}", dokployComposeId, e); + return ResponseEntity.status(HttpStatus.BAD_GATEWAY).build(); + } + } + + if (dokployApplicationId != null) { + try { + dokployClient.updateApplication( + new DokployApplicationUpdateRequest(dokployApplicationId, envContent)); + } catch (Exception e) { + log.error("Failed to update Dokploy application {}", dokployApplicationId, e); + return ResponseEntity.status(HttpStatus.BAD_GATEWAY).build(); + } } return ResponseEntity.ok().build();