Direct naar de inhoud
Sursa Developers

Scopes van sleutels

Een scope geeft een deel van de API aan dat een sleutel mag aanroepen. Elk endpoint in de API-referentie vermeldt de ene scope die het nodig heeft. Een request met een sleutel zonder die scope wordt geweigerd met 403 en de code api_keys.scope, voordat er iets wordt gelezen of gewijzigd.

Scopes bepalen welke bewerkingen een sleutel mag aanroepen. Welke objecten die bewerkingen zien, hangt nog steeds af van de rol, het dataprofiel en de collecties van de sleutel: een sleutel met cards:write en de rol viewer kan geen kaarten wijzigen, en een sleutel die beperkt is tot één collectie, ziet de andere niet.

Scopes

ScopeStaat toe
cards:readKaarten, collecties en mappen lezen.
cards:writeKaarten, collecties en mappen maken, wijzigen en verwijderen.
searchZoeken in de kennisbank (POST /v1/search).
askVragen stellen aan de assistent (POST /v1/ask, POST /v1/chat).
import:writeSchrijven naar de eigen bronnen van de organisatie: synchronisaties, batches en verwijderingen, en de toestand ervan lezen. Voor het maken van een bron en de sleutels ervan is admin nodig.
webhooks:manageWebhooks beheren en de eventfeed lezen (GET /v1/webhook-events). Voor beide is ook de rol admin nodig.
users:readGebruikers en groepen lezen.
users:writeGebruikers en groepen wijzigen.
analytics:readAnalyses lezen.
audit:readHet auditlog lezen.
finance:readFinanciële rapporten, facturen en betalingen lezen.
catalog:readDe servicecatalogus lezen.
files:readGegenereerde bestanden lezen, zoals geëxporteerde antwoorden.
files:writeGegenereerde bestanden wijzigen en verwijderen.
permissions:manageRechten op objecten toekennen en intrekken.
adminDe instellingen van de organisatie en haar API-sleutels. Een sleutel met admin heeft ook alle andere scopes.

Zoeken en vragen stellen gelden als lezen: een sleutel die alleen mag lezen, kan ook zoeken en vragen stellen.

Scopes kiezen

Ken de scopes toe die een integratie gebruikt, en verder niets:

IntegratieScopes
Vraag-en-antwoordbot in een chattoolsearch, ask
Import uit je documentsysteemcards:write (API voor kaarten) of import:write (eigen bron)
Export naar een datawarehousecards:read, users:read en webhooks:manage voor de eventfeed
Gebruikers aanmaken vanuit je hr-systeemusers:write

Geef de lijst mee wanneer je de sleutel maakt:

curl -X POST https://api.sursa.com/v1/api-keys \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Support bot", "role": "viewer", "scopes": ["search", "ask"]}'

Eerdere scopes

Sleutels die zijn gemaakt voordat de scopes werden opgesplitst, blijven werken. Hun scopes read, write en admin staan voor deze sets:

Eerdere scopeBetekent
readcards:read, search, ask, users:read, analytics:read, finance:read, catalog:read, files:read
writealles uit read, plus cards:write, files:write, users:write, permissions:manage
adminalle scopes

Een sleutel die zonder expliciete scopes is gemaakt, krijgt ze van zijn rol: admin krijgt admin; editor en verifier krijgen write; viewer krijgt read.

De scopes van een sleutel bekijken

GET /v1/me geeft de scopes terug van de sleutel die het request doet, welke scopes die ook heeft. Voor een sleutel die zonder expliciete scopes is gemaakt, zijn dat de eerdere scopes van zijn rol, zoals read en write; de tabel hierboven laat zien waar ze voor staan. Mislukt een bewerking met api_keys.scope, dan noemt error.message de scope die ontbrak.