UNPKG

powerbi-cli

Version:

Power BI command line interface for managing Power BI Embedded workspace collections

59 lines 2.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var powerbi = require("powerbi-api"); var msrest = require("ms-rest"); var cli_1 = require("./cli"); var config_1 = require("./config"); var program = require("commander"); function CliCloneReprot() { var pkg = require('../package.json'); program.version(pkg.version) .option('-c, --collection <collection>', 'The Power BI workspace collection') .option('-w, --workspace <workspace>', 'The Power BI workspace') .option('-r, --report <reportKey>', 'The report to clone') .option('-k, --accessKey <accessKey>', 'The Power BI workspace collection access key') .option('-n, --newName <newName>', 'The new report name') .option('-t, --tworkspace [targetWorkspace]', 'New target workspace to save report in. default is original report workspace.') .option('-d, --tdataset [targetDatasetKey]', 'New target dataset to rebind report with. default is original report dataset.') .option('-b --baseUri [baseUri]', 'The base uri to connect to'); program.on('--help', function () { console.log(' Description:'); console.log(''); console.log(' Clones a report and gives name to new report.'); console.log(' Assign target workspace to save the new report in a specific workspace.'); console.log(' Assign target dataset to rebind the new report with a specific dataset.'); console.log(' When moving between workspaces, the dataset has to reside within the targeted workspace.'); console.log(''); console.log(' Examples:'); console.log(''); console.log(' $ powerbi clone-report -c <collection> -w <workspace> -k <accessKey> -r <report> -n <newName>'); }); program.parse(process.argv); var settings = config_1.Config.merge(program); if (!(settings.collection && settings.accessKey && settings.workspace && settings.report && settings.newName)) { program.help(); } try { var credentials = new msrest.TokenCredentials(settings.accessKey, 'AppKey'); var client = new powerbi.PowerBIClient(credentials, settings.baseUri, null); var params = { name: settings.newName, targetWorkspaceId: settings.tworkspace, targetModelId: settings.tdataset }; client.reports.cloneReport(settings.collection, settings.workspace, settings.report, params, function (err, result) { if (err) { return cli_1.Cli.error(err); } cli_1.Cli.print('New report ID: %s', result.id); cli_1.Cli.print('Name: %s', result.name); cli_1.Cli.print('EmbedUrl: %s', result.embedUrl); cli_1.Cli.success('Clone report has been completed successfully'); }); } catch (err) { cli_1.Cli.error(err); } } exports.default = CliCloneReprot; //# sourceMappingURL=cli-clone-report.js.map