cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Import Dashboard Using Controller API and Postman Tool

Allister.Green
Creator

I am trying to export and import a dashboard using the Controller API, and using the Postman tool.

 

Ref export, I have this working OK:

  • I created an API Client with the administrator role
  • I used the Controller API with the API Client credentials to generate a Bearer Token,

https://{{controller_uri}}//controller/api/oauth/access_token

  • I successfully exported a dashboard

https://{{controller_uri}}/controller/CustomDashboardImportExportServlet?dashboardId=12355

Headers:

Authorization:Bearer {{bearer_token}}

 

 

Now when I try to import a dashboard using the API, with:

  • A new dashboard name that currently doesn’t exist,
  • Using basic authentication (my user account which also has admin access) because the import API does not support the use of the Bearer Token (open enhancement exists: Internal story ID https://jira.corp.appdynamics.com/browse/METADATA-9305).

.. I simply get a 500 response.

 

What I tried is:

Method: POST

URI: https://{{controller_uri}}/controller/CustomDashboardImportExportServlet

BODY: The json of the previously exported dashboard

Content-Type: application/json

 

As per the documentation, I also tried using CURL and it worked:

https://docs.appdynamics.com/4.5.x/en/extend-appdynamics/appdynamics-apis/configuration-import-and-e...

 

curl -X POST --user Allister.Green@RSAGroup:<pw> https://<domain uri>/controller/CustomDashboardImportExportServlet -F file=@dashboard.json

 

Because the curl example uses a file, I also tried using a file with Postman instead of using the dashboard json as the message body, but this also generated a 500 response.

To use a file:

Body: form-data

KEY: file, VALUE: <filename>, CONTENT TYPE application/json

 

Has anyone got dashboard imports working using Postman, and if so, please can you share how.

Thanks,

Allister.

2 REPLIES 2

Ryan.Paredez
Community Manager

Hi @Allister.Green,

 

I see you ended up creating a Support ticket. Can you please share your results as a reply to this post. 

 

Knowledge sharing is key to this community.

 


Thanks,

Ryan, Cisco AppDynamics Community Manager




Found something helpful? Click the Accept as Solution button to help others find answers faster.

Liked something? Click the Thumbs Up button.



Check out Observabiity in Action

new deep dive videos weekly in the Knowledge Base.

Thanks for the prompt Ryan.

 

I wasn't able to get the dashboard import working using Postman.

 

But... I was able to get it to work using Fiddler.

 

Method: POST

URI: https://<controller domain>/controller/CustomDashboardImportExportServlet

Header: Authorization: Basic QWxsaXN0ZXxxxxxxxxxxxxxxx

Body:

Click on “upload file” and select the json file containing the dashboard. Note it is not possible to use JSON directly as the message body.

 

AllisterGreen_0-1630420467857.png

 

To generate the Authorization header:

 

Create string: <user name>@<tenant>:<user password>

Then base 64 encode this using your tool of choice.

e.g. if using Notepad++

select the text

Plugins -> MIME Toools -> Base64 Encode

 

Then the header is simply:

Authorization: Basic <base64 encoded string>