mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-10-22 08:25:26 +00:00
175 lines
4.8 KiB
TypeScript
175 lines
4.8 KiB
TypeScript
import { db } from "@dokploy/server/db";
|
|
import {
|
|
type VaultProviderConfig,
|
|
vaultProvider,
|
|
} from "@dokploy/server/db/schema";
|
|
import { eq } from "drizzle-orm";
|
|
import { awsClient } from "./aws";
|
|
import { awsParameterStoreClient } from "./aws-parameter-store";
|
|
import { azureClient } from "./azure";
|
|
import { dopplerClient } from "./doppler";
|
|
import { hashicorpClient } from "./hashicorp";
|
|
import { infisicalClient } from "./infisical";
|
|
import { phaseClient } from "./phase";
|
|
import { scalewayClient } from "./scaleway";
|
|
import type { VaultClient } from "./types";
|
|
|
|
export const VAULT_REF_REGEX = /\$\{\{vault\.([a-zA-Z0-9_-]+)\.([^}]+)\}\}/g;
|
|
|
|
const clients: Record<VaultProviderConfig["providerType"], VaultClient> = {
|
|
hashicorp: hashicorpClient as VaultClient,
|
|
infisical: infisicalClient as VaultClient,
|
|
aws: awsClient as VaultClient,
|
|
"aws-parameter-store": awsParameterStoreClient as VaultClient,
|
|
doppler: dopplerClient as VaultClient,
|
|
azure: azureClient as VaultClient,
|
|
scaleway: scalewayClient as VaultClient,
|
|
phase: phaseClient as VaultClient,
|
|
};
|
|
|
|
export const getVaultClient = (
|
|
providerType: VaultProviderConfig["providerType"],
|
|
) => clients[providerType];
|
|
|
|
const refKey = (providerName: string, ref: string) => `${providerName} |