@onboardbase/cli
Version:
[](https://www.npmjs.com/package/@onboardbase/cli) [](https://www.npmjs.com/package/@onboardbase/cli) [ • 2.95 kB
JavaScript
;
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;