Changelog
All the improvements we make to Connhex are bundled into two major releases each year: Spring and Fall.
๐ Fall '26: Connhex 3 (Quartz)โ
Connhex Core (v1.5.1)โ
Addedโ
- [Remote Init] Recovery flow for devices that have lost their initialization key.
- [Remote Init] Edge configuration in initialization API responses.
Changedโ
- [Reader] Time-based aggregations can be aligned to an IANA timezone, including local day boundaries and daylight-saving transitions.
- [Build] Container images now reuse cached Go builds.
Fixedโ
- [MQTT] Stale session disconnect events no longer mark devices offline after they have reconnected.
- [Remote Init] Edge configuration is now always retrieved correctly during initialization and device keys are compared in constant time.
- [Provision]
DELETErequests no longer require aContent-Typeheader when they have no body.
Connhex Control (v1.4.5)โ
Addedโ
- Complete UI overhaul.
- Lost-device recovery through SnapLink.
- Optional tenant selection when provisioning a connectable.
Changedโ
- Fleet status now uses the summary API for online, offline and never-connected device counts.
- Identity lists load up to 3,000 entries by default.
Fixedโ
- Pagination and filtering in remote data tables.
Connhex Edgeโ
Addedโ
enrollsubcommand for configuring an agent with a single enrollment token.- Remote agent restart command, including a fresh configuration fetch on startup.
- Systemd unit files in archive releases and beta builds for snapshot versions.
Changedโ
- The default initialization host is now
connhex.com, with consistent endpoint normalization. - Built-in system metrics use field-qualified sensor names and monitor
/as the default disk path.
Fixedโ
- Package upgrades no longer disable the agent.
- Systemd units are installed in the correct system directory.
- Improvements in JSON configuration patches decoding.
Connhex Exporter (v1.5.2)โ
Addedโ
- Standard Markdown-based reports that do not require an AI service.
- Markdown-to-PDF rendering for every export type.
- Safe raw-message exports.
- Configurable decimal separators for CSV and other tabular export formats.
Changedโ
- AI report generation is optional and remains available for existing report configurations.
- Export access is authorized per channel.
- Message buckets are aligned to the export's configured timezone.
Fixedโ
- Empty message exports, invalid Excel worksheet names and Excel date formatting.
- Target labels are applied correctly to message PDFs.
- Failed exports expose actionable error details.
- Name filters are safely parameterized.
- Export deletion emits the expected Connhex event.
Connhex Rules Engine (v1.2.2)โ
Addedโ
- Bulk rule creation with
POST /rules/bulk. createdAfterfilter for listing rules.- Per-notification
targetsandmutedfields.
Changedโ
- Updating a rule now replaces its tags instead of merging them.
Fixedโ
- Active-window conditions honor the configured timezone.
- Events belonging to soft-deleted rules are excluded from list queries.
- Rule deletion events are emitted only after a successful deletion.
- Channel IDs are required and validated consistently in conditions.
Connhex Notifications (v1.2.0)โ
Addedโ
- Raw HTML email bodies through the new
bodyFormatfield.
Changedโ
- Firebase Cloud Messaging notifications are sent with high priority.
Connhex Home Assistant Adapter (v0.5.0)โ
Addedโ
- Configurable forwarding of Home Assistant entity attributes as SenML records through
attributes.include.
Connhex Copilot (v0.8.0)โ
Changedโ
- Connhex session authentication is forwarded to Delta.
- Training data queries select the schema associated with the target Connhex database.
Connhex SDK, CLI & MCP (v0.1.0)โ
Addedโ
- Official Python SDK with typed models, synchronous and asynchronous clients, typed API errors, request timeouts and retries with backoff.
- Command-line interface for managing Connhex resources and registering connectables.
- Local and remote MCP server exposing Connhex things, models, messages, resources, IAM and Rules Engine APIs to compatible AI clients.
- OAuth 2.0 and session-cookie authentication for remote MCP connections.
- Tool filtering and transformation settings for controlling which Connhex capabilities an AI client can access.
Fixedโ
- OAuth client registrations persist across restarts.
- Query values containing spaces are encoded correctly.
๐ฑ Spring '26โ
Connhex IAM (v1.1.0)โ
Addedโ
- Incremental policy refresh. Single-policy engine updates via UpsertPolicy/RemovePolicy instead of full rebuild on every mutation (latency drops from ~5s to ~670ยตs)
- Incremental role updates via UpsertRole/RemoveRole
- Tenant filtering on FilterAuthorizedPairs
- Tenant filtering on AuthorizedSubjects
- denied_pairs on FilterAuthorizedPairs response
- Pruned resource trie traversal for FilterAuthorizedResources (28x faster)
Changedโ
- FilterAuthorizedPairs returns (allowed, denied, error) instead of (allowed, error)
- Refresh accepts optional EngineChange descriptors for incremental updates
- Interceptor constructs EngineChange per mutation type instead of triggering full rebuild
- Migrated proto toolchain from protoc to Buf v2
- Migrated validation from protoc-gen-validate to protovalidate
- Rewrote grpc-mock plugin from protoc plugin to protogen
- Replaced protoc-gen-policy with protobuf reflect API
- Consolidated buf gen configs
- Bumped Go to 1.26
Fixedโ
- AuthorizedSubjects no longer denies subjects from policies with non-matching statements
- Gateway ReadHeaderTimeout added
Otherโ
- E2E gRPC benchmarks for all authorization query methods
- 99.7% engine test coverage
Connhex Core (v1.5.0)โ
Addedโ
-
[Things] filter to fetch things by specific IDs (
GET /things?id=x&id=y) -
[Things] batch endpoint for connectivity status lookup (
POST /things/status) -
[Things] session history endpoint, returns total uptime and connection event timeline (
GET /things/:id/uptime) -
[Things] tenant-scoped fleet status summary: online, total, never_connected, active_last_hour, offline (
GET /things/status/summary) -
[Things] flapping endpoint, reports devices with excessive reconnections within a time window (
GET /things/status/flapping) -
[Reader] new query planner with per-source query api (
/events,/metrics,/params,/infos) -
[Writer] Prometheus metrics: flush latency, rows written, queue depth, rejections, transform errors
-
[Writer] health endpoint reflects sustained rejection rate
Changedโ
-
[Things]
UpdateThing,RemoveThing,UpdateKey,UpdateThingLabels,ListChannelsByThingnow acceptapiutil.UserInfoinstead ofuserTenants []stringand useresolveThingAccess -
[Writer] complete rewrite โ multi-route architecture, one process for all tables
-
[Writer] JSON uses CopyFrom instead of per-row INSERT (~55x throughput)
-
[Writer] batcher rewritten: mutex+slice instead of channels (up to 62x faster Append, 98% fewer allocations)
-
[Writer] parallel flush workers per route, rows sorted by time for chunk routing
-
[Writer] graceful shutdown with drain deadline, no silent data loss
Connhex Edge (v2.5.0)โ
Addedโ
--checkflag for binary validation without starting the agent, useful for verifying OTA updates before committing.- Configurable transport policy fallbacks with offline message buffering when connectivity is lost.
- Support for MQTT over Web Socket.
- Automatic cleanup of old firmware directories after successful updates.
- Exponential backoff to JetStream message redelivery.
- HTTP client timeouts to OTA and bootstrap requests.
- MQTT connect timeout.
Changedโ
- Reworked OTA update process with better state management and artifact lifecycle.
- File system operations now use rooted paths (os.Root) to prevent path traversal.
- All written files (env, OTA metadata) are restricted to owner-only permissions.
- Graceful shutdown now fully waits for all subsystems to stop before exiting and returns appropriate non-zero exit codes.
- OTA updates trigger a full agent stop on restart and wait for in-progress installations to finish before shutting down.
- MQTT keep alive increased to 1 minute.
- MQTT certificate errors are now logged as errors instead of silently ignored.
Fixedโ
- Deadlock between NATS Close() and Subscribe().
- Race condition during mode transitions and shutdown.
- Goroutine leaks in terminal sessions.
- Terminal sessions not being closed when the agent stops, and child processes not being reaped after PTY close.
- Command arguments with spaces being incorrectly split.
- Nil dereference when processing SenML records with missing StringValue.
- Fatal exit on IP address lookup failure.
- Remote init retries silently succeeding when all attempts were exhausted.
Connhex Exporter (v1.4.3)โ
Addedโ
- Smart reports: AI driven reports, with charts, tables and detailed analysis
- Implemented tags
Changedโ
- Single file sending without zipping
Fixedโ
- Improved retry mechanism for failing recurring exports
- Make export request notification optional
- Filename sanitization before download
Connhex Rules Engine (v1.1.7)โ
Addedโ
- Rule snapshot to events
- Support for different data sources (e.g.
params,metrics, ...)
Fixedโ
- Handle data with same
nameacross different channels
Connhex Notifications (v1.1.0)โ
Addedโ
- Support for FCM OAuth2
- FCM integration tests
๐ Fall '25โ
Connhex Coreโ
- Add support for metrics table
- Return next installable release in firmwares API
- Add IoT host to initialization configuration
- Improve delta transform query with raw data and right-inclusive bucketing
- Prevent panics on out-of-sync firmware
Connhex Edgeโ
- Allow per-route persistence control
- Add flag to pause metric collection when offline
- Add option to ignore pending firmware installations
- Support human-readable byte sizes in configuration
- Add timestamp compaction for metric records
- Switch to
slogfor logging
Connhex Controlโ
- Add message source selector for connectables
- Add autocompletion for policy resources and role actions in IAM
- Bump Angular version
- Remove Moment.js dependency
- Improve model list: sort by name and increase limit count
- Improve edge control description
Connhex Resourcesโ
- Integrate PostgreSQL historicizer
- Improve array matching: match if any requested value is present
- Support match filters on associated resources for array fields
- Enable JSON serialization
- Remove soft deletion support
- Support resourceType wildcards in authorization
Connhex Exporterโ
- Support sending single export files without zipping
- Add sorting and from/to filters to export requests
- Add tags to exports
- Add status filter for export requests
- Add decimals options to all post-processing functions
- Handle timezones in report chart elements
Connhex Rules Engineโ
- Support
channelIdin threshold and delta conditions - Support returning events for multiple rules simultaneously
- Add support for user-specified sources
- Add specific metric monitoring with wildcards for
last-message-older-than
Connhex Copilot & Deltaโ
- Add chat history and session management (stop session API)
- Stream agent events with timestamps
- Improve agent awareness of chat history and ID types (device ID, Connhex ID, etc.)
- Add retry logic for SQL queries and HTTP errors
- Improve database connection handling and query validation
Miscellaneousโ
- Project-wide adoption of pre-commit hooks for automated API documentation generation