digna REST API 2026.11¶
digna REST API leidžia jūsų įrankiams ir duomenų srautams dirbti su digna per HTTP ir JSON: skaityti projektus ir inspekcijų rezultatus, valdyti duomenų šaltinius, duomenų rinkinius ir atributus bei paleisti inspekcijas, pavyzdžiui, pasibaigus duomenų įkėlimui. Python SDK naudoja tą pačią API.
Šiame puslapyje aprašoma tai, kas bendra visoms užklausoms. Išteklių puslapiuose pateikiamas kiekvienas galinis taškas su jo parametrais, užklausos turiniu, atsakymais ir schemomis:
| Išteklius | Galiniai taškai |
|---|---|
| Projects | Projektų skaitymas |
| DB Connections | Duomenų bazių jungčių skaitymas |
| Data Sources | Duomenų šaltinių kūrimas, skaitymas, keitimas ir šalinimas |
| Data Sets | Duomenų rinkinių kūrimas, skaitymas, keitimas ir šalinimas |
| Attributes | Atributų kūrimas, skaitymas, keitimas ir šalinimas |
| Check Definitions | Patikrų apibrėžčių skaitymas |
| Inspection Requests | Inspekcijų paleidimas ir jų eigos stebėjimas |
| Inspection Statuses | Inspekcijų rezultatų skaitymas pagal projektą, duomenų šaltinį ir duomenų rinkinį |
Bazinis URL¶
API yra digna backend'o dalis. Kiekvienas kelias prasideda /v1 po backend'o adreso:
Backend'o adresas yra tas pats, kurį naudoja dashboard: baseUrl failo dashboard/dashboard_config.toml skyriuje [api]. Naudokite HTTPS visada, kai kviečianti sistema ir digna veikia ne tame pačiame kompiuteryje, nes kiekvienoje užklausoje yra API raktas.
Autentifikavimas¶
Kiekviena užklausa siunčia digna vartotojo API raktą antraštėje Authorization:
Norėdami sukurti raktą, apatiniame kairiajame dashboard kampe atidarykite savo vartotojo profilį, spauskite API Keys, tada Add API Key, ir nukopijuokite raktą. Jis rodomas tik vieną kartą. Tie patys raktai tinka ir digna MCP Server.
Užklausa vykdoma su rakto vartotojo teisėmis. Kuriant, keičiant ir šalinant projekte reikia redaktoriaus rolės; kitaip užklausa atmetama su 403 ir pranešimu You don't have permission to edit this project.
Automatizavimui naudokite atskirą vartotoją
Kiekvienai integracijai sukurkite atskirą digna vartotoją, suteikite jam tik tuos projektus ir roles, kurių jam reikia, ir sukurkite jo raktą su galiojimo pabaigos data. Tada galėsite atšaukti vienos integracijos prieigą ištrindami jos raktą, nepaveikdami nieko kito.
Užklausos siuntimas¶
export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"
Atsakymai pateikiami JSON formatu. Sąrašai grąžinami kaip JSON masyvas. Užklausų turinys taip pat yra JSON ir siunčiamas su Content-Type: application/json.
Ribos ir filtrai¶
Sąrašų galiniai taškai grąžina ne daugiau kaip limit elementų: pagal numatymą 200, daugiausia 5000. Reikšmė už šio intervalo ribų atmetama su 400. Poslinkio (offset) ar puslapio žetono nėra, todėl sąrašą siaurinkite jo filtrais, pavyzdžiui, project_id, data_source_id arba inspekcijų būsenų start_date ir end_date.
Užklausa, trunkanti ilgiau nei 60 sekundžių, nutraukiama su 408 Request Timeout.
Klaidos¶
Klaidos atsakymas turi JSON turinį su kodu ir pranešimu:
| Būsena | Kodas | Reikšmė |
|---|---|---|
400 | BAD_REQUEST | Užklausa neteisinga, pavyzdžiui, limit už leistino intervalo ribų |
401 | NOT_AUTHENTICATED | API rakto nėra, jis netinkamo formato, nežinomas arba nebegalioja |
403 | NOT_AUTHORIZED | Rakto vartotojas neturi šiai užklausai reikalingos rolės |
403 | INVALID_LICENSE | digna licencijos galiojimas baigėsi |
404 | NOT_FOUND | Projektas, duomenų šaltinis ar kitas elementas neegzistuoja |
500 | INTERNAL_ERROR | Netikėta digna klaida. Išsami informacija yra backend'o žurnale |
401 atsakymo message nurodo, kas negerai su raktu:
| Pranešimas | Priežastis |
|---|---|
Missing Authorization header | Antraštė Authorization nebuvo išsiųsta |
Invalid Authorization header format | Reikšmė neprasideda Bearer |
Invalid API key | Raktas neteisingas arba buvo ištrintas |
API key expired | Rakto galiojimas baigėsi. Sukurkite naują |
Inspekcijos paleidimas¶
Įprasta integracija paleidžia inspekciją, kai baigiasi duomenų įkėlimas, palaukia, kol ji baigsis, ir nuskaito rezultatą:
- Paleiskite inspekciją užklausa
POST /v1/inspection-requests. Atsakyme yra užklausosid. - Stebėkite jos eigą užklausa
GET /v1/inspection-requests/{inspection_request_id}. Josstatuspereina išPENDINGperRUNNINGįCOMPLETEDarba baigiasi būsenaFAILED,ABORTEDarCANCELLED. Klauskite pakartotinai kas kelias sekundes, kol būsena nebesikeis. - Nuskaitykite rezultatą užklausa
GET /v1/inspection-statuses/data-sourcesinspektuotoms datoms. Kiekvienas elementas turi bendrąstatus:0(OK),1(įspėjimas),2(kritinė) arba-1(būsenos nėra), ir kiekvieno modulio būseną su sėkmingų, neapibrėžtų ir nepavykusių patikrų skaičiumi.
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 dokumentas¶
Kiekviena digna diegtis aprašo šią API OpenAPI 3.1 dokumente ir siūlo interaktyvią Swagger UI, kurioje galite išbandyti užklausas:
| Kas | Adresas |
|---|---|
| OpenAPI dokumentas | https://digna.example.com/api-docs/stable/v1/openapi.json |
| Swagger UI | https://digna.example.com/v1/swagger-ui |
Release 2026.11 dokumentas taip pat pasiekiamas čia: openapi.json. Naudokite jį klientui kita programavimo kalba sugeneruoti.
Aprašyti tik /v1 galiniai taškai
Dashboard su backend'u bendrauja ir per kitus, vidinius galinius taškus. Jie nėra šios API dalis ir gali keistis bet kuriame leidime, todėl integracijas kurkite tik su /v1 galiniais taškais.