digna REST API 2026.11¶
Το REST API του digna επιτρέπει στα δικά σας εργαλεία και pipelines να συνεργάζονται με το digna μέσω HTTP και JSON: να διαβάζουν projects και αποτελέσματα επιθεωρήσεων, να διαχειρίζονται πηγές δεδομένων, σύνολα δεδομένων και χαρακτηριστικά και να ξεκινούν επιθεωρήσεις, για παράδειγμα στο τέλος μιας φόρτωσης δεδομένων. Το Python SDK χρησιμοποιεί το ίδιο API.
Αυτή η σελίδα καλύπτει ό,τι έχουν κοινό όλα τα αιτήματα. Οι σελίδες των πόρων παραθέτουν κάθε endpoint με τις παραμέτρους, το σώμα αιτήματος, τις αποκρίσεις και τα σχήματά του:
| Πόρος | Endpoints |
|---|---|
| Projects | Ανάγνωση projects |
| DB Connections | Ανάγνωση συνδέσεων βάσεων δεδομένων |
| Data Sources | Δημιουργία, ανάγνωση, ενημέρωση και διαγραφή πηγών δεδομένων |
| Data Sets | Δημιουργία, ανάγνωση, ενημέρωση και διαγραφή συνόλων δεδομένων |
| Attributes | Δημιουργία, ανάγνωση, ενημέρωση και διαγραφή χαρακτηριστικών |
| Check Definitions | Ανάγνωση ορισμών ελέγχων |
| Inspection Requests | Έναρξη επιθεωρήσεων και παρακολούθηση της προόδου τους |
| Inspection Statuses | Ανάγνωση αποτελεσμάτων επιθεωρήσεων ανά project, πηγή δεδομένων και σύνολο δεδομένων |
Βασικό URL¶
Το API είναι μέρος του backend του digna. Κάθε διαδρομή ξεκινά με /v1, μετά τη διεύθυνση του backend:
Η διεύθυνση του backend είναι αυτή που χρησιμοποιεί το dashboard: το baseUrl στην ενότητα [api] του dashboard/dashboard_config.toml. Χρησιμοποιείτε HTTPS όποτε ο καλών και το digna δεν βρίσκονται στο ίδιο μηχάνημα, επειδή κάθε αίτημα μεταφέρει ένα κλειδί API.
Αυθεντικοποίηση¶
Κάθε αίτημα στέλνει το κλειδί API ενός χρήστη digna στην κεφαλίδα Authorization:
Για να δημιουργήσετε ένα κλειδί, ανοίξτε το προφίλ χρήστη σας στην κάτω αριστερή γωνία του dashboard, κάντε κλικ στο API Keys και μετά στο Add API Key και αντιγράψτε το κλειδί. Εμφανίζεται μόνο μία φορά. Τα ίδια κλειδιά λειτουργούν και για τον digna MCP Server.
Ένα αίτημα εκτελείται με τα δικαιώματα του χρήστη στον οποίο ανήκει το κλειδί. Η δημιουργία, η αλλαγή και η διαγραφή απαιτούν τον ρόλο συντάκτη (editor) στο project· διαφορετικά, το αίτημα απορρίπτεται με 403 και το μήνυμα You don't have permission to edit this project.
Χρησιμοποιήστε έναν αποκλειστικό χρήστη για αυτοματοποίηση
Δημιουργήστε έναν χρήστη digna για κάθε ενσωμάτωση, δώστε του μόνο τα projects και τους ρόλους που χρειάζεται και δημιουργήστε το κλειδί του με ημερομηνία λήξης. Έτσι μπορείτε να ανακαλέσετε την πρόσβαση μιας ενσωμάτωσης διαγράφοντας το κλειδί της, χωρίς να επηρεάσετε κανέναν άλλον.
Αποστολή αιτήματος¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Οι αποκρίσεις είναι σε JSON. Οι λίστες επιστρέφονται ως πίνακας JSON. Τα σώματα αιτημάτων είναι επίσης σε JSON και αποστέλλονται με Content-Type: application/json.
Όρια και φίλτρα¶
Τα endpoints λιστών επιστρέφουν το πολύ limit στοιχεία: 200 από προεπιλογή και έως 5000. Μια τιμή εκτός αυτού του εύρους απορρίπτεται με 400. Δεν υπάρχει offset ούτε token σελίδας, οπότε περιορίστε μια λίστα με τα φίλτρα της, για παράδειγμα project_id, data_source_id ή start_date και end_date στις καταστάσεις επιθεώρησης.
Ένα αίτημα που διαρκεί περισσότερο από 60 δευτερόλεπτα ακυρώνεται με 408 Request Timeout.
Σφάλματα¶
Μια απόκριση σφάλματος έχει σώμα JSON με έναν κωδικό και ένα μήνυμα:
| Κατάσταση | Κωδικός | Σημασία |
|---|---|---|
400 | BAD_REQUEST | Το αίτημα δεν είναι έγκυρο, για παράδειγμα ένα limit εκτός εύρους |
401 | NOT_AUTHENTICATED | Το κλειδί API λείπει, έχει λανθασμένη μορφή, είναι άγνωστο ή έχει λήξει |
403 | NOT_AUTHORIZED | Ο χρήστης του κλειδιού δεν έχει τον ρόλο που απαιτεί αυτό το αίτημα |
403 | INVALID_LICENSE | Η άδεια χρήσης του digna έχει λήξει |
404 | NOT_FOUND | Το project, η πηγή δεδομένων ή άλλο στοιχείο δεν υπάρχει |
500 | INTERNAL_ERROR | Απρόσμενο σφάλμα στο digna. Οι λεπτομέρειες βρίσκονται στο log του backend |
Το message μιας απόκρισης 401 δείχνει τι δεν πάει καλά με το κλειδί:
| Μήνυμα | Αιτία |
|---|---|
Missing Authorization header | Δεν στάλθηκε κεφαλίδα Authorization |
Invalid Authorization header format | Η τιμή δεν ξεκινά με Bearer |
Invalid API key | Το κλειδί είναι λάθος ή έχει διαγραφεί |
API key expired | Το κλειδί έχει λήξει. Δημιουργήστε ένα νέο |
Εκτέλεση επιθεώρησης¶
Μια τυπική ενσωμάτωση ξεκινά μια επιθεώρηση όταν ολοκληρωθεί μια φόρτωση δεδομένων, περιμένει να τελειώσει και διαβάζει το αποτέλεσμα:
- Ξεκινήστε την επιθεώρηση με
POST /v1/inspection-requests. Η απόκριση περιέχει τοidτου αιτήματος. - Παρακολουθήστε την πρόοδό της με
GET /v1/inspection-requests/{inspection_request_id}. Τοstatusτης περνά απόPENDINGμέσωRUNNINGσεCOMPLETEDή καταλήγει σεFAILED,ABORTEDήCANCELLED. Ρωτήστε ξανά κάθε λίγα δευτερόλεπτα, μέχρι να μην αλλάζει πια. - Διαβάστε το αποτέλεσμα με
GET /v1/inspection-statuses/data-sourcesγια τις ημερομηνίες που επιθεωρήθηκαν. Κάθε στοιχείο έχει μια συνολική κατάστασηstatus:0(OK),1(προειδοποίηση),2(κρίσιμη) ή-1(χωρίς κατάσταση), καθώς και μια κατάσταση ανά module με τον αριθμό των επιτυχημένων, αβέβαιων και αποτυχημένων ελέγχων.
curl -X POST https://digna.example.com/v1/inspection-requests \
-H "Authorization: Bearer $DIGNA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"project_id": 1,
"include_all_data_sources": true,
"data_source_ids": [],
"start_date": "2026-11-06",
"end_date": "2026-11-06",
"mode": "DAILY",
"weekly_mode_weekdays": [],
"monthly_mode_days": [],
"use_notification": true
}'
Έγγραφο OpenAPI¶
Κάθε εγκατάσταση του digna περιγράφει αυτό το API σε ένα έγγραφο OpenAPI 3.1 και προσφέρει ένα διαδραστικό Swagger UI για να δοκιμάζετε αιτήματα:
| Τι | Διεύθυνση |
|---|---|
| Έγγραφο OpenAPI | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
Το έγγραφο του Release 2026.11 είναι επίσης διαθέσιμο εδώ: openapi.json. Χρησιμοποιήστε το για να δημιουργήσετε ένα client σε άλλη γλώσσα προγραμματισμού.
Καλύπτονται μόνο τα endpoints /v1
Το dashboard επικοινωνεί με το backend και μέσω άλλων, εσωτερικών endpoints. Αυτά δεν αποτελούν μέρος αυτού του API και μπορεί να αλλάξουν με οποιαδήποτε έκδοση, οπότε βασίστε τις ενσωματώσεις μόνο στα endpoints /v1.