Managing consumption of Password Manager capabilities
The Password Manager SDK enables you to examine the resources used and their limits for a registered user. Resource limits are described by an Entitlement, an object with a name and a limit indicating some maximum usage value. Resource usage is tracked for each Sudo.
To allocate entitlements to your users or groups of users, refer to the Entitlements Administrative API.
Entitlement Types
The following table describes the entitlements used to control access to the Password Manager:
Entitlement
Type
Description
sudoplatform.vault.vaultMaxPerSudo
Numeric
Maximum number of vaults a Sudo can have at a time. If zero, this user is not entitled to access the Password Manager.
dataclassEntitlement(// ...) : Parcelable {/** Enum that represents the different types of entitlements available */enumclassName { MAX_VAULTS_PER_SUDO }}
Getting Entitlements
The getEntitlement method returns the set of Password Manager Entitlements and their limits granted to the signed in user.
try {constentitlements=awaitclient.getEntitlement()entitlements.forEach((ent) =>console.log(`This user can have up to ${ent.limit} of ${ent.name}`))} catch (error) {// Handle/notify user of the error.}
var client: PasswordManagerClient!client.getEntitlement { (result) inswitch result {case .success(let entitlements): entitlements.forEach {print("This user can have up to \($0.limit) of \($0.name)") }case .failure(let error):/* Handle error logic */return }}
// val client: SudoPasswordManagerClientlaunch {try {val entitlement =withContext(Dispatchers.IO) { client.getEntitlement() } entitlement.forEach {println("This user can have up to ${it.limit} of ${it.name}") } } catch (e: SudoPasswordManagerException) {// Handle/notify user of exception }}
The getEntitlementState method returns the usage value of each Password Manager Entitlement for each Sudo.
try {constentitlementStates=awaitclient.getEntitlementState()entitlementStates.forEach((ent) =>console.log(`Sudo ${ent.sudoId} has consumed ${ent.value}/${ent.limit} of ${ent.name}`))} catch (error) {// Handle/notify user of the error.}
var client: PasswordManagerClient!// Entitlement stateclient.getEntitlementState { (result) inswitch result {case .success(let entitlements): entitlements.forEach {println("Sudo \($0.sudoId) has consumed \($0.value)/\($0.limit) of \($0.name)") }case .failure(let error):/* Handle error logic */return }}
// val client: SudoPasswordManagerClientlaunch {try {val entitlementState =withContext(Dispatchers.IO) { client.getEntitlementState() } entitlementState.forEach {println("Sudo ${it.sudoId} has consumed ${it.value}/${it.limit} of ${it.name}") } } catch (e: SudoPasswordManagerException) {// Handle/notify user of exception }}
Read more about the Sudo Platform entitlements system and how to integrate with it in the Entitlements section of the Sudo Platform documentation.