Password Keeper
This example demonstrates using ULDA to securely store and update passwords, simulating a password manager. It creates a master file for a user's password vault, adds a password entry, updates it, changes the master file password, and deletes the entry.
import { Ulda } from '@zeroam/ulda'; async function passwordKeeper() { const ulda = new Ulda('your_api_key', 'https://api.0am.ch', true); const masterFileName = 'passwordVault'; // Must be unique per API key const password = 'vaultPass789'; const newPassword = 'vaultPass999'; try { // Create and connect to master file await ulda.createMasterFile(masterFileName, password); await ulda.connect(masterFileName, password); // Create content file for a password entry const pwdData = { site: 'example.com', username: 'user1', password: 'pass123' }; await ulda.createContentFile(pwdData, 'exampleLogin'); // Unique name in master file console.log('Password saved:', ulda.data['exampleLogin'].content); // Update password await ulda.data['exampleLogin'].update({ password: 'newPass456' }); console.log('Updated password:', ulda.data['exampleLogin'].content); // Change master file password await ulda.changeMasterFilePassword(newPassword); await ulda.connect(masterFileName, newPassword); console.log('Master file password changed'); // Set up real-time updates await ulda.connectToUpdateContentFile((response) => { console.log('Password updated in real-time:', response); }); // Delete content file await ulda.data['exampleLogin'].delete(); console.log('Password entry deleted'); } catch (error) { console.error('Error:', error.message); } } passwordKeeper().catch(console.error);
Success Output:
Password saved: { site: 'example.com', username: 'user1', password: 'pass123' } Updated password: { site: 'example.com', username: 'user1', password: 'newPass456' } Master file password changed Password entry deleted
Notes:
- The real-time update listener's output is omitted as it depends on external updates triggering
content:update
. - Outputs reflect successful
createContentFile
,update
,changeMasterFilePassword
, anddelete
operations.