@valora/secrets-loader
Version:
Library for loading secrets via Google Cloud's Secrets Manager
47 lines • 1.99 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadSecret = void 0;
const secret_manager_1 = require("@google-cloud/secret-manager");
const dotenv = __importStar(require("dotenv"));
/**
* Load secrets from Google Cloud's Secret Manager
*
* If using a real service client, you'll need permissions to access the secret. You may also need
* to run `gcloud auth login` from the CLI
*
* @param name: name of secret to load
* @param client: secret manager service client
*/
async function loadSecret(name, client) {
var _a, _b;
if (!client) {
client = new secret_manager_1.SecretManagerServiceClient();
}
const [version] = await client.accessSecretVersion({ name });
const rawPayload = (_b = (_a = version === null || version === void 0 ? void 0 : version.payload) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.toString();
if (!rawPayload) {
throw new Error(`Missing value for secret ${name}`);
}
return dotenv.parse(rawPayload);
}
exports.loadSecret = loadSecret;
//# sourceMappingURL=index.js.map