feature: add support for kms key, tags, and syncing secret metadata to aws parameter store sync

This commit is contained in:
Scott Wilson
2025-02-18 20:28:27 -08:00
parent 21c6700db2
commit b0cd5bd10d
42 changed files with 1181 additions and 271 deletions
@@ -0,0 +1,2 @@
export * from "./queries";
export * from "./types";
@@ -0,0 +1,42 @@
import { useQuery, UseQueryOptions } from "@tanstack/react-query";
import { apiRequest } from "@app/config/request";
import { appConnectionKeys } from "@app/hooks/api/appConnections";
import {
TAwsConnectionKmsKey,
TAwsConnectionListKmsKeysResponse,
TListAwsConnectionKmsKeys
} from "./types";
const awsConnectionKeys = {
all: [...appConnectionKeys.all, "aws"] as const,
listKmsKeys: (params: TListAwsConnectionKmsKeys) =>
[...awsConnectionKeys.all, "kms-keys", params] as const
};
export const useListAwsConnectionKmsKeys = (
{ connectionId, ...params }: TListAwsConnectionKmsKeys,
options?: Omit<
UseQueryOptions<
TAwsConnectionKmsKey[],
unknown,
TAwsConnectionKmsKey[],
ReturnType<typeof awsConnectionKeys.listKmsKeys>
>,
"queryKey" | "queryFn"
>
) => {
return useQuery({
queryKey: awsConnectionKeys.listKmsKeys({ connectionId, ...params }),
queryFn: async () => {
const { data } = await apiRequest.get<TAwsConnectionListKmsKeysResponse>(
`/api/v1/app-connections/aws/${connectionId}/kms-keys`,
{ params }
);
return data.kmsKeys;
},
...options
});
};
@@ -0,0 +1,24 @@
import { SecretSync } from "@app/hooks/api/secretSyncs";
export type TDatabricksSecretScope = {
name: string;
};
export type TDatabricksConnectionListSecretScopesResponse = {
secretScopes: TDatabricksSecretScope[];
};
export type TListAwsConnectionKmsKeys = {
connectionId: string;
region: string;
destination: SecretSync.AWSParameterStore | SecretSync.AWSSecretsManager;
};
export type TAwsConnectionKmsKey = {
alias: string;
id: string;
};
export type TAwsConnectionListKmsKeysResponse = {
kmsKeys: TAwsConnectionKmsKey[];
};