powerbi-cli
Version:
Power BI command line interface for managing Power BI Embedded workspace collections
58 lines • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var powerbi = require("powerbi-api");
var cli_1 = require("./cli");
var config_1 = require("./config");
var program = require("commander");
function CliCreateEmbedToken() {
var pkg = require('../package.json');
function list(val) {
return val.split(',');
}
program.version(pkg.version)
.option('-c, --collection <collection>', 'The Power BI workspace collection')
.option('-k, --accessKey <accessKey>', 'The Power BI workspace collection access key')
.option('-w, --workspace <workspaceId>', 'The Power BI workspace id')
.option('-r, --report <reportId>', 'The Power BI report id')
.option('-d, --dataset <datasetId>', 'The Power BI dataset id')
.option('-s, --scopes [scopes]', 'The permission scopes allowed')
.option('-u, --username [username]', 'The RLS username')
.option('--roles [roles]', 'The RLS roles', list)
.option('-e, --expiration <expiration>', 'The token expiration date');
program.on('--help', function () {
console.log(' Examples:');
console.log('');
console.log(' $ powerbi create-embed-token -c <collection>, -w <workspace> -r <reportId> -k <accessKey> -u [username] --roles [roles1,roles2,...]');
console.log(' $ powerbi create-embed-token -c <collection>, -w <workspace> -r <reportId> -k <accessKey> -s [scopes]');
console.log(' $ powerbi create-embed-token -c <collection>, -w <workspace> -d <datasetId> -k <accessKey> -s [scopes]');
console.log(' Create report in embedded view needs the following scopes: "Dataset.Read Workspace.Report.Create"');
});
program.parse(process.argv);
var settings = config_1.Config.merge(program);
if (!(settings.collection && settings.accessKey)) {
program.help();
}
else {
try {
var token = null;
if (!settings.accessKey) {
return cli_1.Cli.error('Access key param is required');
}
if (!(settings.collection && settings.workspace)) {
return cli_1.Cli.error('collection and workspace params are required');
}
if (!(settings.report || settings.dataset)) {
return cli_1.Cli.error('Either reportId or datasetId must be set');
}
var expiration = settings.expiration ? new Date(settings.expiration) : void 0;
token = powerbi.PowerBIToken.createReportEmbedToken(settings.collection, settings.workspace, settings.report, settings.dataset, settings.scopes, settings.username, settings.roles, expiration);
var jwt = token.generate(settings.accessKey);
cli_1.Cli.success('Embed Token: ', jwt);
}
catch (err) {
cli_1.Cli.error(err);
}
}
}
exports.default = CliCreateEmbedToken;
//# sourceMappingURL=cli-create-embed-token.js.map