Package-level declarations
Types
Link copied to clipboard
class Caller @InternalWowApi constructor(val tenantId: String = DEFAULT_TENANT, val scope: Scope = Scope.NONE, val subject: String? = null, val crossScope: Boolean = false, val attributes: Map<String, List<String>> = emptyMap(), val service: Boolean = false)
Who sends a command or runs a query, as the edge authenticated it: the facts admission takes a command's identity from (identity comes from the principal, never from the path or the body), and the facts an access policy (me.ahoo.wow.api.access.AccessPolicy) compares and a read authorizer (ReadAuthorizer) decides by. Commands and queries share it: the edge resolves one per request.
Link copied to clipboard
class TargetScope @InternalWowApi constructor(val tenantId: String? = null, val scope: Scope = Scope.NONE)
The tenant and scope a caller with me.ahoo.wow.api.caller.Caller.crossScope asks to act in instead of its own (the Wow-Scope header): tenantId, when given, replaces the caller's tenant, and scope replaces the caller's scope as a whole, so a part it leaves out is not checked against the aggregate.