SpaceRole
Zuletzt aktualisiert: 22. Juni 2026
SpaceRole ist ein Bündel von Berechtigungen, das einem Mitglied eines Space erteilt wird. Es fasst in einer Ressource zusammen, was mit Content Type, Content und Media getan werden darf (Lesen, Erstellen, Bearbeiten, Löschen, Veröffentlichen) und ob auf die Einstellungen des Space zugegriffen werden kann. Filter, die den Berechtigungsumfang einschränken (etwa nur auf einen bestimmten Content Type oder nur auf selbst erstellte Ressourcen), werden ebenfalls innerhalb der SpaceRole festgelegt.
Eine erstellte SpaceRole wird für sich allein noch niemandem zugewiesen. Sie wird einem Mitglied erteilt, indem ein Refer auf diese SpaceRole in das Feld roles der Space Membership eingetragen wird. Ein Mitglied kann mehrere SpaceRole gleichzeitig besitzen. Außerdem wird ein DeliveryAccessToken an genau eine SpaceRole mit den geringstmöglichen Rechten (least-privilege) gebunden, wodurch festgelegt wird, welcher Umfang mit diesem Token ausgeliefert werden kann.
Ressourcenstruktur
Im Folgenden steht die Antwort auf eine Einzelabfrage der SpaceRole "Produkt schreibgeschützt". Neben sys (Systemattribute) enthält sie die Inhaltsattribute contentType, content, media und settings, die die Berechtigungen festlegen.
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7ObyNrQQbHbm",
"type": "SpaceRole",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-16T09:53:16.617Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-16T09:53:16.617Z",
"isLocked": false,
"version": 1
},
"name": "Produkt schreibgeschützt",
"contentType": { "All": { "Allow": [] } },
"content": {
"Read": {
"Allow": [
{ "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } } }
]
}
},
"media": { "All": { "Allow": [] } },
"settings": []
}Wichtigste Schlüssel:
contentType: Berechtigungs-Map für den Content Type selbst (das Schema). Die Berechtigungen zum Lesen, Erstellen, Bearbeiten, Löschen und Veröffentlichen eines Content Type werden je Aktion festgelegt.content: Berechtigungs-Map für Content (die Inhaltsdaten). Das obige Beispiel zeigt eine Beschränkung, bei der nur Content eines bestimmten Content Type gelesen werden darf.media: Berechtigungs-Map für Media (Dateien und Bilder).settings: Ein Array aus Zeichenfolgen, das die Zugriffsberechtigung auf die Einstellungen des Space festlegt. Vollzugriff ist["SETTING_ALL"], kein Zugriff auf Einstellungen ist[].isLocked: Beitruehandelt es sich um eine von Weegloo standardmäßig bereitgestellte Rolle (etwa Administrator), die nicht geändert oder gelöscht werden kann.
Systemattribute (sys)
Jede SpaceRole fasst gemeinsame Systemattribute im Objekt sys zusammen. space, createdBy und updatedBy werden in der Refer-Form ({ "sys": { "id", "type": "Refer", "targetType" } }) eingetragen.
| Attribut | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige Kennung der Ressource. |
type | string | Art der Ressource. Bei SpaceRole immer "SpaceRole". |
space | Refer<Space> | Der Space, zu dem diese SpaceRole gehört. |
createdBy | Refer<User> | Der Benutzer, der die Ressource erstellt hat. |
createdAt | string (date-time) | Zeitpunkt der Erstellung. |
updatedBy | Refer<User> | Der Benutzer, der die Ressource zuletzt geändert hat. |
updatedAt | string (date-time) | Zeitpunkt der letzten Änderung. |
isLocked | boolean | Bei true handelt es sich um eine standardmäßig bereitgestellte Rolle, die nicht geändert oder gelöscht werden kann. Selbst erstellte Rollen sind false. |
version | integer (≥1) | Version der Ressource. Erhöht sich bei jeder Änderung um 1. |
SpaceRole ist eine Einstellungsressource ohne Veröffentlichungskonzept. Anders als bei Content und Media enthält sys daher kein publish, archive oder status, sondern nur version. Die version erhöht sich bei jeder Änderung der SpaceRole.
Berechtigungs-Maps: contentType, content, media
contentType, content und media sind jeweils Maps, deren Schlüssel Aktionen sind. Die Aktionen sind Read (Lesen), Create (Erstellen), Edit (Bearbeiten), Delete (Löschen) und Publish (Veröffentlichen); zusätzlich gibt es All, das alle Aktionen auf einmal abdeckt. Der Wert jeder Aktion ist ein Objekt, das Regel-Arrays für Allow (Erlauben) und Deny (Verweigern) enthält.
"content": {
"Read": { "Allow": [ /* Regel */ ], "Deny": [ /* Regel */ ] },
"Edit": { "Allow": [ /* Regel */ ] }
}Jedes Regelobjekt (rule) hat optionale Filter, die den Berechtigungsumfang einschränken.
contentType: Beschränkt das Ziel, auf das die Regel angewendet wird, auf genau einen bestimmten Content Type. Hier wird einRefereingetragen, das auf den Content Type verweist.createdBy: Beschränkt auf Ressourcen, die von einem bestimmten Benutzer erstellt wurden. Wird insys.iddie Kennung eines bestimmten Benutzers eingetragen, gilt die Regel nur für dessen Ressourcen; mit dem reservierten Wert:selfgilt sie nur für Ressourcen, die der aktuell aufrufende Benutzer erstellt hat.tag: Beschränkt auf Ressourcen, die mit einem bestimmten Tag versehen sind.
Ein leeres Allow-Array [] bedeutet, dass die Aktion für die gesamte jeweilige Art erlaubt ist. Da der Filter leer ist, gibt es nichts zu filtern, und die Aktion ist für alle Ressourcen geöffnet.
Beispiel 1: Administrator (Vollzugriff, standardmäßig bereitgestellt)
Die Rolle Administrator erlaubt mit einem leeren Allow auf der Aktion All für contentType, content und media jeweils den vollständigen Zugriff und gewährt mit ["SETTING_ALL"] in settings den Zugriff auf sämtliche Einstellungen des Space. Da Weegloo diese Rolle standardmäßig bereitstellt, ist sys.isLocked gleich true und die Rolle kann nicht geändert oder gelöscht werden.
{
"sys": {
"id": "3trmXRLdJF4GBlAjtcuoWfVubsasp4",
"type": "SpaceRole",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "_", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-14T14:56:04.737Z",
"updatedBy": { "sys": { "id": "_", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-14T14:56:04.737Z",
"isLocked": true,
"version": 1
},
"name": "Administrator",
"description": "Members of this role have full access to everything in this space.",
"contentType": { "All": { "Allow": [] } },
"content": { "All": { "Allow": [] } },
"media": { "All": { "Allow": [] } },
"settings": ["SETTING_ALL"]
}Beispiel 2: Schreibgeschützt (nur ein bestimmter Content Type)
Ein Beispiel für eine selbst erstellte least-privilege-Rolle. Es wird nur auf der Aktion Read von content eine Regel gesetzt, und über den Filter contentType dieser Regel wird sie auf genau einen bestimmten Content Type beschränkt. Der Content Type selbst und Media sind mit einem leeren Allow auf All geöffnet, doch bei den Inhaltsdaten ist nur das Lesen dieser einen Art möglich. Da settings gleich [] ist, besteht kein Zugriff auf die Einstellungen des Space. Wird eine solche Rolle an ein DeliveryAccessToken gebunden, liest das Auslieferungs-Token nur diesen Umfang. Das JSON dieser Rolle entspricht der "Produkt schreibgeschützt" aus der obigen Ressourcenstruktur.
settings (Zugriff auf Space-Einstellungen)
settings ist keine Berechtigungs-Map, sondern ein Array aus Zeichenfolgen. Es enthält die Zugriffsberechtigung auf die Einstellungen des Space; Vollzugriff ist ["SETTING_ALL"], kein Zugriff wird mit [] ausgedrückt.
Die Aktionsliste (
Read,Create,Edit,Delete,Publish,All), die Filterschlüssel (contentType,createdBy,tag) und die Bedeutung von:selfrichten sich nach der Definition der Berechtigungsregeln inweegloo-space-role.
API
Die Basis-URL aller folgenden Endpunkte ist https://cma.weegloo.com/v1, und im Header Authorization ist ein Bearer-Token erforderlich, das gegen CMA authentifiziert. Beim Ändern einer Rolle (PUT, PATCH) muss für die optimistische Nebenläufigkeitskontrolle zusätzlich der Header X-Weegloo-Version (die aktuelle sys.version der Ressource) gesendet werden. Beim Erstellen und Löschen entfällt dieser Header. Standardmäßig bereitgestellte Rollen mit sys.isLocked gleich true können nicht geändert oder gelöscht werden.
Verwandte Dokumente
- Space Membership: Bindet eine SpaceRole an die
roleseines Mitglieds. - Delivery Access Token: Auslieferungs-Token, das an eine least-privilege-SpaceRole gebunden wird.
- Content Type: Der Content Type, auf den die Berechtigungsregeln verweisen.
