UNPKG

@mvp-rockets/namma-generator

Version:

A generator to generate mvp-rockets projects

40 lines (37 loc) 1.48 kB
const fs = require('fs').promises; const { SecretManagerServiceClient } = require('@google-cloud/secret-manager'); const { GoogleAuth } = require('google-auth-library'); const config = require('./config/config.js'); const perform = async () => { try { async function listSecrets() { // Create a client for the Secret Manager API const client = new SecretManagerServiceClient(); // Load the service account key file const auth = new GoogleAuth({ keyFile: config.serviceProviderConfig.gcp.keyFile }); // Get the project ID from the environment variable const projectId = config.serviceProviderConfig.gcp.projectName; // Build the parent resource name const parent = `projects/${projectId}`; // Call the API to list the secrets in the project const [secrets] = await client.listSecrets({ parent }); let secretsString = ''; for (const secret of secrets) { const [version] = await client.accessSecretVersion({ name: secret.name + '/versions/latest' }); secretsString += `${secret.name.split('/')[secret.name.split('/').length - 1]}=${version.payload.data.toString()}\n`; } await fs.writeFile(`env/.env.${process.env.NODE_ENV}`, secretsString); await fs.writeFile('.env', secretsString); process.exit(0); } listSecrets(); } catch (error) { console.error('error from gcp secret', err); process.exit(1); } }; perform();