Compare commits
2 Commits
22a244832e
...
6000582d55
| Author | SHA1 | Date | |
|---|---|---|---|
| 6000582d55 | |||
| 0a2937ad55 |
@@ -4,6 +4,7 @@ import org.springframework.cloud.openfeign.FeignClient;
|
|||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import com.abnov.infisicalbridge.dto.DokployApplicationUpdateRequest;
|
||||||
import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest;
|
import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest;
|
||||||
|
|
||||||
@FeignClient(name = "dokployClient", url = "${dokploy.api-url}", configuration = DokployFeignConfig.class)
|
@FeignClient(name = "dokployClient", url = "${dokploy.api-url}", configuration = DokployFeignConfig.class)
|
||||||
@@ -11,4 +12,7 @@ public interface DokployClient {
|
|||||||
|
|
||||||
@PostMapping("/compose.update")
|
@PostMapping("/compose.update")
|
||||||
void updateCompose(@RequestBody DokployComposeUpdateRequest request);
|
void updateCompose(@RequestBody DokployComposeUpdateRequest request);
|
||||||
|
|
||||||
|
@PostMapping("/application.update")
|
||||||
|
void updateApplication(@RequestBody DokployApplicationUpdateRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.abnov.infisicalbridge.dto;
|
||||||
|
|
||||||
|
public record DokployApplicationUpdateRequest(
|
||||||
|
String applicationId,
|
||||||
|
String env) {
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.abnov.infisicalbridge.dokploy.DokployClient;
|
import com.abnov.infisicalbridge.dokploy.DokployClient;
|
||||||
|
import com.abnov.infisicalbridge.dto.DokployApplicationUpdateRequest;
|
||||||
import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest;
|
import com.abnov.infisicalbridge.dto.DokployComposeUpdateRequest;
|
||||||
import com.abnov.infisicalbridge.dto.InfisicalWebhookEventResponse;
|
import com.abnov.infisicalbridge.dto.InfisicalWebhookEventResponse;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@@ -38,7 +39,8 @@ public class InfisicalWebhookController {
|
|||||||
@PostMapping
|
@PostMapping
|
||||||
public ResponseEntity<Void> handleWebhook(
|
public ResponseEntity<Void> handleWebhook(
|
||||||
@RequestBody String payload,
|
@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)
|
@RequestHeader(value = "X-Infisical-Signature", required = false) String signature)
|
||||||
throws InfisicalException {
|
throws InfisicalException {
|
||||||
|
|
||||||
@@ -80,12 +82,24 @@ public class InfisicalWebhookController {
|
|||||||
.map(s -> s.getSecretKey() + "=" + s.getSecretValue())
|
.map(s -> s.getSecretKey() + "=" + s.getSecretValue())
|
||||||
.collect(Collectors.joining("\n"));
|
.collect(Collectors.joining("\n"));
|
||||||
|
|
||||||
try {
|
if (dokployComposeId != null) {
|
||||||
dokployClient.updateCompose(
|
try {
|
||||||
new DokployComposeUpdateRequest(dokployComposeId, envContent));
|
dokployClient.updateCompose(
|
||||||
} catch (Exception e) {
|
new DokployComposeUpdateRequest(dokployComposeId, envContent));
|
||||||
log.error("Failed to update Dokploy compose {}", dokployComposeId, e);
|
} catch (Exception e) {
|
||||||
return ResponseEntity.status(HttpStatus.BAD_GATEWAY).build();
|
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();
|
return ResponseEntity.ok().build();
|
||||||
|
|||||||
Reference in New Issue
Block a user