@onboardbase/cli
Version:
[](https://www.npmjs.com/package/@onboardbase/cli) [](https://www.npmjs.com/package/@onboardbase/cli) [ • 3.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SecretsDownloadService = void 0;
const chalk = require("chalk");
const utils_1 = require("../../../utils");
const fs_1 = require("fs");
const YAML = require("yaml");
const path_1 = require("path");
const base_secrets_service_1 = require("../base-secrets.service");
const errors_1 = require("../../../common/errors");
const types_1 = require("../../../common/types");
class SecretsDownloadService extends base_secrets_service_1.BaseSecretsAccessService {
constructor(configManager) {
super(configManager);
}
async initialize({ args, flags }) {
const format = args.format;
const { currentProject, currentEnvironment } = this._handleGetProjectAndEnvironment(flags);
await this.accessManager.handleUserAdminPrivileges(currentProject);
const supportedFormats = ["--json", "--docker", "--yaml", "--env"];
if (format && !supportedFormats.includes(format)) {
console.error(`${chalk.red("Onboardbase Error:")} invalid format. Valid formats are json, env, yaml, docker`);
throw new errors_1.BadInputError("Invalid format");
}
const cliToken = this._getFromGlobalConfigOrThrow({
configPath: "token",
envName: types_1.ENV_NAMES.TOKEN,
});
const { env } = await (0, utils_1.downloadSecrets)(currentProject, currentEnvironment, String(Date.now()), true, false, false, false, "", cliToken);
switch (format) {
case undefined:
case "--json":
this._saveSecretsAsJSONFile(env, flags);
break;
case "--yaml":
this._saveSecretsAsYAMLFile(env, flags);
break;
case "--env":
case "--docker":
this._saveSecretsAsEnvFile(env, flags);
break;
}
}
_saveSecretsAsJSONFile(env, flags) {
const data = JSON.stringify(env);
if (flags["no-file"]) {
console.log(data);
}
else {
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), "onboardbase.json"), data, {
encoding: "utf8",
});
console.log("Downloaded secrets to onboardbase.json");
}
}
_saveSecretsAsYAMLFile(env, flags) {
const data = YAML.stringify(env);
if (flags["no-file"]) {
console.log(data);
}
else {
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), "secrets.yaml"), data, {
encoding: "utf8",
});
console.log("Downloaded secrets to secrets.yaml");
}
}
_saveSecretsAsEnvFile(env, flags) {
const data = (0, utils_1.parseObjectToEnv)(env);
if (flags["no-file"]) {
console.log(data);
}
else {
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), "onboardbase.env"), data, {
encoding: "utf8",
});
console.log("Downloaded secrets to onboardbase.env");
}
}
}
exports.SecretsDownloadService = SecretsDownloadService;