This demonstrates the App Owns Data (3rd party embedding) approach.
Demo uses the Power BI Sample Procurement Analysis report from the Power BI sample gallery (Get data).
Publish to App Workspace, not My Workspace, this is important. It should be the only report in your App Workspace, otherwise you'll need to change the backend to return its index from the result array.
Material Design controls borrowed from Creative Tim.
TODO: Swap Material Design for Fluent Design System (Project Neon).
You can test drive the demo here: http://powerbi-static-frontend.azurewebsites.net/
Demo is broken once again, because demo things expire. Maybe one day... one day.
Original contributors (Microsoft):
- Andrey Vykhodtsev - https://github.com/vykhand
- Adrian Calinescu - https://github.com/snobu
Community contributors (thank you!):
- Florian Schäffler - https://github.com/fschaeffler
Pull Requests are more than welcome.
backend-as-func
C# HTTP Trigger Azure Function acting as backend (returns embed token).
Needs some hacking as it can only handle 1st report in a given workspace by ID
root dir
A Flask application containing both frontend and backend (in Python this time):
- Copy
config.template.yml
toconfig.yml
and add your secrets - to run app locally with Flask, just run
python app.py
- to run your app locally as a docker container, run
python util.py run_docker
- To publish your app to Azure App Service (linux Web App as docker container), run
python util.py create_app
orpython util.py create_app --dry
to just print the commands - to delete your app, run
python util.py delete_app
Last frame of this GIF is conviniently provided as PNG.
Slide borrowed from this highly recommended video on v2 embedding -
What's new 20.09.2017
- Configuration is done via yaml file config.yml. It must be copied from config.template.yml.
config.yml
is ignored by git and docker - Configuration takes report name and workspace name
- Added some python scripts to automate tasks, see util.py
- Run docker locally
python util.py run_docker
- Set env variables from yaml file
python util.py setenv
- Create web app
python util.py create_app [-d|--dry]
- Delete web app
python util.py delete_app