ABAC_Object_Properties_Reference
ABAC Object Properties Reference
This document lists all properties available on objects passed to ABAC rules.
User Object
Available as: authenticatedUser, user, onBehalfOfUserOpt.get
Core Properties
user.userId // String - Unique user ID
user.emailAddress // String - User's email
user.name // String - Display name
user.provider // String - Auth provider
user.providerId // String - Provider's user ID
Usage Examples
// Check if user is admin
user.emailAddress.endsWith("@admin.com")
// Check specific user
user.userId == "alice@example.com"
BankAccount Object
Available as: accountOpt.get
Core Properties
account.accountId // AccountId - Account identifier
account.bankId // BankId - Bank identifier
account.accountType // String - Account type
account.balance // BigDecimal - Current balance
account.currency // String - Currency code (e.g., "EUR")
account.name // String - Account name
account.label // String - Account label
account.owners // List[User] - Account owners
Usage Examples
// Check balance
accountOpt.exists(_.balance.toDouble >= 1000.0)
// Check ownership
accountOpt.exists(account =>
account.owners.exists(owner => owner.userId == user.userId)
)
// Check currency
accountOpt.exists(_.currency == "EUR")
Bank Object
Available as: bankOpt.get
Core Properties
bank.bankId // BankId - Bank identifier
bank.shortName // String - Short name
bank.fullName // String - Full legal name
bank.logoUrl // String - URL to bank logo
bank.websiteUrl // String - Bank website URL
bank.bankRoutingScheme // String - Routing scheme
bank.bankRoutingAddress // String - Routing address
Usage Examples
// Check specific bank
bankOpt.exists(_.bankId.value == "gh.29.uk")
// Check bank by routing
bankOpt.exists(_.bankRoutingScheme == "SWIFT_BIC")
Transaction Object
Available as: transactionOpt.get
Core Properties
transaction.id // TransactionId - Transaction ID
transaction.amount // BigDecimal - Transaction amount
transaction.currency // String - Currency code
transaction.description // String - Description
transaction.startDate // Option[Date] - Posted date
transaction.finishDate // Option[Date] - Completed date
transaction.transactionType // String - Transaction type
Usage Examples
// Check transaction amount
transactionOpt.exists(tx => tx.amount.abs.toDouble < 100.0)
// Check transaction type
transactionOpt.exists(_.transactionType == "SEPA")
Customer Object
Available as: customerOpt.get
Core Properties
customer.customerId // String - Customer ID
customer.customerNumber // String - Customer number
customer.legalName // String - Legal name
customer.mobileNumber // String - Mobile number
customer.email // String - Email address
customer.dateOfBirth // Date - Date of birth
Usage Examples
// Check customer email domain
customerOpt.exists(_.email.endsWith("@company.com"))
Attribute Objects
UserAttributeTrait
attr.name // String - Attribute name
attr.value // String - Attribute value
attr.attributeType // UserAttributeType - Type of attribute
Usage Example
// Check for specific non-personal attribute
authenticatedUserAttributes.exists(attr =>
attr.name == "department" && attr.value == "finance"
)
// Note: User attributes in ABAC rules only include non-personal attributes
// (where IsPersonal=false). Personal attributes are not available for
// privacy and GDPR compliance reasons.
Related Documentation:
- ABAC_Simple_Guide - Getting started guide
- ABAC_Parameters_Summary - Complete parameter list
- ABAC_Account_Access_Enforcement - Runtime gate model