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

68 lines (67 loc) 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecretsUploadService = void 0; const chalk = require("chalk"); const utils_1 = require("../../../utils"); const base_secrets_service_1 = require("../base-secrets.service"); const uploadSecretsActionTypes_enum_1 = require("../../../enums/uploadSecretsActionTypes.enum"); const errors_1 = require("../../../common/errors"); const types_1 = require("../../../common/types"); class SecretsUploadService extends base_secrets_service_1.BaseSecretsAccessService { constructor(configManager) { super(configManager); } async initialize({ args, flags }) { var _a; const { currentProject, currentEnvironment } = this._handleGetProjectAndEnvironment(flags); await this.accessManager.handleUserAdminPrivileges(currentProject); const secrets = (_a = flags === null || flags === void 0 ? void 0 : flags.secrets) !== null && _a !== void 0 ? _a : args === null || args === void 0 ? void 0 : args.secrets; if (!secrets) throw new errors_1.BadInputError("Please specify a secret to upload"); let parsedJSON = {}; if (flags.secrets) { parsedJSON = utils_1.SecretParser.ParseKeyValueSecrets(secrets); } if (args.secrets) { try { parsedJSON = JSON.parse(secrets); } catch (error) { console.error(chalk.red("Invalid JSON.. please check your JSON and try again")); } } const cliToken = this._getFromGlobalConfigOrThrow({ configPath: "token", envName: types_1.ENV_NAMES.TOKEN, }); await (0, utils_1.uploadSecretsToOnboardbase)(currentProject, currentEnvironment, parsedJSON, cliToken, [], uploadSecretsActionTypes_enum_1.UploadSecretsActionTypes.CREATE); console.log(chalk.greenBright("Secrets uploaded successfully.")); } /** * Parses the given secrets string into key-value pairs. * @param secrets - The secrets string to parse. * @returns An object containing the parsed key-value pairs. * @throws Error if a value is not specified for a key. * @example secrets = "key1=value1 key2=value2" * @example returned object: * { * KEY1: "value * KEY2: "value2" * } */ _parseKeyValueSecrets(secrets) { const parsedJSON = {}; const newEnvs = secrets.split(" "); newEnvs.map((keyAndValue) => { const splittedKeyAndValue = keyAndValue.split("="); const key = splittedKeyAndValue[0].toUpperCase(); const value = splittedKeyAndValue[1]; if (!value) { throw new Error(`value for ${chalk.greenBright.bold(key)} was not specified.`); } parsedJSON[key] = value; }); return parsedJSON; } } exports.SecretsUploadService = SecretsUploadService;