DEPRECATED: Use tibet-wayback instead. Features absorbed into tibet-wayback 0.2.0.
Project description
tibet-snap — Cryptographic State Snapshots & Rollback
After a breach (Odido leak, Politie cookies hack, ransomware), the first question is: what changed, and how do we get back to a trustworthy state?
tibet-snap creates cryptographically sealed snapshots of system state using TIBET provenance tokens. Each snapshot captures file paths, SHA-256 hashes, timestamps, sizes and permissions — forming an immutable chain of system states.
What it does
- Snapshot — Capture the current state of files and directories as a TIBET-sealed record
- Compare — Diff two snapshots to see exactly what was added, removed, or modified
- Verify — Re-hash every file and confirm the snapshot is still intact
- Rollback plan — Auto-generate a rollback plan with restore/remove/revert actions
- Provenance — Every operation (create, verify, compare, rollback) is a linked TIBET token
Install
pip install tibet-snap
Usage
from tibet_snap import SnapEngine, Snapshot, SnapshotDiff
engine = SnapEngine(store_dir=".tibet-snap")
# Create a snapshot of /etc/nginx
snap = engine.create_snapshot("pre-deploy", paths=["/etc/nginx"])
# Later: create another snapshot
snap2 = engine.create_snapshot("post-deploy", paths=["/etc/nginx"])
# Compare
diff = engine.compare(snap.id, snap2.id)
print(f"Modified: {len(diff.modified)}, Added: {len(diff.added)}, Removed: {len(diff.removed)}")
print(f"Drift score: {diff.drift_score}")
# Verify integrity
ok = engine.verify(snap.id)
# Generate rollback plan
plan = engine.rollback_plan(snap.id)
for action in plan:
print(f" {action['action']}: {action['path']}")
CLI
# Concept overview
tibet-snap info
# Create a snapshot
tibet-snap create pre-deploy /etc/nginx /etc/ssl
# List all snapshots
tibet-snap list
# Compare two snapshots
tibet-snap compare <id_a> <id_b>
# Verify snapshot integrity
tibet-snap verify <id>
# Interactive demo: create → hack → compare → rollback
tibet-snap demo
TIBET Provenance
Every operation creates a linked SnapToken:
| Layer | Content |
|---|---|
| ERIN | Snapshot content (paths, hashes) |
| ERAAN | Parent snapshot, dependencies |
| EROMHEEN | Hostname, timestamp, actor |
| ERACHTER | Intent (create/verify/compare/rollback) |
Tokens are chained: each new token references its parent, forming a tamper-evident audit trail of all snapshot operations.
License
MIT — Humotica / J. van de Meent
Enterprise
For private hub hosting, SLA support, custom integrations, or compliance guidance:
| Enterprise | enterprise@humotica.com |
| Support | support@humotica.com |
| Security | security@humotica.com |
See ENTERPRISE.md for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tibet_snap-0.1.2.tar.gz.
File metadata
- Download URL: tibet_snap-0.1.2.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8445f98af0060136737db7666c9e0c526ea7b5fb35f54ffa099b856701bf4c8c
|
|
| MD5 |
86237b06279b1a19201c3a10e1780e60
|
|
| BLAKE2b-256 |
8fb73c73733aef825a02ddcb0e5a925c26d5cbdbc52399df186c84c97e71db19
|
File details
Details for the file tibet_snap-0.1.2-py3-none-any.whl.
File metadata
- Download URL: tibet_snap-0.1.2-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bf408d04b572e9b2dc7cb26c520a728cea7b8bcb8e1fa37593cec15a3cd83ea
|
|
| MD5 |
894c7c7378651f7192b27333047731a6
|
|
| BLAKE2b-256 |
fe03f580a604609968843e2ad928458fc02350020337f4dc8b1d37a765ba576e
|