- No client-side encryption: plaintext content-addressed remote (SHA-256 names), no backup key, no cryptography dependency (server disk encryption is the trust model). - Filters back user data: images, archives, databases, PDFs accepted; 10 MiB cap; binary sniffing removed; temp names hardened (~$, #..#, .temp). - SQLite zero-error policy: backup-API snapshots + integrity_check, journal folding, locked/corrupt loud skips, verified restores. - Recovery: reindex from manifests, remote adopt, on-demand blob fetch, 5-day retention + thinning, GC, date-guarded remote purge, metrics. - Scheduler with WebDAV quota signal and 70% pressure backstop (floor kept). - 37 tests incl. live-monitor capture safety and DB safety.
31 lines
581 B
TOML
31 lines
581 B
TOML
[build-system]
|
|
requires = ["setuptools>=69"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "versiond"
|
|
version = "0.1.0"
|
|
description = "Local file versioning and backup service"
|
|
readme = "readme.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.110",
|
|
"uvicorn>=0.29",
|
|
"httpx>=0.27",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8"]
|
|
|
|
[project.scripts]
|
|
versiond = "versiond.cli:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.package-data]
|
|
versiond = ["dashboard.html"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|