DokumentationProdukteShellBaseRichtlinien-APIRichtlinien-API V1

Richtlinie anlegen

2 min Lesezeit · zuletzt aktualisiert 18. August 2026

In API Explorer austestenÖffnet den Explorer mit Methode und Pfad dieses Requests.

Legt eine Richtlinie an — sie greift sofort.

Ohne scope gilt sie für das ganze Team. mode ist blacklist (alles außer den verbotenen) oder whitelist (nur die erlaubten).

POST https://policies.api.shellbase.artim-industries.com/v1/policies
MethodePOST
Basispolicies.api.shellbase.artim-industries.com/v1
Scopesb.policies:write
Antwort201
ZugangDeveloper Mitgliedschaft
AuthAuthorization: Bearer sbapi_…

Parameter

Dieser Endpunkt nimmt keine Parameter.

Anfragekörper

FeldTypBedeutung
namestringName. Pflicht.
modestringblacklist oder whitelist. Pflicht.
descriptionstringBeschreibung.
scopeobjectReichweite, Standard { "kind": "team" }.
blockedCommandsarrayVerbotene Kommandos.
allowedCommandsarrayErlaubte Kommandos.
regexRulesarrayReguläre Ausdrücke.
riskThresholdintegerSchwelle für riskante Kommandos.
enabledbooleanOb sie sofort greift. Standard true.

Felder, die der Vertrag nicht nennt, werden verworfen — ein Client kann keine eigenen Felder unterschieben.

{
  "name": "Produktion geschützt",
  "mode": "whitelist",
  "scope": { "kind": "server", "serverId": "66c2…" },
  "allowedCommands": ["systemctl status", "journalctl", "df -h"]
}

Anfrage

curl -X POST "https://policies.api.shellbase.artim-industries.com/v1/policies" \
  -H "Authorization: Bearer sbapi_…" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Produktion geschützt", "mode": "whitelist", "scope": { "kind": "server", "serverId": "66c2…" }, "allowedCommands": ["systemctl status", "journalctl", "df -h"] }'

Antwort

FeldTypBedeutung
idstringKennung der neuen Richtlinie.
createdBystringDas Konto des Tokens.
enabledbooleanOb sie greift.
{ "id": "…", "name": "Produktion geschützt", "mode": "whitelist", "enabled": true, "createdBy": "[email protected]" }

Fehler

StatuscodeWann
400invalid_requestEin Pflichtfeld fehlt, ein Typ passt nicht, oder ein Verweis zeigt auf etwas, das es hier nicht gibt.
401invalid_tokenBearer fehlt, ist unbekannt oder abgelaufen.
403missing_scopeDas Token trägt den Scope dieses Endpunkts nicht.
404not_foundDer Eintrag gehört nicht zum freigegebenen Team — oder die Anfrage kam auf der falschen Subdomain an.
409conflictDer Zustand verbietet die Änderung — der Fehlerkörper nennt den Grund.
429rate_limitedKontingent erschöpft, siehe Retry-After.

Jede Fehlerantwort trägt dieselbe Hülle: error.code benennt den Fehler, error.message sagt in einem Satz, was fehlt.

Rate Limits

Das Limit gilt pro Team, nicht pro Token.

ZugangProduktionSandbox
Hobby60 Anfragen/Minuteohne Limit
Developer Mitgliedschaft10.000 Anfragen/Minuteohne Limit

Bei 429 sagt der Retry-After-Header, wie lange du warten sollst.