Programatically view the number of PowerBI licences - sql-server

I've tried searching for either a REST Api or powershell cmdlet that will tell me the number of powerbi licences we have.
I know I can view this in the Azure Portal or in the Microsoft 365 Admin centre but I want to be able to programatically get the data.

Rui Romano's PBI Monitor gathers this data and a whole lot more. So you can implement that, or refer to how it gets this data from the Microsoft Graph in Fetch Graph.ps1.

Related

Pulling data from sharepoint site analytics

I am looking to pull site usage data from sharepoint such as daily users, click through rate, which parts of the site they are using the most, which links they are using the most, which documents are being opening the most. Is there a way to do this through excel, any programs, etc. I have been looking at Power BI, Excel, Power Query, etc. I haven't found a way to pull the data from sharepoint analytics itself though.
I am looking to pull data from the sharepoint site and display it as a chart, a Pareto chart for example.
1.The current situation that the site usage analysis page can export:
Site owners can export the 90-days site usage data in an excel file by going to the download button in the upper right corner on site usage page. Report on unique viewers, site visits, popular platforms and site traffic. For popular content on the site (news posts, documents and pages) the report will be for last 7 days.
excel_example
2.I've also tried getting data from the web in Excel, but it doesn't work. There is currently only one connector between site usage and PowerBI.
I tracked down a published post in UserVoice: Export to Excel on Site usage. You can vote and comment anytime.
3.You might try using the Office 365 Admin API to use, retrieve and store the data in a database, and then report on it with PowerBI. This requires registering with Azure AD and give it permissions to the API.
Reference: Office 365 Management Activity API reference

exporting data for analytics use in SaaS

We are a SaaS product and we would like to be able have per-user data exports that will be used with various analytical (BI) tools like Tableau or PowerBI. Instead of just managing all those exports manually, we thought of using some cloud database such as AWS Redshift (which will be part of our service). But then, it is not clear how is user will access those databases naturally, unless we do some kind of SSO integration with AWS.
So - what is the best practice for exporting data for analytics use in SaaS products?
In this case you can build your security in to your backend API layer.
First you can set up processes to load your data to Redshift, then make sure that only your backend API server/cluster has access to redshift (e.g. through a vpc with no external ip access to redshift)
Now you have your data, you can validate your user as usual through your backend service, then when a user requests a download through the backend API, the backend can create a query to extract from redshift only the correct data based upon the users security role. In order to make this possible you may need to build some kind of security column into your redshift data model.
I am assuming getting data to redshift is not a problem.
What you are looking for, if I understand correctly is a OEM solutions.
The problem is how does one mimic the security model you have in place for your SaaS offering.
That depends on how complex is your security model.
If it is as simple as just authenticate the user and he has access to all tenant data or the data can be easily filtered for user. Things are simple for you. Trusted authentication will allow you to authenticate that user and user filtering will allow you to show him all that he has access to.
But here is the kicker, if your security is really complex , then it can become really difficult to mimic it within these products.
Here for integrating tableau this link will help:-
https://tableau.github.io/embedding-playbook/#
Power BI, this product am not a fan off. I tried to embed a view in one my applications and data refresh was a big issue.
Its almost like they want you to be a azure shop for real time reporting.( I like GCP more )
If you create the api's and populate datasets then they have crazy restrictions like 1MB/sec etc.
On the other instances datasets can be refreshed only 8 times.
I gave up on them.
Very recently I got a call from Sisense and they seemed promising as well from a OEM perspective. You might was to try them.

real time monitoring graph using google data studio

I know that it is possible to create dashboards using data studio from various data sources. My question is whether is it possible to visualize a real time data graph using data studio, as in case of data coming from IoT devices?
EDITED
I am uploading a file from my local machine now. So I think now it's not possible to visualize the changes in the data studio if I change any data within my machine.
What I am asking is however is that, is it possible to visualize any changes occured in a google sheet in data studio in real time. Say that I changed or added some new data rows into my google sheet, is it possible in data studio to see those changes in real time?
Yes, it is possible with implementing custom script for refreshing the reports.
I'm feeding in a sheet that is using data supplied by the Google Sheets Google analytics plug-in, and that is definitely updating in Data Studio as the Google sheets report updates.
Data Studio currently does not support automatic real time updates / streaming data. After you open a dashboard, the only way to re-fetch the data is to use the dashboard's refresh feature.
If you require real time updates in your dashboard, please put in feature requests / vote for them in the issue tracker.
Edit: There is a third party Chrome extension that lets users auto refresh dashboards (does not work with Viewer credentials).

Office 365 API to detect when office app is launched

I'm trying to figure out if there is a way to detect when a user launches one of the Office apps (Word, Excel, PowerPoint, OneNote, OneDrive, etc) so that I can add logic to perform some tasks if it's the first time the user has launched that particular Office app.
I was hoping the Microsoft Graph API would help me with this, but I can't find any guidance on how to do this. Is there a way to do this either with notifications or by polling/querying the API?
The closest thing to what you're asking for is Azure AD Reporting API for Sign-in activity:
https://learn.microsoft.com/en-us/azure/active-directory/active-directory-reporting-api-sign-in-activity-reference
Note that, at this time, this is only available in the Azure AD Graph, not the Microsoft Graph.
https://graph.windows.net/contoso.com/activities/signinEvents?api-version=beta
You can filter by user and/or appDisplayName.
https://graph.windows.net/contoso.com/activities/signinEvents?api-version=beta&$filter=appDisplayName eq 'Office 365'
Doing some quick testing by launching the Office Portal, Outlook, Sharepoint, etc, I saw the following entries:
Office 365
O365 Suite UX
Office 365 Exchange Online
Office.com
Office 365 SharePoint Online
Skype Web Experience On Office 365
You'll need to do some experimentation to see if you can see entries for everything your interested in. I don't think you'll get entries down to the granularity level you seem to be interested (Word, Excel, PowerPoint).

hiding report structure in SSRS

I am using Visual Studio 2010 to design SSRS reports.
The report is successfully published and will have a link such as below:
http://hostname/ReportServer/Pages/ReportViewer.aspx?%Reports%2fDistributed&rs:Command=Render&rp_db_catalog=ts
Now when the user goes to the link,
http://hostname/ReportServer
it will show them the rest of the reports available which is a security concern.
Is there a way to hide the report structure from the user?
Thanks,
Bruce
I don't think you can "hide" it, nor should you. You'll need to use another method to secure your reports. Here are a few options:
Secure within the web frontend you're currently using. You'll need to set up user accounts and roles, and permissions for folders. Here's the MSDN starting point, from there you can get to securing folders.
Deliver your reports through Sharepoint, see this bit of MSDN for a starting point.
Integrate ssrs in your application e.g. using the SOAP webservices, an asp.net or winforms app, or through URL access (that last option may even be quite close to what you want).

Resources