@launchql/cli
Version:
LaunchQL CLI
83 lines (78 loc) • 2.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@launchql/core");
const logger_1 = require("@launchql/logger");
const pg_env_1 = require("pg-env");
const log = new logger_1.Logger('admin-users-remove');
const removeUsageText = `
LaunchQL Admin Users Remove Command:
lql admin-users remove [OPTIONS]
Remove database users and revoke their LaunchQL roles.
Options:
--help, -h Show this help message
--username <username> Username for the database user to remove
--test Remove test users (app_user, app_admin)
--cwd <directory> Working directory (default: current directory)
Examples:
lql admin-users remove --username myuser
lql admin-users remove --test # Remove test users
lql admin-users remove # Will prompt for username
`;
exports.default = async (argv, prompter, _options) => {
// Show usage if explicitly requested
if (argv.help || argv.h) {
console.log(removeUsageText);
process.exit(0);
}
const pgEnv = (0, pg_env_1.getPgEnvOptions)();
const isTest = argv.test;
const init = new core_1.LaunchQLInit(pgEnv);
try {
if (isTest) {
const { yes: confirmTest } = await prompter.prompt(argv, [
{
type: 'confirm',
name: 'yes',
message: 'Are you sure you want to remove LaunchQL test users (app_user, app_admin)?',
default: false
}
]);
if (!confirmTest) {
log.info('Operation cancelled.');
return;
}
await init.removeDbRoles('app_user');
await init.removeDbRoles('app_admin');
log.success('Test users removed successfully.');
}
else {
const prompts = [
{
type: 'text',
name: 'username',
message: 'Enter username for database user to remove:',
validate: (input) => input && input.trim().length > 0
}
];
const { username } = await prompter.prompt(argv, prompts);
const { yes } = await prompter.prompt(argv, [
{
type: 'confirm',
name: 'yes',
message: `Are you sure you want to remove database user "${username}"?`,
default: false
}
]);
if (!yes) {
log.info('Operation cancelled.');
return;
}
await init.removeDbRoles(username);
log.success(`Database user "${username}" removed successfully.`);
}
}
finally {
await init.close();
}
return argv;
};
;