Answer the plugin's route as a path no route serves ends here | Its role holds plugins.security and its token carries qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: a browser requests one of the plugin's routes under /upstream/<type> on the realm host
|
Hand the request to the plugin's route ends here | Its role holds plugins.security and its token carries qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: the caller holds the permission and the approval, which the handler transaction consumes
- Check the plugin, its state and its config, and turn it on: the row is written enabled, conditional on its version, and the audit row records the change
- The plugin is on in the realm: a browser requests one of the plugin's routes on the realm host
|
Refuse a caller whose role lacks the permission ends here | Its role holds no security permission, such as an editor, whatever its token carries, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: the role lacks the permission: no token would pass, and the challenge names no scope
|
Refuse a token without qauth:admin:security, naming the scope ends here | Its role holds plugins.security, and its token carries qauth:admin:write but not qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: only the token withholds the permission: qauth:admin:write is refused
|
Refuse a security operation without its approval ends here | Its role holds plugins.security and its token carries qauth:admin:security, it names none, or one for another request, or one not approved, expired or used, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: no approval for exactly this request: the operation never runs
|
Refuse a plugin the deployment did not load ends here | Its role holds plugins.security and its token carries qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, it names no loaded plugin, the body's version, and If-Match when present, name the version of the plugin state the handler reads, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: the caller holds the permission and the approval, which the handler transaction consumes
- Check the plugin, its state and its config, and turn it on: the path names no installed plugin
|
Refuse a request written against another state ends here | Its role holds plugins.security and its token carries qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body or If-Match names another version: the state changed since the caller read it, or since its approval was filed, the realm's config of the plugin, its secrets decrypted, passes the plugin's config schema | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: the caller holds the permission and the approval, which the handler transaction consumes
- Check the plugin, its state and its config, and turn it on: the state moved since the caller read it, or its approver saw it: the body names the version the approval binds
|
Refuse to enable a plugin whose config its schema refuses ends here | Its role holds plugins.security and its token carries qauth:admin:security, QAuth-Approval names an approval filed for exactly this request by this caller, approved and unexpired, the path names a plugin this deployment loaded at boot, the body's version, and If-Match when present, name the version of the plugin state the handler reads, it does not, or the realm never configured the plugin | - The plugin is off in the realm: an admin sends POST /admin/v1-rc.0/realms/{realmId}/plugins/{plugin}/enable
- Check the permission and the approval of the enable: the caller holds the permission and the approval, which the handler transaction consumes
- Check the plugin, its state and its config, and turn it on: the realm's config does not pass the plugin's schema: a plugin is on only with a config it accepts
|