API Αναφορών SonarQube και Webhooks
Αυτό το άρθρο περιγράφει πώς να έχετε προγραμματισμένη πρόσβαση στις αναφορές ασφαλείας SonarQube που αποθηκεύονται στην πλατφόρμα Procurize. Καλύπτει το REST API για λίστα και λήψη αναφορών, λήψη αρχείων αναφοράς και εγγραφή σε ειδοποιήσεις webhook όταν νέες αναφορές εισαχθούν.
Επισκόπηση
Το υπομοντέλο Αναφορών SonarQube επιτρέπει σε οργανισμούς να αποθηκεύουν κεντρικά και να διαχειρίζονται τις αναφορές ασφαλείας και ποιότητας κώδικα που δημιουργούνται από το SonarQube. Η πλατφόρμα Procurize εκθέτει αυτά τα δεδομένα μέσω:
- Ένα REST API για την ανάκτηση μεταδεδομένων σχετικά με τις αποθηκευμένες αναφορές
- Ένα endpoint για λήψη των αρχείων αναφοράς ως αρχεία ZIP
- Webhooks για ειδοποιήσεις σχεδόν σε πραγματικό χρόνο όταν νέες αναφορές καθίστανται διαθέσιμες
Αυτές οι δυνατότητες επιτρέπουν ενσωματώσεις με pipelines CI/CD, συστήματα GRC, εσωτερικούς πίνακες ελέγχου και εργαλεία διαχείρισης κινδύνου τρίτων.
Αυθεντία και Εξουσιοδότηση
Όλα τα αιτήματα API που περιγράφονται σε αυτό το άρθρο δεν απαιτούν αυθεντία.
ID Οργανισμού
Απαιτείται ID οργανισμού για όλα τα αιτήματα που περιγράφονται εδώ.
Μπορείτε να το βρείτε στον πίνακα ρυθμίσεων του Οργανισμού στη διεύθυνση https://dashboard.procurize.ai.
Παρακαλούμε σημειώστε ότι η πρόσβαση στον πίνακα ρυθμίσεων απαιτεί εξουσιοδότηση, και η πρόσβαση στον πίνακα ρυθμίσεων του οργανισμού απαιτεί ρόλο χρήστη τουλάχιστον Διαχειριστής σε αυτόν τον οργανισμό.

Βασικό URL
Όλα τα endpoints του REST API εξυπηρετούνται κάτω από το ακόλουθο βασικό URL:
https://api.procurize.com
REST API Αναφορών SonarQube
Λίστα Αναφορών
Ανακτά μια σελίδωση λίστας των αναφορών ασφαλείας SonarQube που αποθηκεύονται στην πλατφόρμα.
Endpoint
GET /security/report/list
Παράμετροι Ερωτήματος
org(απαιτείται): ID οργανισμού.version(προαιρετικό): Η ακριβής έκδοση των προϊόντων στη μορφή Semantic Versioning.minver(προαιρετικό): Η ελάχιστη έκδοση των προϊόντων στη μορφή Semantic Versioning.maxver(προαιρετικό): Η μέγιστη έκδοση των προϊόντων στη μορφή Semantic Versioning.
Παρακαλούμε σημειώστε ότι απαιτείται τουλάχιστον μία από τις παραμέτρους version, minver ή maxver για το αίτημα.
Παράδειγμα Αιτήματος
curl "https://api.procurize.com/security/report/list?org=00000000-0000-0000-0000-000000000001&version=1.0"
Παράδειγμα Απάντησης
{
"organizationId": "00000000-0000-0000-0000-000000000001",
"reports": [
{
"projectName": "Test product",
"id": "00000000-0000-0000-0000-000000000002",
"reportType": "CWE Top 25",
"reportVersion": 2024,
"projectVersion": "1.0",
"date": "2025-12-17T09:05:48.5946432+00:00",
"uploadDate": "2025-12-17T09:05:48.5946432+00:00",
"vulnerabilitiesCount": 0,
"securityRating": "A"
}
]
}
Λήψη Αρχείου Αναφοράς
Κατεβάζει ένα αρχείο ZIP που περιέχει τα πλήρη αρχεία της αναφοράς SonarQube. Το αρχείο περιλαμβάνει αναφορές HTML και PDF.
Endpoint
GET /security/report/files
org(απαιτείται): ID οργανισμού.reports(απαιτείται): Πίνακας με IDs αναφορών.
Παράδειγμα Αιτήματος
curl "https://api.procurize.com/security/report/files?org=00000000-0000-0000-0000-000000000001&reports=00000000-0000-0000-0000-000000000002&reports=00000000-0000-0000-0000-000000000003"
Απάντηση
- Content-Type:
application/zip - Το σώμα της απόκρισης περιέχει το δυαδικό αρχείο ZIP
Οι πελάτες θα πρέπει να διαβάζουν τη ροή της απόκρισης και να το αποθηκεύουν στο δίσκο.
Διαχείριση Σφαλμάτων
Το API χρησιμοποιεί τα πρότυπα κωδικούς κατάστασης HTTP.
200 OK: Αίτημα επιτυχές204 No Content: Η αναφορά δεν υπάρχει400 Bad Request: Μη έγκυρες παράμετροι ή λανθασμένο αίτημα500 Internal Server Error: Απρόσμενο σφάλμα διακομιστή
Οι αποκρίσεις σφαλμάτων περιλαμβάνουν κωδικό σφάλματος αναγνώσιμο από μηχανή και μήνυμα αναγνώσιμο από άνθρωπο.
Webhooks
Τα webhooks της Procurize επιτρέπουν σε εξωτερικά συστήματα να λαμβάνουν ειδοποιήσεις όταν νέες αναφορές SonarQube εισαχθούν ή ενημερωθούν.
Παραμετροποίηση webhooks
Τα webhooks μπορούν να προστεθούν ή να επεξεργαστούν στον πίνακα ρυθμίσεων του Οργανισμού, στην ενότητα Αναφορές ασφαλείας στη διεύθυνση https://dashboard.procurize.ai.
Παρακαλούμε σημειώστε ότι η πρόσβαση στον πίνακα ρυθμίσεων απαιτεί εξουσιοδότηση, και η πρόσβαση στον πίνακα ρυθμίσεων του οργανισμού απαιτεί ρόλο χρήστη τουλάχιστον Διαχειριστής σε αυτόν τον οργανισμό.

