Sonatype Data Backup - Sonatype Lifecycle & Repository Firewall - Sonatype Community
Sonatype Data Backup
post by srayate on Jan 10, 2020
Sukrut Rayate
Hi All,
Is there a way to take all application data backup (Generate pdf option in Application report) via single click/run instead of downloading all applications pdf individually.
Thanks in advance!
post by andres on Jan 10, 2020
Andrés Pérez
Welcome to the Community, Sukrut!
There is no single-click solution, but you can make use of our REST API to get the PDF download URL. The endpoints you need are:
Specifically, follow these steps:
- Get a list of all of the applications in your IQ server with an HTTP GET to
/api/v2/applications - For each application, use its internal ID to get their reports with an HTTP GET to
/api/v2/reports/applications/{applicationInternalid}
You will get an array with one report object for each stage (build, stage-release, release) which will look a bit like this:
[ {
“stage”: “build”,
“applicationId”: “4537e6fe68c24dd5ac83efd97d4fc2f4”,
“evaluationDate”: “2015-01-16T13:14:32.139-05:00”,
“latestReportHtmlUrl”: “ui/links/application/Test123/latestReport/build”,
“reportHtmlUrl”: “ui/links/application/Test123/report/474ca07881554f8fbec168ec25d9616a”,
“embeddableReportHtmlUrl”: “ui/links/application/Test123/report/474ca07881554f8fbec168ec25d9616a/embeddable”,
“reportPdfUrl”: “ui/links/application/Test123/report/474ca07881554f8fbec168ec25d9616a/pdf”,
“reportDataUrl”: “api/v2/applications/Test123/reports/474ca07881554f8fbec168ec25d9616a”
} ]
You want reportPdfUrl to get the URL you want, and then download the PDF.
There is also a community-supported go library which can ease some of this effort:
Specifically, the GetAllReports(iq nexusiq.IQ) method will just give you a list of all reports in your IQ instance. You can then use the ReportPdfURL field to download the PDFs.
Edit: I went ahead and created a simple go app which uses the gonexus library to download all PDFs.
Here is the gist: