Skip to content

Arkvory 0.4.0

Choose a tag to compare

@Feargin Feargin released this 11 Oct 20:59

What's new in 0.4.0

New

  • Container image registry (OCI Distribution): Docker, Podman, Helm and ORAS push and pull; images obey repository rights, quotas, retention and backups.
  • Raw files by path in one request (curl -T, PowerShell), client.raw in the SDK, arkvoryctl put / get.
  • Git LFS server with file locking for Unity and Unreal assets: lfs.url per repository, sign-in with an Arkvory key through git's credential helper.
  • npm-compatible registry for Unity Package Manager scoped registries and npm: npm publish, install, dist-tags, search; versions are immutable and verified by SHA-512.
  • Mirrors copy images, LFS objects and npm packages; --mirror-ca-file trusts a source's own certificate authority.

Reliability

  • Services restart by themselves after a crash, an unrequested exit, a lost storage ownership or lease, and now a hung main thread: an event-loop watchdog ends a process that stopped responding (ARKVORY_WATCHDOG_SECONDS, default 60), and systemd, Windows services or Docker start it again. Compose on Windows warns when Docker Desktop does not start at sign-in.
  • A dropped download-lease connection to the database no longer crashes the API process: the lease is treated as lost. Gateways restart into their slot; a second worker waits as standby.
  • A refused backup vault change returns only after the agent reports the previous vault again.
  • A mirror seeded again after its source was restored no longer stalls on copies deleted on the mirror; several mirrors keep their own authorities.
  • Installers retry Node.js and release downloads on transient network failures.

Updating

  • This release changes the database schema. The update installs behind a fresh verified backup: connect a backup vault (arkvory configure --backup-vault <dir> --init-vault) and let the first backup finish, or take an operator backup and run upgrade --backup-record <file>. Without either, the update is refused before any change and 0.3.0 keeps running.
  • Checked for this release: 0.3.0 → 0.4.0 with the .deb on Linux/systemd and with Docker Compose on Windows, content kept.

Known limitations

  • The authorities from --mirror-ca-file are trusted by the whole worker process, not per mirror.
  • npm versions and LFS objects are not deleted through their protocols; there is no proxy to the public npm or Unity registries.

All release gates passed for this commit on the maintainer workstation (local CI). The release is signed (arkvory-release.json.sig, latest.json). Review deployment notes and platform evidence before publishing; after publishing, approve the version for a channel in the hub.

Release gates (0.4.0)

Arkvory local CI: PASSED

Profile release, commit 5f9e0e4f1c0f983733f98325796e48f35d56114c.
Host: Windows_NT 10.0.22621, Node v24.13.0, Docker 29.4.3.

Lane Environment Status Gates
windows windows-host passed static, unit, security, integration, browser, docs, deployment, deployment-containers, native-package, large-full, large-multipart
linux linux-container passed static, unit, integration, browser, deployment
linux-system linux-systemd-container passed native-package, deployment-services, native-install, deployment-stand

Not executed locally:

  • deployment-services (win32): Installs Windows services; runs only on a disposable GitHub Actions runner
  • native-install (win32): Installs the Windows package machine-wide; runs only on a disposable runner
  • deployment-nas (win32): Needs cifs/nfs/nfsd kernel modules on the Docker host; runs on a GitHub runner
  • deployment-nas (linux): Needs cifs/nfs/nfsd kernel modules on the Docker host; runs on a GitHub runner
  • deployment-ha (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-power (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-power (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-operations (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-operations (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-three (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-three (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-containers (linux): Linux-host Compose (bind-mount ownership) runs only on GitHub Actions; the Windows lane covers Docker Desktop

Covered by another lane:

  • deployment-stand (win32): The two-site stand of Linux systemd hosts runs in the linux-system lane
  • docs (linux): The documentation site does not depend on the platform; the Windows lane builds it
  • security (linux): npm audit of the same lockfile runs in the Windows lane
  • large-full (linux): The 5 GiB transfer runs once, in the Windows lane
  • large-multipart (linux): The 5 GiB multipart transfer runs once, in the Windows lane

Candidate acceptance

Arkvory local CI: PASSED

Profile release, commit 5f9e0e4f1c0f983733f98325796e48f35d56114c.
Host: Windows_NT 10.0.22621, Node v24.13.0, Docker 29.4.3.

Lane Environment Status Gates
windows windows-host passed deployment, deployment-containers, native-package
linux-system linux-systemd-container passed deployment, deployment-services, native-install

Not executed locally:

  • deployment-services (win32): Installs Windows services; runs only on a disposable GitHub Actions runner
  • native-install (win32): Installs the Windows package machine-wide; runs only on a disposable runner
  • deployment-nas (win32): Needs cifs/nfs/nfsd kernel modules on the Docker host; runs on a GitHub runner
  • deployment-nas (linux): Needs cifs/nfs/nfsd kernel modules on the Docker host; runs on a GitHub runner
  • deployment-ha (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-power (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-power (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-operations (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-operations (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-three (win32): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-ha-three (linux): Needs KVM guests with DRBD 9 and fence_virsh; runs on a GitHub runner
  • deployment-containers (linux): Linux-host Compose (bind-mount ownership) runs only on GitHub Actions; the Windows lane covers Docker Desktop

Covered by another lane:

  • deployment-stand (win32): The two-site stand of Linux systemd hosts runs in the linux-system lane
  • docs (linux): The documentation site does not depend on the platform; the Windows lane builds it
  • security (linux): npm audit of the same lockfile runs in the Windows lane
  • large-full (linux): The 5 GiB transfer runs once, in the Windows lane
  • large-multipart (linux): The 5 GiB multipart transfer runs once, in the Windows lane