Για έλεγχο webhooks, μπορείτε να χρησιμοποιήσετε δημοφιλείς διαδικτυακές υπηρεσίες όπως https://webhook-test.com
Φορτίο Webhook
Τα γεγονότα webhook αποστέλλονται ως αιτήματα HTTP POST με φορτίο JSON.
Παράδειγμα Φορτίου
{
"organizationId": "00000000-0000-0000-0000-000000000001",
"reports": [
{
"projectName": "Test product",
"id": "00000000-0000-0000-0000-000000000002",
"reportType": "CWE Top 25",
"reportVersion": 2024,
"projectVersion": "1.0",
"date": "2025-12-17T09:05:48.5946432+00:00",
"uploadDate": "2025-12-17T09:05:48.5946432+00:00",
"vulnerabilitiesCount": 0,
"securityRating": "A"
}
]
}
Ασφάλεια Webhook
Για να εξασφαλιστεί η αυθεντικότητα, τα αιτήματα webhook περιλαμβάνουν μια κεφαλίδα υπογραφής που δημιουργείται με κοινό μυστικό.
- Η υπογραφή υπολογίζεται με HMAC-SHA256
- Οι πελάτες πρέπει να επαληθεύσουν την υπογραφή πριν επεξεργαστούν το φορτίο
Αυτό αποτρέπει μη εξουσιοδοτημένες ή πλαστές παραδόσεις webhook.
Παράδοση και Επανάληψη
- Τα webhooks θεωρούνται επιτυχώς παραδοθέντα όταν λαμβάνουν απόκριση
2xx - Αποτυχημένες παραγγελίες επαναλαμβάνονται αυτόματα κάθε ώρα.
- Τα γεγονότα μπορεί να παραδοθούν περισσότερες από μία φορές· οι καταναλωτές πρέπει να υλοποιούν επεξεργασία αμεταβλητότητας
Τυπικές Περιπτώσεις Χρήσης
- Αυτόματη εισαγωγή ευρημάτων SonarQube σε εσωτερικούς πίνακες ασφαλείας
- Έναρξη διαδικασιών συμμόρφωσης όταν αποτύχουν οι πύλες ποιότητας
- Αρχειοθέτηση αναφορών ασφαλείας για ελέγχους και αξιολογήσεις κινδύνου προμηθευτών
- Συγχρονισμός συστημάτων τρίτων με την πιο πρόσφατη κατάσταση ασφαλείας του κώδικα
