Zum Inhalt springen

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)

FeldTypBeschreibung
keyPrefixstringDas API-Schlüssel-Präfix (z.B. 'sk_live')
namestringMenschenlesbarer Name des API-Schlüssels
scopesstring[]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üfen
if (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

KonstanteWert
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

KonstanteWert
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

KonstanteWert
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

BereichsstringKonstanteKategorieTypAktion
documents:signed:readScope.DOCUMENTS_SIGNED_READDokumenteSigniertLesen
documents:signed:uploadScope.DOCUMENTS_SIGNED_UPLOADDokumenteSigniertHochladen
documents:signed:updateScope.DOCUMENTS_SIGNED_UPDATEDokumenteSigniertAktualisieren
documents:signed:exportScope.DOCUMENTS_SIGNED_EXPORTDokumenteSigniertExportieren
documents:signed:deleteScope.DOCUMENTS_SIGNED_DELETEDokumenteSigniertLöschen
documents:generated:readScope.DOCUMENTS_GENERATED_READDokumenteGeneriertLesen
documents:generated:uploadScope.DOCUMENTS_GENERATED_UPLOADDokumenteGeneriertHochladen
documents:generated:updateScope.DOCUMENTS_GENERATED_UPDATEDokumenteGeneriertAktualisieren
documents:generated:exportScope.DOCUMENTS_GENERATED_EXPORTDokumenteGeneriertExportieren
documents:generated:deleteScope.DOCUMENTS_GENERATED_DELETEDokumenteGeneriertLöschen
documents:uploaded:readScope.DOCUMENTS_UPLOADED_READDokumenteHochgeladenLesen
documents:uploaded:uploadScope.DOCUMENTS_UPLOADED_UPLOADDokumenteHochgeladenHochladen
documents:uploaded:updateScope.DOCUMENTS_UPLOADED_UPDATEDokumenteHochgeladenAktualisieren
documents:uploaded:exportScope.DOCUMENTS_UPLOADED_EXPORTDokumenteHochgeladenExportieren
documents:uploaded:deleteScope.DOCUMENTS_UPLOADED_DELETEDokumenteHochgeladenLöschen