Keri sisuni

digna REST API 2026.11

digna REST API võimaldab sinu enda tööriistadel ja andmekonveieritel töötada dignaga üle HTTP ja JSON-i: lugeda projekte ja inspektsioonitulemusi, hallata andmeallikaid, andmekogumeid ja atribuute ning käivitada inspektsioone, näiteks andmelaadimise lõpus. Python SDK kasutab sama API-t.

See leht kirjeldab seda, mis on kõigile päringutele ühine. Ressursilehed loetlevad iga lõpp-punkti koos parameetrite, päringu keha, vastuste ja skeemidega:

Ressurss Lõpp-punktid
Projects Projektide lugemine
DB Connections Andmebaasiühenduste lugemine
Data Sources Andmeallikate loomine, lugemine, muutmine ja kustutamine
Data Sets Andmekogumite loomine, lugemine, muutmine ja kustutamine
Attributes Atribuutide loomine, lugemine, muutmine ja kustutamine
Check Definitions Kontrollide definitsioonide lugemine
Inspection Requests Inspektsioonide käivitamine ja nende edenemise jälgimine
Inspection Statuses Inspektsioonitulemuste lugemine projekti, andmeallika ja andmekogumi kaupa

Baas-URL

API on osa digna backendist. Iga tee algab pärast backendi aadressi osaga /v1:

https://digna.example.com/v1/projects

Backendi aadress on sama, mida kasutab dashboard: baseUrl faili dashboard/dashboard_config.toml jaotises [api]. Kasuta HTTPS-i alati, kui päringu saatja ja digna ei asu samas masinas, sest iga päring sisaldab API võtit.


Autentimine

Iga päring saadab digna kasutaja API võtme päises Authorization:

Authorization: Bearer <api key>

Võtme loomiseks ava dashboardi vasakus alanurgas oma kasutajaprofiil, klõpsa API Keys ja seejärel Add API Key ning kopeeri võti. Seda näidatakse ainult üks kord. Samad võtmed töötavad ka digna MCP Serveriga.

Päring täidetakse võtme kasutaja õigustega. Loomiseks, muutmiseks ja kustutamiseks on projektis vaja toimetaja rolli; vastasel juhul lükatakse päring tagasi koodiga 403 ja teatega You don't have permission to edit this project.

Kasuta automatiseerimiseks eraldi kasutajat

Loo iga integratsiooni jaoks oma digna kasutaja, anna talle ainult need projektid ja rollid, mida ta vajab, ning loo tema võti aegumiskuupäevaga. Siis saad ühe integratsiooni juurdepääsu tühistada, kustutades selle võtme, ilma et see kedagi teist mõjutaks.


Päringu tegemine

export DIGNA_API_KEY='<api key>'
curl https://digna.example.com/v1/projects -H "Authorization: Bearer $DIGNA_API_KEY"

Vastused on JSON-vormingus. Loendid tagastatakse JSON-massiivina. Ka päringute kehad on JSON-is ja need saadetakse päisega Content-Type: application/json.


Piirangud ja filtrid

Loendite lõpp-punktid tagastavad kõige rohkem limit elementi: vaikimisi 200 ja kuni 5000. Sellest vahemikust väljas olev väärtus lükatakse tagasi koodiga 400. Nihet (offset) ega lehe tõendit pole, seega kitsenda loendit selle asemel filtritega, näiteks project_id, data_source_id või inspektsiooni olekute puhul start_date ja end_date.

Päring, mis kestab kauem kui 60 sekundit, katkestatakse vastusega 408 Request Timeout.


Vead

Veavastusel on JSON-keha koodi ja teatega:

{
  "code": "NOT_FOUND",
  "message": "Data set not found"
}
Olek Kood Tähendus
400 BAD_REQUEST Päring on vigane, näiteks on limit lubatud vahemikust väljas
401 NOT_AUTHENTICATED API võti puudub, on vales vormingus, tundmatu või aegunud
403 NOT_AUTHORIZED Võtme kasutajal puudub roll, mida see päring nõuab
403 INVALID_LICENSE digna litsents on aegunud
404 NOT_FOUND Projekti, andmeallikat või muud elementi ei ole olemas
500 INTERNAL_ERROR Ootamatu viga dignas. Üksikasjad on backendi logis

401 vastuse message ütleb, mis võtmega valesti on:

Teade Põhjus
Missing Authorization header Päist Authorization ei saadetud
Invalid Authorization header format Väärtus ei alga sõnaga Bearer
Invalid API key Võti on vale või see on kustutatud
API key expired Võti on aegunud. Loo uus

Inspektsiooni käivitamine

Tüüpiline integratsioon käivitab inspektsiooni, kui andmelaadimine on lõppenud, ootab selle valmimist ja loeb tulemuse:

  1. Käivita inspektsioon päringuga POST /v1/inspection-requests. Vastus sisaldab päringu id-d.
  2. Jälgi selle edenemist päringuga GET /v1/inspection-requests/{inspection_request_id}. Selle status liigub olekust PENDING oleku RUNNING kaudu olekusse COMPLETED või lõpeb olekuga FAILED, ABORTED või CANCELLED. Küsi uuesti iga paari sekundi järel, kuni see enam ei muutu.
  3. Loe tulemus päringuga GET /v1/inspection-statuses/data-sources inspekteeritud kuupäevade kohta. Igal elemendil on üldine status: 0 (OK), 1 (hoiatus), 2 (kriitiline) või -1 (olek puudub), ning iga mooduli olek koos läbitud, ebakindlate ja ebaõnnestunud kontrollide arvuga.
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 dokument

Iga digna paigaldus kirjeldab seda API-t OpenAPI 3.1 dokumendis ja pakub interaktiivset Swagger UI-d, kus saad päringuid selle vastu proovida:

Mis Aadress
OpenAPI dokument https://digna.example.com/api-docs/stable/v1/openapi.json
Swagger UI https://digna.example.com/v1/swagger-ui

Release 2026.11 dokument on saadaval ka siin: openapi.json. Kasuta seda kliendi genereerimiseks mõnes teises programmeerimiskeeles.

Kaetud on ainult /v1 lõpp-punktid

Dashboard suhtleb backendiga ka teiste, sisemiste lõpp-punktide kaudu. Need ei kuulu selle API juurde ja võivad muutuda igas väljalaskes, seega ehita integratsioonid ainult /v1 lõpp-punktidele.