Realm
Creating, retrieving and managing realms and also enabling, disabling and checking per realm security status.
Realms are routing and administrative domains that act as namespaces. All resources in Bondy belong to a Realm. Messages are routed separately for each individual realm so sessions attached to a realm won’t see message routed on another realm.
Types
realm
The representation of the realm returned by the read or write operations e.g. get, list, create or update.
uriThe realm identifier
descriptionA textual description of the realm.
is_prototypeIf true this realm is a realm used as a prototype. Prototype realms cannot be used by themselves. Once a realm has been designated as a prototype it cannot be changed.
falseprototype_uriIf present, this it the URI of the the realm prototype this realm inherits some of its behaviour and features from. This is an irreflexive property i.e. a realm cannot have itself as prototype.
is_sso_realmIf true this realm is an SSO Realm. Once a realm has been designated as an SSO realm it cannot be changed.
falsesso_realm_uriIf present, this is the URI of the SSO Realm this realm is connected to. An update can change it only while the realm holds no users linked to its current SSO realm. When the realm is a prototype, the same check applies to each realm that inherits this property from it.
allow_connectionsIf true this realm will allow connections from clients. It is normally set to false when the realm is an SSO Realm.
INFO
Prototype realms never allow connections, so if you set is_prototype to true this property will be assumed to be false.
authmethodsThe authentication methods set on this realm. The key is absent when the realm sets none and inherits them.
["anonymous", "password", "oauth2", "wampcra", "ticket"].rate_limitThe realm's own rate-limit budgets — the realm scope of the rate-limiting chain (see the rate limiting guide). A request is admitted only when the node, listener AND realm budgets all admit it, so these can only narrow what the node allows. Covers the classes a realm-addressed request reaches: auth, http and message. Setting the property to null on update clears it.
:::warning
Budgets are enforced per node: a total of N tokens per second bounds each cluster node separately.
:::
password_optsThe password hashing options of the realm. The key is absent when the realm sets none.
public_keysThe public keys of the realm's signing keys, each as a JSON Web Key (JWK) map.
security_statusThe string 'enabled' if security is enabled on the realm. Otherwise the string is 'disabled'.
input_data
The object used to create or update a realm. Notice this object contains more information than the actually created realm e.g. users, groups, etc.
uriThe realm identifier
descriptionA textual description of the realm.
is_prototypeIf true this realm is a realm used as a prototype. Prototype realms cannot be used by themselves. Once a realm has been designated as a prototype it cannot be changed.
falseprototype_uriIf present, this it the URI of the the realm prototype this realm inherits some of its behaviour and features from. This is an irreflexive property i.e. a realm cannot have itself as prototype.
is_sso_realmIf true this realm is an SSO Realm. Once a realm has been designated as an SSO realm it cannot be changed.
falsesso_realm_uriIf present, this is the URI of the SSO Realm this realm is connected to. An update can change it only while the realm holds no users linked to its current SSO realm. When the realm is a prototype, the same check applies to each realm that inherits this property from it.
allow_connectionsIf true this realm will allow connections from clients. It is normally set to false when the realm is an SSO Realm.
INFO
Prototype realms never allow connections, so if you set is_prototype to true this property will be assumed to be false.
authmethodsThe list of the authentication methods allowed by this realm. Allowed values: 'anonymous', 'cookie', 'cryptosign', 'oauth2', 'oidcrp', 'password', 'ticket', 'tls', 'trust', 'wamp-scram', 'wampcra'. Bondy never offers 'tls' or 'oidcrp' to a WAMP session; see Authentication Method.
["anonymous", "password", "oauth2", "wampcra", "ticket"].security_enabledWhether security is enabled or not.
rate_limitThe realm's own rate-limit budgets — the realm scope of the rate-limiting chain (see the rate limiting guide). A request is admitted only when the node, listener AND realm budgets all admit it, so these can only narrow what the node allows. Covers the classes a realm-addressed request reaches: auth, http and message. Setting the property to null on update clears it.
:::warning
Budgets are enforced per node: a total of N tokens per second bounds each cluster node separately.
:::
usersA list of user objects.
groupsA list of group objects.
sourcesA list of source objects.
grantsA list of grant objects.
private_keysA list of private keys used for signing.
encryption_keysA list of private keys used for encryption.
API
Realm management is available over HTTP through the Admin HTTP API. Each route calls the matching Realm WAMP API procedure, which documents the arguments, results and errors.
| Method | Path | WAMP procedure |
|---|---|---|
GET | /realms | bondy.realm.list |
POST | /realms | bondy.realm.create |
GET | /realms/:realm_uri | bondy.realm.get |
PUT | /realms/:realm_uri | bondy.realm.update |
DELETE | /realms/:realm_uri | bondy.realm.delete |
GET | /realms/:realm_uri/security_enabled | bondy.realm.security.is_enabled |
PUT | /realms/:realm_uri/security_enabled | bondy.realm.security.enable |
DELETE | /realms/:realm_uri/security_enabled | bondy.realm.security.disable |