This commit is contained in:
bkellam 2025-11-01 21:55:12 -07:00
parent 83164f4cfe
commit 3bd6b6e1de

View file

@ -1,5 +1,5 @@
import { Token } from "@sourcebot/schemas/v3/shared.type";
import { SecretManagerServiceClient } from "@google-cloud/secret-manager"; import { SecretManagerServiceClient } from "@google-cloud/secret-manager";
import { Token } from "@sourcebot/schemas/v3/shared.type";
export const getTokenFromConfig = async (token: Token): Promise<string> => { export const getTokenFromConfig = async (token: Token): Promise<string> => {
if ('env' in token) { if ('env' in token) {
@ -10,6 +10,7 @@ export const getTokenFromConfig = async (token: Token): Promise<string> => {
return envToken; return envToken;
} else if ('googleCloudSecret' in token) { } else if ('googleCloudSecret' in token) {
try {
const client = new SecretManagerServiceClient(); const client = new SecretManagerServiceClient();
const [response] = await client.accessSecretVersion({ const [response] = await client.accessSecretVersion({
name: token.googleCloudSecret, name: token.googleCloudSecret,
@ -20,6 +21,9 @@ export const getTokenFromConfig = async (token: Token): Promise<string> => {
} }
return response.payload.data.toString(); return response.payload.data.toString();
} catch (error) {
throw new Error(`Failed to access Google Cloud secret ${token.googleCloudSecret}: ${error instanceof Error ? error.message : String(error)}`);
}
} else { } else {
throw new Error('Invalid token configuration'); throw new Error('Invalid token configuration');
} }