UNPKG

eip-cloud-services

Version:

Houses a collection of helpers for connecting with Cloud services.

41 lines (32 loc) 1.27 kB
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; };