@onboardbase/cli
Version:
[](https://www.npmjs.com/package/@onboardbase/cli) [](https://www.npmjs.com/package/@onboardbase/cli) [ • 3.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SecretsAccessService = void 0;
const chalk = require("chalk");
const utils_1 = require("../../utils");
const Table = require("cli-table");
const YAML = require("yaml");
const types_1 = require("../../common/types");
const base_secrets_service_1 = require("./base-secrets.service");
const errors_1 = require("../../common/errors");
class SecretsAccessService extends base_secrets_service_1.BaseSecretsAccessService {
constructor(configManager) {
super(configManager);
}
async initialize({ args, flags }) {
var _a;
const format = args.format;
const currentProject = this._getFromProjectConfigOrThrow({
userConfig: flags.project,
configPath: "setup.project",
envName: types_1.ENV_NAMES.PROJECT,
});
await this.accessManager.handleUserAdminPrivileges(currentProject);
const currentEnvironment = (_a = this._getFromProjectConfigOrThrow({
userConfig: flags.environment,
configPath: "setup.environment",
envName: types_1.ENV_NAMES.ENVIRONMENT,
})) !== null && _a !== void 0 ? _a : "development";
if (!currentProject)
throw new errors_1.BadInputError("Please specify project name");
const supportedFormats = [
"--json",
"--docker",
"--raw",
"--yaml",
"--env",
"--bash",
];
if (this._formatIsUnsupported({ format, supportedFormats })) {
const message = `${chalk.red("Onboardbase Error:")} invalid format. Valid formats are json, env, yaml, docker, raw, bash`;
throw new errors_1.BadInputError(message);
}
const mergedEnvs = await this.getMergedSecrets({
projectName: currentProject,
environmentName: currentEnvironment,
});
this._handleLoggingSecretsInDifferentFormats({ format, env: mergedEnvs });
}
_handleLoggingSecretsInDifferentFormats(input) {
const { format, env } = input;
switch (format) {
case "--bash":
this._logSecretsAsBashEnvValues(env);
break;
case "--raw":
this._logSecretsAsTable(env);
break;
case "--json":
case undefined:
this._logSecretsAsJSON(env);
break;
case "--yaml":
this._logSecretsAsYAML(env);
break;
case "--env":
case "--docker":
this._logSecretsAsEnvValues(env);
break;
}
}
_logSecretsAsBashEnvValues(env) {
let allSecrets = "";
Object.keys(env).map((secretKey) => {
allSecrets += `export ${secretKey}="${env[secretKey]}"\n`;
});
console.log(allSecrets);
}
_logSecretsAsTable(env) {
const configTableData = {
head: ["NAME", "VALUE"],
colWidths: [40, 65],
};
const configTable = new Table(configTableData);
Object.keys(env).map((secretKey) => {
configTable.push([secretKey, env[secretKey]]);
});
console.log(configTable.toString());
}
_logSecretsAsJSON(env) {
console.log(JSON.stringify(env));
}
_logSecretsAsYAML(env) {
console.log(YAML.stringify(env));
}
_logSecretsAsEnvValues(env) {
console.log((0, utils_1.parseObjectToEnv)(env));
}
_formatIsUnsupported(input) {
const { format, supportedFormats } = input;
return format && !supportedFormats.includes(format);
}
}
exports.SecretsAccessService = SecretsAccessService;