Bereiche & Berechtigungen
Die Bereiche-Ressource ermöglicht es Ihnen, API-Schlüssel-Berechtigungen abzufragen und das vollständige Berechtigungsmodell zu verstehen.
Erlaubte Bereiche abrufen
Gibt die Bereiche/Berechtigungen zurück, die dem aktuell authentifizierten API-Schlüssel gewährt werden.
Endpunkt: GET /api/sdk/v1/scopes-allowed
Antwort (AllowedScopesResponse)
| Feld | Typ | Beschreibung |
|---|---|---|
keyPrefix | string | Das API-Schlüssel-Präfix (z.B. 'sk_live') |
name | string | Menschenlesbarer Name des API-Schlüssels |
scopes | string[] | Array der gewährten Bereichsstrings |
const { keyPrefix, name, scopes } = await sdk.scopes.getAllowed();
console.log(`API-Schlüssel: ${name} (${keyPrefix})`);console.log('Gewährte Bereiche:');scopes.forEach(s => console.log(` - ${s}`));
// Bestimmte Berechtigung prüfenif (scopes.includes('documents:signed:read')) { console.log('Kann signierte Dokumente lesen');}Alle verfügbaren Bereiche abrufen
Gibt jeden im Sonar-System verfügbaren Bereich zurück, hierarchisch nach Kategorie und Typ organisiert.
Endpunkt: GET /api/sdk/v1/scopes-allowed/all
Antworte-Hierarchie
ScopeCategory[] └── id: string (z.B. "documents") └── label: string (z.B. "Documents") └── types: ScopeType[] └── id: string (z.B. "signed") └── label: string (z.B. "Signed") └── scopes: ScopeEntry[] └── value: string (z.B. "documents:signed:read") └── label: string (z.B. "Read")const categories = await sdk.scopes.getAll();
for (const category of categories) { console.log(`\n${category.label} (${category.id}):`); for (const type of category.types) { console.log(` ${type.label}:`); for (const scope of type.scopes) { console.log(` - ${scope.label}: ${scope.value}`); } }}Bereichskonstanten
Das SDK exportiert ein Scope-Objekt mit allen bekannten Bereichswerten als typisierte Konstanten, um Tippfehler zu vermeiden und Autovervollständigung zu ermöglichen.
import { Scope } from '@sonar/sdk';Signierte Dokument-Bereiche
| Konstante | Wert |
|---|---|
Scope.DOCUMENTS_SIGNED_READ | "documents:signed:read" |
Scope.DOCUMENTS_SIGNED_UPLOAD | "documents:signed:upload" |
Scope.DOCUMENTS_SIGNED_UPDATE | "documents:signed:update" |
Scope.DOCUMENTS_SIGNED_EXPORT | "documents:signed:export" |
Scope.DOCUMENTS_SIGNED_DELETE | "documents:signed:delete" |
Generierte Dokument-Bereiche
| Konstante | Wert |
|---|---|
Scope.DOCUMENTS_GENERATED_READ | "documents:generated:read" |
Scope.DOCUMENTS_GENERATED_UPLOAD | "documents:generated:upload" |
Scope.DOCUMENTS_GENERATED_UPDATE | "documents:generated:update" |
Scope.DOCUMENTS_GENERATED_EXPORT | "documents:generated:export" |
Scope.DOCUMENTS_GENERATED_DELETE | "documents:generated:delete" |
Hochgeladene Dokument-Bereiche
| Konstante | Wert |
|---|---|
Scope.DOCUMENTS_UPLOADED_READ | "documents:uploaded:read" |
Scope.DOCUMENTS_UPLOADED_UPLOAD | "documents:uploaded:upload" |
Scope.DOCUMENTS_UPLOADED_UPDATE | "documents:uploaded:update" |
Scope.DOCUMENTS_UPLOADED_EXPORT | "documents:uploaded:export" |
Scope.DOCUMENTS_UPLOADED_DELETE | "documents:uploaded:delete" |
Verwendung mit getAllowed()
import { SonarSDK, Scope } from '@sonar/sdk';
const sdk = new SonarSDK({ apiKey: 'sk_...', instanceName: 'demo' });const { scopes } = await sdk.scopes.getAllowed();
if (scopes.includes(Scope.DOCUMENTS_SIGNED_READ)) { const signedDocs = await sdk.documents.list({ classification: 'signed' });}Berechtigungsmatrix
| Bereichsstring | Konstante | Kategorie | Typ | Aktion |
|---|---|---|---|---|
documents:signed:read | Scope.DOCUMENTS_SIGNED_READ | Dokumente | Signiert | Lesen |
documents:signed:upload | Scope.DOCUMENTS_SIGNED_UPLOAD | Dokumente | Signiert | Hochladen |
documents:signed:update | Scope.DOCUMENTS_SIGNED_UPDATE | Dokumente | Signiert | Aktualisieren |
documents:signed:export | Scope.DOCUMENTS_SIGNED_EXPORT | Dokumente | Signiert | Exportieren |
documents:signed:delete | Scope.DOCUMENTS_SIGNED_DELETE | Dokumente | Signiert | Löschen |
documents:generated:read | Scope.DOCUMENTS_GENERATED_READ | Dokumente | Generiert | Lesen |
documents:generated:upload | Scope.DOCUMENTS_GENERATED_UPLOAD | Dokumente | Generiert | Hochladen |
documents:generated:update | Scope.DOCUMENTS_GENERATED_UPDATE | Dokumente | Generiert | Aktualisieren |
documents:generated:export | Scope.DOCUMENTS_GENERATED_EXPORT | Dokumente | Generiert | Exportieren |
documents:generated:delete | Scope.DOCUMENTS_GENERATED_DELETE | Dokumente | Generiert | Löschen |
documents:uploaded:read | Scope.DOCUMENTS_UPLOADED_READ | Dokumente | Hochgeladen | Lesen |
documents:uploaded:upload | Scope.DOCUMENTS_UPLOADED_UPLOAD | Dokumente | Hochgeladen | Hochladen |
documents:uploaded:update | Scope.DOCUMENTS_UPLOADED_UPDATE | Dokumente | Hochgeladen | Aktualisieren |
documents:uploaded:export | Scope.DOCUMENTS_UPLOADED_EXPORT | Dokumente | Hochgeladen | Exportieren |
documents:uploaded:delete | Scope.DOCUMENTS_UPLOADED_DELETE | Dokumente | Hochgeladen | Löschen |