-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
mindmap
root((Developer Experience))
Automate reference documentation
Extract Iglootools Common Practices
mindmap
root((User Experience))
Documentation
Features
Cryptsetup Assistance
Additional Sources and Destinations
Reporting
Reminders
Performance
Better CLI
MVP
Build
- asciicinema: CI build, credentials, do we want to upload every demo, etc?
Fixes
- Sunc results: snapshots: display remote backups with ssh server:prefix
- prune bugs: nothing displayed in table
QA
- Recreate my original ssb config and make sure it all works out, with locations
- Explore real-world complex SSH examples with hosts defined inside SSH config, bastions, ssh agent forwarding, etc, and make sure the whole thing makes sense
- Review formatting logic in details. Do we display the right hosts with multiple endpoints? Do we display all the information we need? etc
--private,--public,--location
Code Review
- Ability to simplify check returns?
- not necessarily to distinguish source / destination problems, just need to identify which volume
- no need to perform the same checks for each sync
- does troubleshoot per sync make sense? I think so...
Roll out
- Merge branch
- Test PyPI + PyPI publishing
- Test publishers + prod publishers
- Test environment + prod environment
User Experience
Documentation
- Demo: https://asciinema.org
- Tutorials
- How-to Guides
- Understanding: polish concepts / architecture
- demo terminal size too small? too many things displayed?
Cryptsetup Assistance
troubleshootcommand: also provide instructions to help setting up encrypted volumes with cryptsetup, and maybe even trigger mounts usingsystemd-run --pipe --wait systemctl startsystemd-cryptsetup@securedata.service. encrypted config on destinations to trigger check for encryption? Check fnox?- The tool could automatically mount and unmount these volumes, and support for storing encryption keys in the client OS keyring (python
keyringlib) is planned.
Reminders
- Backup event log with run id (stored in destination, cached in workstation).
- Store run id in snapshot name or metadata file?
- Config: desired frequency
- Locking system
- History: Show backup logs and stats (can parse stats from rsync). Full audit log.
- Event Log: RocksDB? SurrealDB? other rust DBs?
user launchd + systemd scripts to schedule
Reporting
- Status / Backup / Destinations stats: Number of snapshots, Number of files, File size, Last snapshot date ...
- Make consistent with prune command
Additional Sources & Destinations
- Git Backup support
- Github API support to automatically check out all repos?
- Orchestration using other tools (Borg, etc)
gmvault, google contacts, bitwarden vault, etc- Support for APFS snapshots on Mac OS X (may require sudo)
- Additional retention policies, like keeping one old backup per month/year/etc
- Investigate supporting bidirectional syncs using unison?
Performance
- Parallel execution of different non-dependent syncs?
Better CLI
- Consider using Textual for the demo
Developer Experience
- Global iglootools conventions / practices
mise .venvconfig +poetry config virtualenvs.in-project true=> conventions?- release + publish workflow
- Dev Environment
- VSCode plugins: Mise VSCode, tombi, ... (iglootools common setup instructions?)
- https://github.com/SuperClaude-Org/SuperClaude_Framework
- General Testing Strategy: unit + integration + demo/testcli
- demo/testcli/testapp: provides a way to visualize all the messages, components, etc with fake data
- provides a way to set up a test environment from scratch
- Automatically generate reference data
- config syntax (from pydantic models)
- (erdantic, sphinx-pydantic, json-schema-for-humans, docdantic, dumping the JSON schema directly, jsonschema-markdown...)
- list of commands and arguments (from cli)
- Generate ascii demo gif from CI
- config syntax (from pydantic models)
- Faster tests
- Compress the e2e tests into
test_chain, with test_chain explicitly testing all the corner cases of the other tests
- Compress the e2e tests into
Limitations
- Cannot currently have a remote -> remote sync targeting the same server, with one volume using a bastion and the other directly targetting the server. Is that a problem?
- bash 3 generation (for Mac OS X compatibility) vs Bash 4 support
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels