UNPKG

@onboardbase/cli

Version:

[![Version](https://img.shields.io/npm/v/@onboardbase/cli.svg)](https://www.npmjs.com/package/@onboardbase/cli) [![Downloads/week](https://img.shields.io/npm/dw/@onboardbase/cli.svg)](https://www.npmjs.com/package/@onboardbase/cli) [![License](https://img

82 lines (81 loc) 3.19 kB
"use strict"; 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;