DokumentationProdukteShellBaseRichtlinien-APIRichtlinien-API V1
Richtlinie anlegen
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
| Methode | POST |
| Basis | policies.api.shellbase.artim-industries.com/v1 |
| Scope | sb.policies:write |
| Antwort | 201 |
| Zugang | Developer Mitgliedschaft |
| Auth | Authorization: Bearer sbapi_… |
Parameter
Dieser Endpunkt nimmt keine Parameter.
Anfragekörper
| Feld | Typ | Bedeutung |
|---|---|---|
name | string | Name. Pflicht. |
mode | string | blacklist oder whitelist. Pflicht. |
description | string | Beschreibung. |
scope | object | Reichweite, Standard { "kind": "team" }. |
blockedCommands | array | Verbotene Kommandos. |
allowedCommands | array | Erlaubte Kommandos. |
regexRules | array | Reguläre Ausdrücke. |
riskThreshold | integer | Schwelle für riskante Kommandos. |
enabled | boolean | Ob 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
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Kennung der neuen Richtlinie. |
createdBy | string | Das Konto des Tokens. |
enabled | boolean | Ob sie greift. |
{ "id": "…", "name": "Produktion geschützt", "mode": "whitelist", "enabled": true, "createdBy": "[email protected]" }
Fehler
| Status | code | Wann |
|---|---|---|
400 | invalid_request | Ein Pflichtfeld fehlt, ein Typ passt nicht, oder ein Verweis zeigt auf etwas, das es hier nicht gibt. |
401 | invalid_token | Bearer fehlt, ist unbekannt oder abgelaufen. |
403 | missing_scope | Das Token trägt den Scope dieses Endpunkts nicht. |
404 | not_found | Der Eintrag gehört nicht zum freigegebenen Team — oder die Anfrage kam auf der falschen Subdomain an. |
409 | conflict | Der Zustand verbietet die Änderung — der Fehlerkörper nennt den Grund. |
429 | rate_limited | Kontingent 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.
| Zugang | Produktion | Sandbox |
|---|---|---|
| Hobby | 60 Anfragen/Minute | ohne Limit |
| Developer Mitgliedschaft | 10.000 Anfragen/Minute | ohne Limit |
Bei 429 sagt der Retry-After-Header, wie lange du warten sollst.