mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 19:00:38 +09:00
33 lines
886 B
TypeScript
33 lines
886 B
TypeScript
|
|
import { unprocessable } from "../errors.js";
|
||
|
|
import type { SecretProviderModule } from "./types.js";
|
||
|
|
|
||
|
|
function unavailableProvider(
|
||
|
|
id: "aws_secrets_manager" | "gcp_secret_manager" | "vault",
|
||
|
|
label: string,
|
||
|
|
): SecretProviderModule {
|
||
|
|
return {
|
||
|
|
id,
|
||
|
|
descriptor: {
|
||
|
|
id,
|
||
|
|
label,
|
||
|
|
requiresExternalRef: true,
|
||
|
|
},
|
||
|
|
async createVersion() {
|
||
|
|
throw unprocessable(`${id} provider is not configured in this deployment`);
|
||
|
|
},
|
||
|
|
async resolveVersion() {
|
||
|
|
throw unprocessable(`${id} provider is not configured in this deployment`);
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
export const awsSecretsManagerProvider = unavailableProvider(
|
||
|
|
"aws_secrets_manager",
|
||
|
|
"AWS Secrets Manager",
|
||
|
|
);
|
||
|
|
export const gcpSecretManagerProvider = unavailableProvider(
|
||
|
|
"gcp_secret_manager",
|
||
|
|
"GCP Secret Manager",
|
||
|
|
);
|
||
|
|
export const vaultProvider = unavailableProvider("vault", "HashiCorp Vault");
|