This contract is currently in the Proof-of-concept stage and still subject to change
Introduction
To expose Reporting services to our system, we need an API to be exposed for the MediaHaven installation. When creating new Module Plugins having of the following Plugin Category:
Business Intelligence
then MediaHaven will connect to this plugin using REST API calls, which must implement the following methods depending on the category.
Methods
GET /reports BUSINESS INTELLIGENCE
Return a list of report URLs, they MUST be embeddable. Meaning those URLs can be safely embed into a 3rd party website (=MediaHaven FrontEnd in this case)
Example and reference, please see metabase’s static embedding, which utilize JWT signing to defend against 3rd party website tamper with the embedded URL’s path parameter
Optional parameters
collection
filter.organisation_long_name
filter.organisation_short_name
filter.organisation_id
filter.* parameters are parameters that should be handled by the reports as fixed filter parameters.
collection is a parameter to filter reports by a group/collection.
Expected headers
x-api-key: <reporting engine api key>
Output
[ { "EmbedUrl": "https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjEsInBhcmFtZXRlcnMiOnt9fSwiZXhwIjoxNzMwMjcxODA4fQ.dMXAfLJjNx-Pf_c_5yz4NFi-Xp7JWZGvM6Oe1-5GYOg#bordered=true&titled=true', 'https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjUsInBhcmFtZXRlcnMiOnt9fSwiZXhwIjoxNzMwMjcxODA4fQ.TCmK6WP8CoIWcxloiqFV4m5pfOoPlOC_Jqw_3F6o4IU#bordered=true&titled=true', 'https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjQsInBhcmFtZXRlcnMiOnt9fSwiZXhwIjoxNzMwMjcxODA4fQ.hMBWYw-xEg5Az_v9MqkY69WU7eWBieCI3ApX369y_Dk#bordered=true&titled=true', 'https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjcsInBhcmFtZXRlcnMiOnt9fSwiZXhwIjoxNzMwMjcxODA4fQ.tiy1-p1gVGK5QI1PfY1WezH1oIgviU6dVEAtYgkWXPM#bordered=true&titled=true', 'https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjksInBhcmFtZXRlcnMiOnt9fSwiZXhwIjoxNzMwMjcxODA4fQ.N3TCom8_zrSONVOWQqdKA_kpYsmepBHs_GDzazoPYHM#bordered=true&titled=true', 'https://mh-dev.mediahaven.com/reporting/embed/dashboard/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjEwLCJwYXJhbWV0ZXJzIjp7fX0sImV4cCI6MTczMDI3MTgwOH0.ja7zTH99_PPaYdrAIyLiHjNVXVnUBGCDLgBrNZAEgVg#bordered=true&titled=true", "Id": 123, "Label": "My report", "Collection": "Collection" "Params" : [ { "Id" : 123, "Label" : "label", "Type" : "Type" } ] } ]
GET /reports/:id
Return a specific report