Mine sisu juurde
Sursa Developers

Autentimine

Iga Sursa API päring sisaldab päises Authorization API-võtit või rakenduse OAuth-juurdepääsuluba:

Authorization: Bearer kb_3f9c…

Võti tuvastab organisatsiooni ja määrab, mida päring näha ja muuta saab: seda määravad võtme roll, ulatused, andmeprofiil ja kogud. API-aadressil ei ole seansse ega küpsiseid. Iga päring autenditakse eraldi, seega võite saata sama võtmega päringuid paralleelselt ja mitmest serverist.

curl https://api.sursa.com/v1/me \
  -H "Authorization: Bearer $SURSA_API_KEY"

Varasemad integratsioonid võivad saata võtme hoopis päises X-API-Key. Seda aktsepteeritakse endiselt, kuid uues koodis kasutage päist Authorization: Bearer.

Autentimisandmete liigid

AutentimisandmedKujuKus need toimivad
Organisatsiooni API-võtikb_…Kõik API lõpp-punktid võtme rolli, ulatuste, andmeprofiili ja kogude piires.
Kohandatud allika võtikbsrc_…Ainult oma kohandatud allika push-lõpp-punktid (/v1/push/sources/{source_id}/…).
OAuth-juurdepääsulubakbat_…API teatmiku lõpp-punktid loa ulatuste piires. Autoriseerimiskoodiga lõpp-punktist POST /oauth/token saadud luba tegutseb nõusoleku andnud töötaja nimel; loa andmise tüübiga client_credentials saadud luba tegutseb organisatsiooni nimel nagu API-võti. Luba kehtib 1 tund.

Kõik need saadetakse ühtemoodi. Kohandatud allika võti ei saa väljaspool oma allikat midagi lugeda, otsida ega muuta; kasutage seda seal, kus võtit hoiab kolmas osapool, näiteks integratsiooniplatvorm.

Autentimisvead

Olek ja koodMida see tähendabMida teha
401 auth.not_authenticatedVõti puudub, on valesti sisestatud või tühistatud.Kontrollige päist ja võtme väärtust.
401 api_keys.expiredVõtme aegumiskuupäev on möödunud.Looge uus võti ja asendage sellega vana.
401 sources.push_key_invalidKohandatud allika võti on vale, tühistatud või kuulub teisele allikale.Kontrollige võtit ja teel olevat allika ID-d.
401 oauth.token_expiredOAuth-juurdepääsuloa kehtivus on lõppenud.Hankige värskendusloaga uus luba.
403 api_keys.scopeVõtmel ei ole selle toimingu jaoks ulatust.Lisage ulatus või kasutage võtit, millel see on.
403 api_keys.feature_disabledOrganisatsiooni pakett ei sisalda API-võtmeid.Pöörduge organisatsiooni administraatori poole.
403 api_keys.ip_not_allowedPäring tuleb aadressilt, mis ei kuulu võtme lubatud aadresside hulka.Saatke päring lubatud võrgust või muutke võtme aadresse.
403 api_keys.mcp_onlyIsiklikku MCP-võtit kasutati väljaspool lõpp-punkti /mcp.Kasutage API jaoks organisatsiooni API-võtit.
403 oauth.operation_not_allowedToiming ei kuulu avalikku API-sse, seega ei saa OAuth-luba seda kutsuda.Kasutage API teatmikus olevat toimingut.
403 org.suspendedOrganisatsiooni tegevus on peatatud. Selle andmed säilitatakse.Pöörduge organisatsiooni administraatori poole.

403 tähendab, et päring on autenditud, kuid seda ei ole lubatud teha. Objekti puhul, mida võtmel ei ole lubatud näha, tuleb vastus 404 nagu olematu objekti puhul, nii et võti ei saa teada, mis jääb tema juurdepääsust välja.

Tegutsemine andmeprofiili nimel

Rolliga admin võti saab kontrollida, mida näeks mõni teine inimeste rühm: päis X-View-As käivitab päringu andmeprofiili ja soovi korral ka rolli nimel.

curl "https://api.sursa.com/v1/cards?limit=20" \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "X-View-As: employee:viewer"

Selles režiimis päringud ainult loevad: iga muudatus tagastab 403 koodiga view_as.read_only. OAuth-luba ega võti, millel ei ole rolli admin, ei saa päist X-View-As kasutada: vastus on 403 koodiga view_as.admin_key_required. Päis, mis ei nimeta ühtegi olemasolevat profiili, saab vastuse 400 koodiga view_as.invalid_header.

Brauserirakendused

API lubab päringuid mis tahes veebipäritolust (Access-Control-Allow-Origin: *) ega kasuta kunagi küpsiseid, seega saab leht seda kutsuda funktsiooniga fetch. Võti asub siis lehel ja on nähtav igaühele, kes lehte kasutab. Kutsuge API-t brauserist ainult võtmega, mida olete valmis neile kasutajatele näitama, näiteks rolliga viewer võtmega, mis on piiratud avalike kogudega, või pange brauseri ja Sursa vahele oma server.

Mida saab teha ainult töötaja

Organisatsiooni API-võti tegutseb organisatsiooni, mitte inimese nimel. Kaks API osa kuuluvad inimestele, seega toimivad need ainult loaga, mis tegutseb töötaja nimel: Sursa seansiga või töötaja nõusolekul väljastatud OAuth-juurdepääsuloaga.

Vestlused kuuluvad inimesele. Organisatsiooni API-võti näeb lõpp-punktis GET /v1/conversations ainult neid vestlusi, mille ta ise alustas. Avalikus API-s ei ole toimingut, mis vestluse alustaks, seega on võtme jaoks loend tavaliselt tühi ja töötajate vestlusi talle kunagi ei näidata. Küsimused ilma vestluseta, lõpp-punktiga POST /v1/ask või POST /v1/chat, toimivad iga võtmega, millel on ulatus ask. Töötaja vestluste loetlemiseks ja ühe vestluse ajaloo lugemiseks lõpp-punktiga GET /v1/conversations/{conv_id} kutsuge API-t OAuth-loaga selle töötaja nimel. Luba näeb ainult selle töötaja enda vestlusi; iga muu vestluse puhul on vastus 404 koodiga conversations.not_found.

Kaarti kontrollib ainult töötaja. Kontroll kinnitab, et inimene vaatas sisu üle, seega vajavad POST /v1/cards/{card_id}/verification/verify ja POST /v1/cards/{card_id}/verify seanssi või OAuth-luba sellise töötaja nimel, kes tohib kaarti kontrollida. Organisatsiooni API-võtmega või loa andmise tüübiga client_credentials saadud loaga on vastus 400 koodiga cards.verify_user_account_required. Enne seda kontrollitakse nagu tavaliselt juurdepääsu: kaardi puhul, mida võti ei näe, on vastus 404, ja võtmele, millel ei ole lubatud kaarti kontrollida, 403.