From 95ec789781e2f25814d338bd21ade9c2aecdf97a Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Mon, 28 Jul 2025 15:30:16 +0400 Subject: [PATCH] feat: add support for attaching secrets to process env --- src/api/types/secrets.ts | 1 + src/custom/secrets.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/api/types/secrets.ts b/src/api/types/secrets.ts index 9afadde..477c067 100644 --- a/src/api/types/secrets.ts +++ b/src/api/types/secrets.ts @@ -108,6 +108,7 @@ export type ListSecretsOptions = { environment: string; projectId: string; expandSecretReferences?: boolean; + attachToProcessEnv?: boolean; includeImports?: boolean; recursive?: boolean; secretPath?: string; diff --git a/src/custom/secrets.ts b/src/custom/secrets.ts index 41a101d..e8090a5 100644 --- a/src/custom/secrets.ts +++ b/src/custom/secrets.ts @@ -16,7 +16,7 @@ export default class SecretsClient { listSecrets = async (options: ListSecretsOptions) => { try { - return await this.apiClient.listSecrets({ + const res = await this.apiClient.listSecrets({ workspaceId: options.projectId, environment: options.environment, expandSecretReferences: convertBool( @@ -28,6 +28,15 @@ export default class SecretsClient { tagSlugs: options.tagSlugs ? options.tagSlugs.join(",") : undefined, viewSecretValue: convertBool(options.viewSecretValue ?? true), }); + + if (options.attachToProcessEnv) { + for (const secret of res.secrets) { + process.env[secret.secretKey] = secret.secretValue; + } + } + + return res; + } catch (err) { throw newInfisicalError(err); }