@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
30 lines • 834 B
JavaScript
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';
export default (name, value, project = 'puls-atlas-core') => {
const client = new SecretManagerServiceClient();
return client.getSecret({
name: `projects/${project}/secrets/${name}`
}).then(() => {
throw new Error(`Secret ${name} already exists`);
}).catch(async error => {
if (error.code === 5) {
const payload = Buffer.from(value, 'utf8');
const [secret] = await client.createSecret({
parent: `projects/${project}`,
secretId: name,
secret: {
replication: {
automatic: {}
}
}
});
await client.addSecretVersion({
parent: secret.name,
payload: {
data: payload
}
});
} else {
throw error;
}
});
};