Backend
1. Variables
ensure var VarSequencePasswordId kind: sequence
modules: ["LastPass"]
deploy: fixedOnDeploy
value: 100
ensure var VarSetOfTextPasswordCategory kind: setOfText
modules: ["LastPass"]
deploy: fixedOnDeploy
value: "<root>
<node key='keyWifi'>Wi-Fi</node>
<node key='keyNetBanking'>Banking</node>
<node key='keyOther'>Other</node>
</root>"
ensure var VarSetOfTextBankingType kind: setOfText
modules: ["LastPass"]
deploy: fixedOnDeploy
value: "<root>
<node key='keyBankCard'>Bank Card</node>
<node key='keyBankAccount'>Bank Account</node>
<node key='keyBanking'>Net Banking</node>
</root>"
ensure var VarSetOfTextCardType kind: setOfText
modules: ["LastPass"]
deploy: fixedOnDeploy
value: "<root>
<node key='keyVisaCard'>Visa Card</node>
<node key='keyMastercard'>Master Card</node>
<node key='keyRuPayCard'>RuPay Card</node>
<node key='keyDiscoverCard'>Discover Card</node>
</root>"
ensure var VarPasswordIdTextPattern kind: text
modules: ["LastPass"]
deploy: fixedOnDeploy
value: "PID-${P}"
ensure var VarPasswordSequence kind: sequence deploy: fixedOnDeploy value: 100
ensure var VarTextPatternPasswordId kind: text
modules: ["LastPass"]
deploy: fixedOnDeploy
value: "PID-${P}"
2. PasswordSheet
ensure spreadsheet: PasswordSheet
withFields: [
"Id",
"Member",
"Category*",
"Title",
"BankingType",
"BankName",
"CardType"
]
ofTypes: [identifier, pickUser, pickText, text, pickText, text, pickText]
modules: ["LastPass"]
readRoleSet: [Member]
insertRoleSet: [Member]
updateRoleSet: [Member]
removeRoleSet: [Member]
ensure form EntityPassword
modules: ["LastPass"]
ensure section: Details
ensure field Id
textPatternVar: {
'var': 'VarTextPatternPasswordId',
'paramSet': [
'${var:VarSequencePasswordId}'
]
}
disabled: true
permissionMatrix: {
'defaultPermission': 'invisible'
}
setOnSend: true
ensure field Member
disabled: true
permissionMatrix: {
'defaultPermission': 'invisible'
}
roleDataSource: [Member]
defaultValue: $Self
ensure field Category sourceVar: VarSetOfTextPasswordCategory
ensure field BankingType sourceVar: VarSetOfTextBankingType
ensure field BankName
ensure field CardType sourceVar: VarSetOfTextCardType
// section, Card
ensure section: Card
ensure field CardNumber kind: text
ensure field Expirydate kind: date defaultValue: "now"
ensure field HolderName kind: text
ensure field PIN kind: text
ensure field CVV kind: text
// section, BankAccount
ensure section: BankAccount
ensure field AccountNumber kind: text
ensure field HolderName1 kind: text
ensure field BranchName kind: text
ensure field BranchCode kind: text
ensure field IFSCCode kind: text
ensure field Address kind: text
// composite, section, NetBanking
ensure section: NetBanking
ensure field UserName kind: text
ensure field TransactionPIN kind: text
// composite, section, WiFi
ensure section: WiFi
ensure field WiFiTitle kind: text
helperText: "e.g., Home Wi-Fi, Office Wi-Fi"
ensure field NetworkName kind: text
// composite, section, Other
ensure section: Other
ensure field OtherUserName kind: text
ensure field OtherUrl kind: text
// composite, section, Password
ensure section: Password
ensure field Password kind: text
// composite, section, Notes
ensure section: Notes
ensure field Divider kind: divider dividerKind: thick
ensure field Notes kind: paragraph flexHeight: true
3. Visibility Rules
Define rules for conditional visibility .
// visibilityRule, Card
ensure visibilityRule Card
condition: "<root>
<stmt>Details.BankingType == ${d:BankingType.keyBankCard}</stmt>
</root>"
ensure actionMapIfTrue CardVisible
comp: Card
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfTrue CardTypeVisible
comp: CardType
visibilityAction: visible
visibilityActionOn: field
ensure actionMapIfTrue PasswordVisible
comp: Password.Password
visibilityAction: visible
visibilityActionOn: field
ensure actionMapIfFalse CardHide
comp: Card
visibilityAction: hidden
visibilityActionOn: component
ensure actionMapIfFalse CardTypeHide
comp: Details.CardType
visibilityAction: hidden
visibilityActionOn: field
// visibilityRule, BankAccount
ensure visibilityRule BankAccount
condition: "<root>
<stmt>Details.BankingType == ${d:BankingType.keyBankAccount}</stmt>
</root>"
ensure actionMapIfTrue BankAccountVisible
comp: BankAccount
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfTrue PasswordVisible
comp: Password
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfFalse BankAccountHide
comp: BankAccount
visibilityAction: hidden
visibilityActionOn: component
// visibilityRule, WiFi
ensure visibilityRule WiFi
condition: "<root>
<stmt>Details.Category == ${d:Category.keyWifi}</stmt>
</root>"
ensure actionMapIfTrue WiFiVisible
comp: WiFi
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfTrue PasswordVisible
comp: Password
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfFalse WiFiHide
comp: WiFi
visibilityAction: hidden
visibilityActionOn: component
// visibilityRule, Other
ensure visibilityRule Other
condition: "<root>
<stmt>Details.Category == ${d:Category.keyOther}</stmt>
</root>"
ensure actionMapIfTrue OtherVisible
comp: Other
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfTrue PasswordVisible
comp: Password
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfFalse OtherHide
comp: Other
visibilityAction: hidden
visibilityActionOn: component
// visibilityRule, V1
ensure visibilityRule V1
condition: "<root>
<stmt>Details.Category has changed</stmt>
</root>"
ensure actionMapIfTrue BankingTypeClear
comp: Details.BankingType
visibilityAction: clear
visibilityActionOn: field
// visibilityRule, SelectOption
ensure visibilityRule SelectOption
condition: "<root>
<stmt>Details.Category == ${d:Category.keyNetBanking}</stmt>
</root>"
ensure actionMapIfTrue BankingTypeVisible
comp: Details.BankingType
visibilityAction: visible
visibilityActionOn: field
ensure actionMapIfTrue BankNameVisible
comp: Details.BankName
visibilityAction: visible
visibilityActionOn: field
ensure actionMapIfFalse BankingTypeHide
comp: Details.BankingType
visibilityAction: invisible
visibilityActionOn: field
ensure actionMapIfFalse BankNameHide
comp: Details.BankName
visibilityAction: invisible
visibilityActionOn: field
// visibilityRule, Netbanking
ensure visibilityRule Netbanking
condition: "<root>
<stmt>Details.BankingType == ${d:BankingType.keyBanking}</stmt>
</root>"
ensure actionMapIfTrue NetBankingVisible
comp: NetBanking
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfTrue PasswordVisible
comp: Password
visibilityAction: visible
visibilityActionOn: component
ensure actionMapIfFalse NetBankingHide
comp: NetBanking
visibilityAction: hidden
visibilityActionOn: component