diff --git a/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java new file mode 100644 index 0000000..9a8b768 --- /dev/null +++ b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployClient.java @@ -0,0 +1,14 @@ +package com.abnov.infisicalbridge.dokploy; + +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.DokployComposeUpdateRequest; + +@FeignClient(name = "dokployClient", url = "${dokploy.api-url}", configuration = DokployFeignConfig.class) +public interface DokployClient { + + @PostMapping("/compose.update") + void updateCompose(@RequestBody DokployComposeUpdateRequest request); +} diff --git a/src/main/java/com/abnov/infisicalbridge/dokploy/DokployFeignConfig.java b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployFeignConfig.java new file mode 100644 index 0000000..6ff5f6c --- /dev/null +++ b/src/main/java/com/abnov/infisicalbridge/dokploy/DokployFeignConfig.java @@ -0,0 +1,24 @@ +package com.abnov.infisicalbridge.dokploy; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import feign.RequestInterceptor; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Configuration +@RequiredArgsConstructor +@Slf4j +public class DokployFeignConfig { + + private final DokployProperties properties; + + @Bean + public RequestInterceptor dokployRequestInterceptor() { + return requestTemplate -> { + // Add API key to every request + requestTemplate.header("x-api-key", properties.getApiKey()); + }; + } +} diff --git a/src/main/java/com/abnov/infisicalbridge/dto/DokployComposeUpdateRequest.java b/src/main/java/com/abnov/infisicalbridge/dto/DokployComposeUpdateRequest.java new file mode 100644 index 0000000..38eab79 --- /dev/null +++ b/src/main/java/com/abnov/infisicalbridge/dto/DokployComposeUpdateRequest.java @@ -0,0 +1,6 @@ +package com.abnov.infisicalbridge.dto; + +public record DokployComposeUpdateRequest( + String composeId, + String env) { +}