Files
supabase/apps/docs/internals/getSecrets.js
2023-09-14 00:12:38 +02:00

34 lines
1011 B
JavaScript

// for internal supabase use only
const fs = require('fs/promises')
const { SecretsManagerClient, GetSecretValueCommand } = require('@aws-sdk/client-secrets-manager')
const secretName = 'local/docs'
const region = 'ap-southeast-2'
const getSecrets = async (name, region) => {
try {
const secretsmanager = new SecretsManagerClient({ region })
const command = new GetSecretValueCommand({
SecretId: name,
})
const data = await secretsmanager.send(command)
if (!data.SecretString) {
throw new Error('Secrets not found')
}
return JSON.parse(data.SecretString)
} catch (err) {
console.log('Error getting secrets', err)
}
}
// gets secrets from secrets manager and writes it to .env.local file
getSecrets(secretName, region).then(async (secrets) => {
let secretContent = ''
for (const [secretKey, secretValue] of Object.entries(secrets)) {
secretContent += `${secretKey}="${secretValue}"\n`
}
await fs.writeFile('.env.local', secretContent.trim())
})