v0.21.1
Highlights
Fix duration string parsing in configuration (#510)
Duration fields like max-runtime, notification-cooldown, and webhook timeout now correctly accept Go duration strings (1h, 30m, 55s, 1h30m) in INI config files and Docker labels. Previously, these values failed with strconv.ParseInt errors.
Before (broken):
[job-run "my-job"]
schedule = @hourly
image = myimage
max-runtime = 1h # ❌ strconv.ParseInt: parsing "1h": invalid syntaxAfter (fixed):
[job-run "my-job"]
schedule = @hourly
image = myimage
max-runtime = 1h # ✅ works as expectedAll 10 time.Duration config fields are fixed: max-runtime, notification-cooldown, config-poll-interval, docker-poll-interval, polling-fallback, poll-interval, restore-history-max-age, webhook timeout, retry-delay, preset-cache-ttl.
Fixes #509. Thanks to @azlux for reporting the issue!
Changes
Bug Fixes
- fix: add
StringToTimeDurationHookFuncto mapstructure decoders (#510)
Verification
All binaries include SLSA Level 3 provenance attestations.
Verify binary provenance
slsa-verifier verify-artifact ofelia-linux-amd64 \
--provenance-path ofelia-linux-amd64.intoto.jsonl \
--source-uri github.com/netresearch/ofeliaVerify checksums signature
cosign verify-blob \
--certificate checksums.txt.pem \
--signature checksums.txt.sig \
--certificate-identity "https://github.com/netresearch/ofelia/.github/workflows/release-slsa.yml@refs/tags/v0.21.1" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
checksums.txt