Skip to content

Releases: dombyte/datalogger

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 14:09
8886ad3

Changelog

Breaking changes

  • 08d4a20 feat(http)!: apply scale and offset to numeric JSON values
  • 39dc3f0 feat(shutdown)!: new lifecycle with startup checks and a hard shutdown deadline
  • 299c7c8 fix(config)!: reject unknown keys

Features

  • 93d96a6 feat(api): add http api output with latest values
  • c04e933 feat(transform): add point expressions, lookups and exclude_points

Bug fixes

  • 4e65273 fix(config): default the device timeout and reject a non-positive one
  • 39c7d21 fix(config): reject duplicate output names
  • 4795a3a fix(config): reject modbus registers past 65535 and counts above 125
  • 0a065c7 fix(config): reject unsupported point settings and default scale to 1
  • 488fb43 fix(config): require at least one device and one output
  • 64225f5 fix(csv): keep max_backups backups and never delete unrelated files
  • 66d956d fix(csv): keep the rotation age across restarts and every backup
  • 2d9905d fix(csv): reopen the file after a failed write
  • 89a4cdf fix(http): keep query and user info of the address out of logs
  • 4da76a9 fix(http): limit the response body and drain error responses
  • 2c64259 fix(http): skip null, objects and values that do not fit the type
  • bae173d fix(http): warn once about a point that cannot be extracted
  • 239c164 fix(influxdb): retry only transient errors and skip unencodable values
  • 457aee7 fix(influxdb): time out write requests with insecure set
  • 55ba493 fix(modbus): stop a poll early on shutdown and when the device is silent
  • 034c53d fix(mqtt): connect in the background and make tls:// addresses work
  • cc014d2 fix(mqtt): keep the session on rejected messages and back off on errors
  • 7ce5e81 fix(mqtt): publish nan and infinite values as null
  • 44276a0 fix(routing): log a full output once per stall instead of per point
  • 4ede844 fix(shutdown): deliver the points of a poll that runs when shutdown starts
  • ddf09cd fix: poll every device once at startup

Refactoring

  • 3a8f247 refactor(config): fill defaults before validation and drop no-op Validate
  • 3cf42f5 refactor(config): generate the mqtt client id with rand.Text
  • f22caa7 refactor(config): load with a local viper instance and no env overrides
  • 4d1ea3f refactor(config): make validation lint-clean and fix failing tests
  • d4837fe refactor(csv): split the write loop, name constants and tighten tests
  • f625bab refactor(http): detect connection errors by type and split the poll loop
  • 8a2be94 refactor(http): inject settings, client and clock
  • a18154f refactor(influxdb): handle a closed input in the loop and name constants
  • 687d776 refactor(influxdb): inject settings, client and clock
  • f766c48 refactor(modbus): detect connection errors by type and split long functions
  • 1ef6bcc refactor(modbus): inject settings, dialer and clock; connect on first poll
  • abda7d4 refactor(mqtt): split start and publish, check the disconnect error
  • a8603dd refactor(routing): parse flags without globals and make main lint-clean
  • c6111b1 refactor(routing): send the points of one poll as a single batch
  • 75ff6bc refactor: add an injectable clock with a fake for tests
  • b77e5b1 refactor: move to cmd/datalogger and internal/ with app as composition root
  • 5b2cb26 refactor: rename stuttering and misspelled identifiers

Documentation

  • 524929c docs(modbus): correct what parallelism does
  • f8fdd2f docs: add AGENTS.md based on the go project standard
  • 8886ad3 docs: add badges to readme
  • 9596cd0 docs: add grafana query examples to the readme
  • 9ffbe16 docs: document the standard-v3 layout, lifecycle and output behaviour
  • 71ddd87 docs: list the missing startup test and the clock fake in AGENTS.md
  • c4e2489 docs: make AGENTS.md self-contained
  • 044852d docs: note config pitfalls in AGENTS.md
  • f74927d docs: raise coverage targets to 90 and 100 percent
  • 3a3ce05 docs: restore the lifecycle backlog item
  • 86df602 docs: rewrite readme with installation, quick start and all types
  • c1a941a docs: rewrite the example config
  • 81df0a8 docs: update AGENTS.md for the lint-clean state
  • 7e963ea docs: update coverage numbers in the backlog

Dependencies

  • 96e821f chore(deps): bump github.com/stretchr/testify in the go-deps group
  • d7b8edb chore(deps): update dependency golangci/golangci-lint to v2.14
  • c8e6c7c chore(deps): update gjson to v1.20.0 and grpc to v1.83.2
  • dae72a2 ci(deps): drop dependabot and track all pinned versions in renovate

Maintenance

  • 7e2ee36 chore(docker): mount ./test-dump in the dev compose file
  • 3bf04df chore: align tooling with the go project standard
  • 8326228 chore: ignore test-dump and drop the old examples rule
  • 829e013 chore: move user templates to example/
  • 8b8ed03 ci: align checks, release and mockery setup with solis
  • 456146c ci: run checks only on pull requests and releases
  • 13fa7e8 style: apply gofumpt and goimports
  • ba58c39 style: format go code with gofmt
  • ee47883 test(modbus): cover a range poll cut short by shutdown
  • 3b5b581 test(shutdown): add startup test for cmd/datalogger
  • e7643c5 test: cover csv, influxdb and mqtt writers above 90 percent
  • dfc1b80 test: raise coverage of all packages to at least 95 percent

Other changes

  • 669ea1a Update golang Docker tag to v1.27.1
  • ff8e52c Update module google.golang.org/grpc to v1.83.1 [SECURITY]

Docker images

Platforms: linux/amd64, linux/arm64, linux/arm/v7

  • ghcr.io/dombyte/datalogger:v1.2.0
  • ghcr.io/dombyte/datalogger:v1.2
  • ghcr.io/dombyte/datalogger:v1
  • ghcr.io/dombyte/datalogger:latest

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 12:33
734cb13

Changelog

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 15:57
631cb7d

Changelog