API Explorer

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