Repository navigation
Releases
v0.1.0
Known limitations
The first release; 0.x means a minor version may still break things, and its
notes will say what to do.
- Kubernetes only. Deploy from the manifests in
deploy/(README,
"Deployment: step by step"). A Compose add-on foropencloud-composeand a
Kustomize add-on follow. - Garage cannot stop a leaked S3 key from deleting backups. Snapshot the
storage host (README, "Protecting backups from the credential that writes
them"). - Members are not mailed. A failing backup is shown in Backup Vault and
mailed to the operator (with SMTP configured), not to family members. - The state Space keeps every revision of the service's records. How fast
that grows over months is not measured yet; watch its size.
What changed
Highlights
- Phase 2: Authenticate Users and Expose Their Spaces and Targets #2
- Phase 3: Establish Per-Space Keys and a Versioned Recovery Envelope #4
- Phase 4: Back Up a Space to Encrypted, Deduplicated Storage #5
- Phase 5: Provide Offline Disaster Recovery and In-Place Restore #6
- Phase 6: Run Backups on a Schedule With Durable State and Failure Alerts #9
- Phase 8: Let People Use the Backup From OpenCloud Web #35
Features
- Publish a Released Image People Can Actually Run #28
- Make Backup Vault Installable Into an Existing OpenCloud #40
- Let Admins Manage Backup Targets From OpenCloud Web #41
- Support OpenCloud 8.x and the Production Release #64
- License the Project and Account for Third-Party Licenses #99
- Report One Version in Every Artifact and Warn on a Mismatch #102
- Publish Signed, Verifiable GitHub Releases #104
- Keep Dependencies Current and Scan Them for Known Vulnerabilities #116
Enhancements
- Test the OpenCloud Half Against a Real OpenCloud #30
- Separate the Backup and Maintenance Credentials #32
- Prove the Whole Flow in a Real Browser #42
- Say Why a Destination Check Failed #53
- Look Like a Native OpenCloud App #59
- Use OpenCloud's Form Controls in Every Flow #60
- Test Every Supported OpenCloud Version in CI #63
- Record What Was Measured on OpenCloud 8.x #67
- Make Server Errors Diagnosable From the Log #72
- Prove Old Backups Stay Readable #76
- Make the Command-Line Tools Behave Predictably #78
- Enforce the Trust Boundaries and an Extended Lint Set #84
- Close Issues When Their Pull Request Merges #88
- Read API Request Bodies Strictly and Mark Responses Uncacheable #90
- Refuse API Requests Whose Body Is Not Declared as JSON #92
- Run Integration Tests Under the Race Detector and Report Coverage #93
- Speed Up the Unit Test Job #94
- Protect Release Tags and Keep Manifests on Published Images #110
- Write Release Notes From the Milestone's Issues #112
- Harden the CI Pipeline Against Tampering and Drift #125
- Apply Pending Dependency Updates and Group Future Ones Coarser #133
- Explain How to Report Vulnerabilities, Contribute and Ask Questions #137
- Describe What the Plugin Does Today in the README #139
Bug fixes
- Make Key, Target and Space-Config Records Survive Crashes #12
- Make the Key Ceremony Once-Only and Support Key Rotation #14
- Honour Space Roles, Grant Expiry and Group Shares #16
- Guarantee a Reported Backup Is a Complete One #18
- Make the Shipped Deployment Safe by Default #20
- Stop a Silent Failure From Wedging a Space Forever #21
- Apply Retention and Reclaim Storage on a Schedule #24
- Make Every Documented Guarantee True #26
- Survive Reads of Files OpenCloud Has Not Finished Processing #37
- Recognise People Signed In Through OpenCloud #38
- Accept Only One of Two Setups Started at Once #39
- Work With OpenCloud 7.5 #49
- Make the Recovery Key Typo Test Deterministic #51
- Show the Recovery Key Exactly as It Is Saved #55
- Count Unchanged Files in Backup Statistics #57
- Fix the Silent Failures Found in the October Review #70
- Scan Only the History of the Change Under Test for Secrets #86
- Make the Release Workflow Find the Cosign Installer #106
- Name the Cosign Version Image Verification Needs #108
- Put the Generated Notes Into the Draft Release #114
Refactoring
- Read the Configuration in One Place #74
- Build the Recovery Tool Without the S3 Side #80
- Publish the Module Under Its GitHub Path #82
Tested with OpenCloud
CI ran the full suite (integration and browser end-to-end) against each of
these, pinned by digest, before this release was built. The range of
OpenCloud versions they make supported:
supported versions.
| Leg | Channel | Version | Image |
|---|---|---|---|
| oldest | rolling | 7.3.0 | opencloudeu/opencloud-rolling@sha256:f988f14779cbfe26dec78ea3fc2492ae063fe14a069857dd2d5a397a927fc361 |
| previous-major | rolling | 7.5.0 | opencloudeu/opencloud-rolling@sha256:6db1cfb06d430a663f16e9f33dcd4596d82a4875be0b4df233c26ce5f667ea74 |
| newest | rolling | 8.1.0 | opencloudeu/opencloud-rolling@sha256:8fc64ca861739cc62095cd558814f2eba6a90acf5998d884e439b33a47875da8 |
Images
Deploy by digest. The tag 0.1.0 points at the same digest once this
release is published.
ghcr.io/knoppiks/opencloud-backup-vault-web@sha256:7064622e39517eaf96d1519d4680a1858af702c76e30b27c72f6919892ef5484
ghcr.io/knoppiks/opencloud-backupd@sha256:9f4217afff711672d34525827a7c7c4d2df9ddfa8e29f199782ac1e96d33b10e
Downloads
| Asset | What it is |
|---|---|
decrypt_0.1.0_<os>_<arch> |
Opens a Take-Out with your Recovery Key, offline. Linux, macOS, Windows. |
takeout_0.1.0_linux_<arch> |
The administrator's Take-Out tool, outside the image. |
backup-vault_0.1.0.tar.gz |
The web extension, for installs without the initContainer image. |
*.spdx.json |
SBOMs: one per archive, one per image and platform. |
images.txt |
The images above, covered by the signature. |
SHA256SUMS, SHA256SUMS.sigstore.json |
Checksums of every asset, and their signature. |
Each archive holds the program, LICENSE and the third-party notices for
its platform.
Verify
With cosign
v2.4 or newer, in the directory holding the downloaded assets, SHA256SUMS and
SHA256SUMS.sigstore.json:
cosign verify-blob SHA256SUMS --bundle SHA256SUMS.sigstore.json \
--certificate-identity https://github.com/knoppiks/opencloud-backup-plugin/.github/workflows/release.yml@refs/tags/v0.1.0 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
sha256sum --ignore-missing -c SHA256SUMS # macOS: shasum -a 256 --ignore-missing -c SHA256SUMSor run scripts/verify-release.sh -t v0.1.0,
which does both. Build provenance: gh attestation verify <archive> --repo knoppiks/opencloud-backup-plugin.
Images: cosign verify <image>@<digest> --certificate-identity … (same
identity and issuer) with cosign v3 or newer, or
gh attestation verify oci://<image>@<digest> --repo knoppiks/opencloud-backup-plugin. An older cosign
reports no signatures found for these images: upgrade, do not conclude
they were tampered with.
macOS: the binaries are not notarised. After verifying, allow decrypt
to run with xattr -d com.apple.quarantine ./decrypt.
Details: Verifying a release.
v0.1.0-rc.4
Merge pull request #107 from knoppiks/106-make-the-release-workflow-f…