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, anddeleteoperations.