Leidimai
Trys leidimai (scopes), kuriuos pasirenkate kurdami raktą, ir ką kiekvienas atveria.
Leidimų lentelė
Leidimai (angl. scopes) nustato, kuriuos endpointus gali kviesti raktas. Juos pasirenkate kurdami raktą, o vėliau pakeisti negalima: reikia naujo rakto.
| Leidimas | Leidžia | Įvykiai |
|---|---|---|
meetings:read |
visus GET /meetings* endpointus |
meeting.* |
library:read |
GET /library/transcripts* ir GET /library/imports* |
library.* |
library:write |
POST /library/imports ir POST /library/imports/{import_id}/cancel. Apima library:read |
library.* |
GET / ir GET /me veikia su bet kuriuo galiojančiu raktu. GET /me visada paslepia paskyros el. paštą, o kreditų likutį grąžina tik raktui su library:write. Programėlėje leidimai vadinami „Susitikimai – skaityti“, „Biblioteka – skaityti“ ir „Biblioteka – importuoti“.
Šablonai
Kurdami raktą galite pasirinkti šabloną arba pažymėti leidimus patys:
| Šablonas | Leidimai |
|---|---|
| Tik skaitymas | meetings:read, library:read |
| Skaitymas ir importas | meetings:read, library:write |
Kuris endpointas ko reikalauja
| Endpointas | Leidimas |
|---|---|
GET / |
rakto nereikia |
GET /me |
bet kuris galiojantis raktas (credits tik su library:write) |
GET /meetings, /meetings/{meeting_id}, /transcript, /minutes, /action-items |
meetings:read |
GET /library/transcripts, /library/transcripts/{transcript_id}, /transcript |
library:read |
GET /library/imports, /library/imports/{import_id} |
library:read |
POST /library/imports, POST /library/imports/{import_id}/cancel |
library:write |
GET /events, GET /events/{event_id} |
bet kuris raktas; rezultatai filtruojami pagal leidimus |
Kaip pasirinkti
- Duokite mažiausią reikalingą leidimą. Ataskaitų ar CRM sinchronizavimo integracijai pakanka „Tik skaitymas“.
- Importams reikia
library:write. Jis jau apima bibliotekos skaitymą, todėl importuotojas gali pats patikrinti importo būseną ir perskaityti rezultatą. - Vienas raktas vienai integracijai. Taip lengviau atšaukti tik tą raktą, kurio paslaptis nutekėjo, ir matyti, kuri sistema ką naudoja.
Trūkstamas leidimas
Jei raktas neturi endpointui reikalingo leidimo, API grąžina 403 insufficient_scope. Atsakyme nurodyta, ko reikia ir ką raktas turi (pavyzdys su Accept-Language: lt):
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer realm="diko", error="insufficient_scope", scope="meetings:read"{
"type": "error",
"error": {
"type": "permission_error",
"code": "insufficient_scope",
"message": "API raktas neturi šiam endpointui reikalingo leidimo.",
"doc_url": "https://diko.app/api-docs/klaidos#insufficient_scope",
"details": {
"required_scopes": ["meetings:read"],
"granted_scopes": ["library:read"]
}
},
"request_id": "req_QBPIQ5QTIWAUYTMDNCLD7CMKBE"
}Sprendimas: sukurkite naują raktą su reikiamu leidimu ir atnaujinkite savo sistemą. Seną raktą, jei jis nebereikalingas, atšaukite.
Leidimai ir įvykių srautas
GET /events rodo tik tų šeimų įvykius, kurias raktas gali skaityti: meeting.* su meetings:read, library.* su library:read arba library:write. Jei raktas neskaito nė vienos šeimos, sąrašas tuščias, o ne 403.
Svetimi resursai
Raktas mato tik savo savininko duomenis. Svetimas, neegzistuojantis ar neteisingai užkoduotas ID visada grąžina 404 not_found, o ne 403, kad API neatskleistų, ar toks resursas egzistuoja.