powerbi-cli
Version:
Power BI command line interface for managing Power BI Embedded workspace collections
59 lines • 2.99 kB
JavaScript
;
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