๐ NORA 1.0.1
Patch release over 1.0.0 โ a security fix for private deployments plus three infrastructure features. All of it is community work by @jgrund.
Security
- Browse UI gated on private deployments โ with auth enabled and
anonymous_readoff, the browse UI, its JSON API (/ui,/api/ui), and the API docs (/api-docs) were served unauthenticated, enumerating every repository and package a private registry exists to hide. They now require credentials unlessanonymous_read(which already exposes the same names via the read APIs) or the newauth.public_web_ui(NORA_AUTH_PUBLIC_WEB_UI, default false) opens them./metricsgets its ownauth.public_metrics(default true โ its labels name registry formats, not repositories); health/readiness probes stay public. (#850)- Behavior change: operators who relied on an anonymous web UI while keeping the registry APIs authenticated must now set
public_web_ui = true(or enableanonymous_read).
- Behavior change: operators who relied on an anonymous web UI while keeping the registry APIs authenticated must now set
Added
- Native Google Cloud Storage backend (
storage.mode = "gcs") โ no longer only via the S3 interop layer. Credentials resolve as explicit service-account JSON, then ambientGOOGLE_*, then the metadata server, so GKE Workload Identity and GCE service accounts work with no key material.nora migrateacceptsgcsas source/destination. (#842) - Streaming raw uploads and downloads โ
PUT/GET /raw/{path}no longer buffer the body in memory: O(frame) peak RAM at any size, withraw.max_file_sizeenforced incrementally as frames arrive. Download integrity is verified while streaming. (#845) - rpm/deb repository reconcile (
POST /{rpm,deb}/{repo}/-/reindex) โ heals a repository whose storage changed behind the API's back (filesystem-is-the-database, ADR-2): orphan sidecars dropped, unadopted packages parsed and validated, indexes rebuilt and re-signed under the publish lock. Also the re-sign hook after a signing-key change. (#847)
Thanks ๐ค
Every change in 1.0.1 was contributed by Joe Grund (@jgrund) โ the GCS backend, streaming raw transfers, the reconcile endpoint, and the UI-gating security fix. Thank you!
Install
# x86_64
curl -LO https://github.com/getnora-io/nora/releases/download/v1.0.1/nora-linux-amd64
chmod +x nora-linux-amd64
sudo mv nora-linux-amd64 /usr/local/bin/nora
# ARM64 (Apple Silicon, Graviton, Ampere)
curl -LO https://github.com/getnora-io/nora/releases/download/v1.0.1/nora-linux-arm64
chmod +x nora-linux-arm64
sudo mv nora-linux-arm64 /usr/local/bin/noraDocker
docker pull getnora/nora:1.0.1| Variant | Image | Platforms |
|---|---|---|
| Alpine (default) | getnora/nora:1.0.1 |
amd64, arm64 |
| RED OS | getnora/nora:1.0.1-redos |
amd64 |
| Astra Linux SE | getnora/nora:1.0.1-astra |
amd64 |
| GHCR | ghcr.io/getnora-io/nora:1.0.1 |
amd64, arm64 |
DEB / RPM
# Debian / Ubuntu / Astra Linux (amd64)
curl -LO https://github.com/getnora-io/nora/releases/download/v1.0.1/nora-amd64.deb
sudo dpkg -i nora-amd64.deb
# RHEL / Fedora / RED OS (amd64)
curl -LO https://github.com/getnora-io/nora/releases/download/v1.0.1/nora-amd64.rpm
sudo rpm -i nora-amd64.rpmChangelog
See CHANGELOG.md