eip-cloud-services
Version:
Houses a collection of helpers for connecting with Cloud services.
41 lines (32 loc) • 1.27 kB
JavaScript
const { SecretsManagerClient, GetSecretValueCommand } = require ( '@aws-sdk/client-secrets-manager' );
const { writeFile, readFile } = require ( 'fs/promises' );
const os = require ( 'os' );
exports.initialiseGoogleAuth = async () => {
if ( !process.env.GOOGLE_APPLICATION_CREDENTIALS ){
try {
await readFile ( `${os.tmpdir ()}/gcp.json` );
process.env.GOOGLE_APPLICATION_CREDENTIALS = `${os.tmpdir ()}/gcp.json`;
return;
}
catch ( error ){
//file doesnt exists, so continue to create it below.
}
const secret_name = 'gcp-tmg-product-innovation-prod-all-access';
const client = new SecretsManagerClient ( { region: 'eu-west-1' } );
let response;
try {
response = await client.send (
new GetSecretValueCommand ( {
SecretId: secret_name,
VersionStage: 'AWSCURRENT'
} )
);
}
catch ( error ) {
throw error;
}
await writeFile ( `${os.tmpdir ()}/gcp.json`, response.SecretString );
process.env.GOOGLE_APPLICATION_CREDENTIALS = `${os.tmpdir ()}/gcp.json`;
}
return;
};