Repository navigation
Releases: openbeehive-org/openbeehive-app
Release list
v0.4.0
The repository, the image and the Go module live under the openbeehive-org
organisation, the container runs as an unprivileged user and every release is
signed. No schema migration. One manual step for self-hosters: a Docker volume
created by 0.3.x or earlier must be chowned to uid 65532 once (see
"Upgrading" in the docs).
Added
- Signed releases. The image carries BuildKit SLSA provenance and SBOM
attestations, is signed keyless with cosign (Fulcio certificate bound to the
release workflow, logged in Rekor) and gets a GitHub build-provenance
attestation; the GitHub release ships the SPDX SBOM. Verification commands
are in the release workflow header and in the docs. - Engineering baseline.
make checkis the single definition of green
(proto lint and breaking-change check, golangci-lint, prettier, eslint,
svelte-check, tests with coverage gates, govulncheck, licence allowlists,
gitleaks, build, fleetlint); prek hooks run the fast subset on commit;
CodeQL and Renovate run on the repository. ADRs and an architecture
overview are indocs/.
Changed
- Container runs as uid 65532 with
/dataas its working directory and a
read-only-root-friendly layout; base images are pinned by digest. The
defaults for the SQLite file and the blob directory therefore resolve to
/data. - New home. Image:
ghcr.io/openbeehive-org/openbeehive-app
(ghcr.io/johnnycube/openbeehive-appkeeps the tags up to 0.3.1). Go
module:github.com/openbeehive-org/openbeehive-app/server. Links and
Docusaurus references follow. - Toolchain. Go 1.27.2; SvelteKit 3 with adapter-static 4 (config lives
invite.config.ts,#libimports, service worker in its own TypeScript
project and precaching the prerendered shell as well as the immutable
assets); Vite 8.3, Vitest 5, Svelte 5.57; buf 1.74 with pinned remote
plugins (protocolbuffers/go 1.36.12, connectrpc/go 1.21.1, bufbuild/es
2.16). All Go modules and npm packages at their latest releases; TypeScript
stays on 6.x until svelte-check and typescript-eslint accept 7. - UI icons. The app uses Lucide icons instead of emoji for pins, edit,
delete, camera, print, keys and the inspection chips, which now read as
text ("Honey 3 kg") in lists and on the printable hive card. - Messages. Server and app messages use plain ASCII punctuation; the
demo read-only and invite-only errors were reworded accordingly. - Types. The frontend no longer uses
anyfor Leaflet, SQLite, the sync
payloads and the WebAuthn options; the data layer's row types are used
throughout.
Security
- Go 1.27.2 and
golang.org/x/net0.60 clear every open stdlib and x/net
advisory govulncheck reported against 1.26;npm auditis clean on the
updated frontend and thecookieoverride is gone with SvelteKit 3.
Changes
- fix(proto): connectrpc/go remote plugin v1.21.0, the newest 1.x the registry has (8cbdfa2)
- chore(release): 0.4.0 (95ab984)
- build: duplication gate for the app and a reproducible release image (5687e74)
- chore: enable the fleetlint slop preset and baseline the reviewed suppressions and history (27dda7a)
- build: release tag carries the changelog section, fmt runs each half in a subshell (84b833f)
- refactor(app): Lucide icons, ASCII punctuation and typed rows instead of any (23f6368)
- refactor(server): ASCII punctuation in comments and messages (e2aacf5)
- build(app): SvelteKit 3 and the latest npm packages (bd0280f)
- build(server): Go 1.27.2 and the latest Go modules (d0183e9)
- build: latest tool pins, base images, buf plugins, hooks and actions (e6539b6)
- build(server): Go 1.26.9 and x/net v0.60.0 for the fixed stdlib and x/net advisories (aafe3a2)
- build: keep the dist placeholder across make build (0774a7d)
- fix(server): keep the dist placeholder so the embed compiles before the app is built (e962b72)
- build(server): require Go 1.26.7, the floor of buf v1.73 (f012dba)
- build(server): require Go 1.26, the floor of golangci-lint v2.14 (c04ff1e)
- build: task-runner contract, hooks, pinned image, CI and fleetlint (fa35e8b)
- docs: architecture, ADRs, code of conduct and contributor setup (1aefcf6)
- chore(app): prettier, eslint, strict tsconfig and coverage gate (7ab19d2)
- refactor(server): satisfy golangci-lint (d28898d)
- chore: point changelog and versioned docs links to openbeehive-org (f54cd7e)
- fix(proto): pin Go buf plugins to go.mod versions (8ec5bc5)
- chore: move repository to openbeehive-org (5626cef)
What's Changed
- chore: move repository to openbeehive-org by @johnnycube in #5
- chore: onboard fleetlint by @johnnycube in #6
- Release 0.4.0: latest dependencies, slop cleanup, signed non-root image by @johnnycube in #7
Full Changelog: v0.3.1...v0.4.0
v0.3.1
openbeehive v0.3.1 — dependency maintenance
No functional changes and no migration. devalue 5.9.4 clears
GHSA-9rgm-9g3h-6x36 (denial of service via malformed input); cookie and
the esbuild pulled by svelte-i18n are lifted through npm overrides, and
postcss, vitest and @sveltejs/kit are updated within their ranges. The app
is prerendered and served as a static bundle, so none of these packages
run on the server.
Changes
- changelog for v0.3.1 (831b555)
- chore(app): resolve Dependabot alert on devalue (74a3885)
- chore(app): resolve Dependabot alerts (4518e7a)
Full Changelog: v0.3.0...v0.3.1
v0.3.0
openbeehive v0.3.0 — integration API, API keys, English proto contract
Every entity now has a served Connect-RPC service (Apiary, Hive, Queen,
Inspection, Task, Treatment, Harvest, Event, Stats, Sync). API writes go
through the same per-field merge and change log as the app's sync, so a
hive scale posting CreateInspection shows up on every device at its next
sync. Scripts and devices authenticate with API keys created in Settings
(read-only scope and expiry optional; tenant admins can revoke members'
keys). page_token is honoured.
Breaking for external clients generated from the old protos: SetTaskDone,
only_open, only_active, events, per_*, GetDashboard/GetHoneyStats,
AddInspectionPhoto/RemoveInspectionPhoto replace the old names. Existing
deployments need no manual step; migration 0014 runs on boot.
Changes
- changelog for v0.3.0 (4ddbaa0)
- feat(app): API keys section in Settings (54aa47c)
- feat(server): API keys with read-only scope, expiry and tenant admin management (0b02264)
- feat(server): serve every proto service through the sync write path (3359579)
- feat(proto): English contract for every entity, harvest service, offset pagination (ace55b3)
- docs: correct README, SECURITY and CONTRIBUTING (ca224d5)
- chore(app): remove dead client code, the server hook and unused locale strings (892ac3e)
- refactor(server): drop first-run leftovers, dead blob/plan code and German comments (4e72fb8)
Full Changelog: v0.2.3...v0.3.0
v0.2.3
openbeehive v0.2.3 — first-sync feedback, progressive pulls, reload resilience
Pages no longer flash their empty states before the first local read or
while a fresh device is still downloading: the dashboard and the apiary,
hive and task lists show skeletons, then a syncing hint, and the real
empty state only once the data is known. Pulls refresh open pages after
every applied batch, so a large first sync fills the screen as it
arrives. Reloads no longer start from an empty store when the OPFS pool
install races the previous worker — the install is retried, and a toast
says so when the in-memory fallback does kick in. The auth session is
resolved in parallel, so sync starts one round-trip earlier, and the
hive page action icons are centered again.
Changes
- changelog for v0.2.3 (73b1fcb)
- perf(app): resolve the auth session with parallel requests (c72e1a7)
- fix(app): retry the OPFS pool install and surface the in-memory fallback (b052a6c)
- feat(app): skeletons and a syncing hint instead of premature empty states (d82d8d4)
- feat(app): track initial-sync state and apply pulls progressively (d13680f)
- fix(app): center the action icons on the hive page (b9b2da7)
Full Changelog: v0.2.2...v0.2.3
v0.2.2
openbeehive v0.2.2 — offline storage self-repair, sync resilience, visible save/geocoding feedback
Fixes the SQLITE_CANTOPEN error that blocked saving on devices with an
old OPFS storage pool (demo add button), keeps pull running while push
fails, drops read-only-rejected pushes instead of retrying forever, and
makes OR-Set removes carry observed tags so concurrent photo re-adds
survive. Adds the apiary map location picker with lookup states, visible
save errors, account-bound passkeys, and web + server test suites for
the offline-first core.
Changes
- changelog for v0.2.2 (1b7b53b)
- test: web + server suites for the offline-first core (2e285e7)
- feat(app): surface failed local writes instead of dying silently (8592081)
- feat(apiaries): visible geocoding states in the location picker (36b2644)
- fix(sync): pull even when push fails; stop retrying rejected pushes (bcd3551)
- fix(sync): OR-Set removes carry the origin's observed tags (cdef8bf)
- fix(local): grow pre-existing OPFS SAH pools and recover from CANTOPEN (3bb4318)
- interactive apiary location with geocoding map (259ddc6)
- raise OPFS SAH pool capacity to 24 slots (abaf347)
- passkeys bound to registered accounts (9b97f06)
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Invite management (link display, open-invite list, revoke, invite emails), tenant deletion with full data + photo-blob purge, and a path-traversal fix in the FS blob store.
Changes
- release notes: strip tag signature from body (ab8ebd0)
- changelog for v0.2.1 (f115f9d)
- security: prevent path traversal in the FS blob store (79c81f0)
- Tenant deletion with full data and photo-blob purge (d1f999f)
- Email the invite link to the invitee (8321b15)
- invite visibility: show the link, list & revoke open invites (fd027a9)
- add automatic changelog creation (cb4804b)
Full Changelog: v0.2.0...v0.2.1
v0.2.0
openbeehive v0.2.0 — demo coexists with registration; mandatory env-defined instance admin
BREAKING: BEEHIVE_ADMIN_EMAIL/BEEHIVE_ADMIN_PASSWORD are required whenever password auth is enabled (cloud profile, demo, or explicit); set them before upgrading. BEEHIVE_DEMO_AUTOLOGIN=true restores showcase auto-entry.
Changes
- Demo coexists with registration; mandatory env-defined instance admin (bcc786f)
Full Changelog: v0.1.6...v0.2.0
Full Changelog: v0.1.6...v0.2.0