UNPKG

@launchql/cli

Version:
83 lines (78 loc) 2.88 kB
"use strict"; 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; };