# TODO
## Roadmap
### Next
fix:
- [x] Sanitize all input to be stored (to remove all characters not allowed in Keepass XML)
- [ ] Show dates for each entry
- [ ] Add a list command to list all entries
- [ ] Add an option to pass master password from the command line
- [ ] Option to output JSON, for scripting
- [ ] Editing of entries
- [ ] remove anyhow?
- [x] add TOTP support
- [x] first time vault creation
- [x] invalid password error message
- [ ] OTP support
### 3.0
- [ ] edit functionality
- [ ] push to vault from keychain
### Scription examples
With JSON output, following could be done.
NOT: make sure you have unlocked the vault before running these commands. Alternatively, you can use the `---master-pwd` flag to provide the password.
1. Integrate with other security tools:
```bash
# Get password and pipe it to a security analysis tool
# Bulk check all passwords
2. Automated password rotation:
```bash
# Script to rotate passwords for all services
update-service-password "$service" "$username" "$new_password"
passlane update "$service" --username "$username" --password "$new_password"
done
```
3. Export to other password managers:
```bash
# Convert to 1Password format
title: .service,
username: .username,
password: .password,
type: "login"
}
' > 1password_import.json
```
4. Create custom reports:
```bash
# Find services using the same password
map(select(length > 1) | map(.service)) |
.[] | @csv
5. Automate login processes:
```bash
# Use with Selenium for automated testing
SERVICE="https://example.com"
CREDS=$(passlane show "$SERVICE" --json)
python <<EOF
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("$SERVICE")
driver.find_element_by_id("username").send_keys("$USERNAME")
driver.find_element_by_id("password").send_keys("$PASSWORD")
driver.find_element_by_id("login").click()
EOF
```
6. Sync with cloud services:
```bash
# Sync passwords to a secure cloud storage
echo "$cred" | aws s3 cp - "s3://secure-bucket/passwords/$service.json"
done
```
7. Generate simple statistics:
```bash
# Count passwords by length
group_by(.) | map({length: .[0], count: length}) |
sort_by(.length)[] | [.length, .count] | @tsv
8. Create a simple API:
```bash
# Run a simple API server
passlane list --json > /tmp/passwords.json
python -m http.server 8000 &