Skip to content

Releases

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 13:43
7333732

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 for opencloud-compose and 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 SHA256SUMS

or 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

v0.1.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 20:51
e76ef75
Merge pull request #107 from knoppiks/106-make-the-release-workflow-f…