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
Expected parameters
organisationLongName
organisationShortName
organisationId
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