feat: added camunda secret sync

This commit is contained in:
Sheen Capadngan
2025-04-08 23:52:27 +08:00
parent 479d6445a7
commit 3f9a793578
34 changed files with 565 additions and 16 deletions
@@ -0,0 +1 @@
export * from "./queries";
@@ -0,0 +1,37 @@
import { useQuery, UseQueryOptions } from "@tanstack/react-query";
import { apiRequest } from "@app/config/request";
import { appConnectionKeys } from "../queries";
import { TCamundaCluster } from "./types";
const camundaConnectionKeys = {
all: [...appConnectionKeys.all, "camunda"] as const,
listClusters: (connectionId: string) =>
[...camundaConnectionKeys.all, "clusters", connectionId] as const
};
export const useCamundaConnectionListClusters = (
connectionId: string,
options?: Omit<
UseQueryOptions<
TCamundaCluster[],
unknown,
TCamundaCluster[],
ReturnType<typeof camundaConnectionKeys.listClusters>
>,
"queryKey" | "queryFn"
>
) => {
return useQuery({
queryKey: camundaConnectionKeys.listClusters(connectionId),
queryFn: async () => {
const { data } = await apiRequest.get<{ clusters: TCamundaCluster[] }>(
`/api/v1/app-connections/camunda/${connectionId}/clusters`
);
return data.clusters;
},
...options
});
};
@@ -0,0 +1,4 @@
export type TCamundaCluster = {
name: string;
uuid: string;
};
+2 -1
View File
@@ -6,7 +6,8 @@ export enum SecretSync {
AzureKeyVault = "azure-key-vault",
AzureAppConfiguration = "azure-app-configuration",
Databricks = "databricks",
Humanitec = "humanitec"
Humanitec = "humanitec",
Camunda = "camunda"
}
export enum SecretSyncStatus {
@@ -0,0 +1,20 @@
import { AppConnection } from "@app/hooks/api/appConnections/enums";
import { SecretSync } from "@app/hooks/api/secretSyncs";
import { TRootSecretSync } from "@app/hooks/api/secretSyncs/types/root-sync";
export enum CamundaSyncScope {
Cluster = "cluster"
}
export type TCamundaSync = TRootSecretSync & {
destination: SecretSync.Camunda;
destinationConfig: {
scope: string;
clusterUUID: string;
};
connection: {
app: AppConnection.Camunda;
name: string;
id: string;
};
};
@@ -7,6 +7,7 @@ import { DiscriminativePick } from "@app/types";
import { TAwsSecretsManagerSync } from "./aws-secrets-manager-sync";
import { TAzureAppConfigurationSync } from "./azure-app-configuration-sync";
import { TAzureKeyVaultSync } from "./azure-key-vault-sync";
import { TCamundaSync } from "./camunda-sync";
import { TGcpSync } from "./gcp-sync";
import { THumanitecSync } from "./humanitec-sync";
@@ -24,7 +25,8 @@ export type TSecretSync =
| TAzureKeyVaultSync
| TAzureAppConfigurationSync
| TDatabricksSync
| THumanitecSync;
| THumanitecSync
| TCamundaSync;
export type TListSecretSyncs = { secretSyncs: TSecretSync[] };