ABAC_Parameters_Summary
ABAC Rule Parameters Summary
The ABAC Rules Engine provides 18 parameters to your rule function, organized into three categories:
User Parameters (6 parameters)
- authenticatedUser: User - The logged-in user
- authenticatedUserAttributes: List[UserAttributeTrait] - Non-personal attributes of authenticated user (IsPersonal=false)
- authenticatedUserAuthContext: List[UserAuthContext] - Auth context of authenticated user
- onBehalfOfUserOpt: Option[User] - User being acted on behalf of (if provided)
- onBehalfOfUserAttributes: List[UserAttributeTrait] - Non-personal attributes of on-behalf-of user (IsPersonal=false)
- onBehalfOfUserAuthContext: List[UserAuthContext] - Auth context of on-behalf-of user
Target User Parameters (3 parameters)
- userOpt: Option[User] - Target user being evaluated
- userAttributes: List[UserAttributeTrait] - Non-personal attributes of target user (IsPersonal=false)
- user: User - Resolved target user (defaults to authenticatedUser)
Resource Context Parameters (9 parameters)
- bankOpt: Option[Bank] - Bank context (if bank_id provided)
- bankAttributes: List[BankAttributeTrait] - Bank attributes
- accountOpt: Option[BankAccount] - Account context (if account_id provided)
- accountAttributes: List[AccountAttribute] - Account attributes
- transactionOpt: Option[Transaction] - Transaction context (if transaction_id provided)
- transactionAttributes: List[TransactionAttribute] - Transaction attributes
- transactionRequestOpt: Option[TransactionRequest] - Transaction request context
- transactionRequestAttributes: List[TransactionRequestAttributeTrait] - Transaction request attributes
- customerOpt: Option[Customer] - Customer context (if customer_id provided)
- customerAttributes: List[CustomerAttribute] - Customer attributes
Usage in Rules
// Access user email
authenticatedUser.emailAddress
// Check if account exists and has sufficient balance
accountOpt.exists(account => account.balance.toDouble >= 1000.0)
// Check user attributes (non-personal only)
authenticatedUserAttributes.exists(attr =>
attr.name == "role" && attr.value == "admin"
)
// Note: Only non-personal attributes (IsPersonal=false) are included
// Check delegation
onBehalfOfUserOpt.isDefined
Related Documentation:
- ABAC_Simple_Guide - Getting started guide
- ABAC_Object_Properties_Reference - Detailed property reference
- ABAC_Account_Access_Enforcement - Runtime gate model