ClearBlade IoT Enterprise and Edge

2025.2

2025.2.21 (2026-02-25)

Platform:

  • Fix: Memory leaked when events are added to event loop after preloaded request returns

  • Fix: Permission checks

2025.2.20 (2026-01-06)

Platform:

  • Fix: Memory corruption in cgo causing panics with bad pointer in go heap

  • Fix: Bug in V8 implementation of ClearBladeAsync.Collection.renameColumn causes column name to not be changed

2025.2.19 (2025-12-12)

Platform:

  • Fix: External broker connections from v8 code services not cleaned up when code service exits

  • Fix: Remove CONCURRENTLY from DROP INDEX statements executed in transactions

  • Fix: clearblade_expiration metric only updated once a day

  • Fix: Tasks scheduled with process.nextTick may run as incorrect user

  • Fix: Preloaded service requests were handled using perms of "executing as" developer instead of user sending request

  • Enhancement: Updated Redis default client config to set consistent timeouts and a smaller default max pool size

  • Enhancement: Allow changing the Redis client max pool size with config var KVStore.PoolSize

2025.2.18 (2025-12-09)

Platform:

  • Fix: Preloaded services timing out early

  • Fix: setTimeout timers started by preloaded services not cancelled when request responds

2025.2.17 (2025-12-05)

Platform:

  • Fix: Code service logs block during flush to db

  • Fix: Code service execution continuing after resp call for preloaded services

  • Enhancement: Only expose subcommand server on loopback interface

2025.2.16 (2025-12-01)

Platform:

  • Fix: Build failure on edges with arm architectures

2025.2.15 (2025-12-01)

Platform:

  • Fix: Divide by zero panic may happen when client queues fill for shared subscription

  • Fix: Throttler cases not loaded on startup. Default throttlers are now loaded in-memory instead of from the database.

  • Fix: Execution continuing in engine after resp sent

  • Fix: Memory corruption caused by heap profiling mechanism

  • Enhancement: Add LRU to query parser cache to keep size reasonable. Size configurable with Database.QueryCacheLRUSize config variable.

2025.2.14 (2025-11-21)

Platform:

  • Fix: Panic in edge proxy requests caused by nil pointer dereference

  • Fix: Take preloaded request queue size into account when deciding if an autoscaled service should scale up

  • Fix: Make autoscaler react to queue sizes more quickly

2025.2.13 (2025-11-6)

Platform:

  • Fix: Concurrent map read/write in query rewriter

2025.2.12 (2025-11-4)

Platform:

  • Enhancement: Add cache to query parser to improve cpu utilization

  • Enhancement: Use better estimate of size needed for stack dumps to avoid large allocations on low resource environments

2025.2.11 (2025-10-30)

Platform:

  • Enhancement: Automate migration to add pkey to hypertables - may take some time for larger tables

  • Enhancement: Improve performance for V8 code service arguments and deliver binary arguments as Uint8Array instead of base64 string

  • Enhancement: Sanitize binary data in server logs when executing code services for better readability

  • Enhancement: Improve V8 heap statistics reporting to better match actual RAM usage by including physical heap size, external memory (ArrayBuffers), and V8 internal malloc allocations

  • Enhancement: Convert additional statically sized queues to elastic queues for better memory efficiency

  • Enhancement: Use more aggressive caching with Postgres primary keys and columns

  • Enhancement: Stable sort order now only applies to paginated queries to prevent performance issues on large tables

2025.2.10 (2025-10-22)

Platform:

  • Fix: Prevent out of bounds memory read in V8

  • Fix: Quote aliases with new Postgres parser to preserve case sensitivity

  • Fix: crypto.decode returning string instead of uint8array

  • Fix: Segfault panic on startup in getAssetEdgeInfoForSystem

  • Enhancement: Support binary response in base64 and hex decoding

  • Enhancement: Dynamically allocate memory for queues controlled by the following config variables: Engine.MessageQueueLength, Engine.EventQueueLength, Engine.PreloaderQueueSize

  • Enhancement: Omit empty shared message queues from "Shared MQTT Client Stats" log

2025.2.9 (2025-10-07)

Platform:

  • Fix: Bug prevents addPKToRevokedCertificatesTableUpdated migration from running

2025.2.8 (2025-10-01)

Platform:

  • Fix: Cache interface conversion panic

2025.2.7 (2025-09-29)

Platform:

  • Fix: Reuse developer sessions more often

  • Enhancement: Add legacy basic operations to Postgres connect collection connector

  • Enhancement: Add primary key cache to Postgres and SQLite packages

2025.2.6 (2025-09-26)

Platform:

  • Fix: Edges repeated in console edge list

  • Fix: SIGBUS may be raised when EnableHeapTracking=true for duktape due to misaligned pointers

  • Fix: LCache goroutines not cleaned up for service caches

  • Fix: Parse all flags when unknown flag provided instead of stopping

  • Fix: Make auto-balanced services execute as the system owner when no run-as user is set

  • Fix: Segfault on OTP regen

  • Fix: Permission denied when trying to get refresh session

  • Enhancement: Change default 2FA behavior to send either email or sms, depending on which service is set up, rather than requiring both be set up

  • Enhancement: Use transactions for deployment create

  • Enhancement: Add log format flag

2025.2.5 (2025-09-04)

Platform:

  • Enhancement: Add SHA-1 support for HMAC function in crypto native library

2025.2.4 (2025-08-22)

Platform:

  • Fix: Messages not removed from QoS map on PUBCOMP when QoS2 message sent from server

  • Fix: Interpret Uint8Array passed to resp.send as binary string

2025.2.3 (2025-08-19)

Platform:

  • Fix: Only set limit on Mongo queries if greater than zero

  • Fix: Add primary key to hypertable collections so that queries may use pagination

  • Enhancement: Upgrade Mongo driver to 2.3.0

2025.2.2 (2025-08-11)

Platform:

  • Fix: Mongo queries returning array values instead of objects

  • Fix: Mongo queries sometimes using wrong database name if multiple connections to the same server exist in the same system

  • Fix: Prevent race condition that could cause panics while logging out execution engine MQTT stats

  • Fix: Warn on unknown flags instead of panicking

2025.2.1 (2025-07-22)

Platform:

  • Enhancement: Add gzip support in the crypto native library.

2025.2.0 (2025-07-01)

Platform:

  • Feature: MQTT connector for Azure Event Hub

  • Feature: Support shared access token authentication in the broker. This can be disabled with DisableSharedAccessTokenAuth.

  • Feature: New query parser option that natively supports Postgres syntax. This can be enabled by setting config option UseLegacyParser to false.

  • Feature: New distributed lock store option. Add config options ConsistentHashVirtualNodes, HashRingGetNodeRetryCount, HashRingGetNodeRetryDelaySeconds, DebounceTimeoutSeconds and ClusterStablePeriodSeconds to configure the consistent hash ring and waiting for the cluster to stabilize and connect to every other node. Add config options LockQueueSize, MaxLockRetryAttempts, LockRetryInitialDelayMilliseconds, LockRetryMaxDelayMilliseconds and LockRetryBackoffFactor to configure the hash ring lock implementation.

  • Enhancement: Add ReportIntervalSeconds and ReportIntervalInitialDelaySeconds config options for tuning metric reporting

  • Enhancement: Add config options AzureEventHubPullBatchSize, AzureEventHubPullTimeoutSeconds, AzureEventHubPushBatchSize and AzureEventHubPushTimeoutSeconds for customizing the Event Hub connector

  • Enhancement: Allow preloaded services to serve many requests concurrently, even if no run-as user is set.

  • Enhancement: Add config variable MaxInFlightPreloadedRequestsPerInstance to limit the number of requests that a preloaded service instance will serve concurrently.

  • Enhancement: Pull user contexts in execution engines directly from global store instead of storing a local copy. This deprecates HotSwapUserCtx.

  • Enhancement: Allow use of the EXCLUDED keyword in the ON CONFLICT clause of raw queries

  • Enhancement: Reject raw queries that use black-listed functions. See config options RawQueryFunctionBlacklist, DefaultQueryFunctionBlacklistOverride, and DisableDefaultQueryFunctionBlacklist.

  • Enhancement: Upgrade MongoDB driver to v2.2.2

  • Fix: Check primary key index name dynamically using queries before converting collections to hypertables

  • Fix: Reject raw queries that contain cyclical aliases

  • Fix: Cancel unfinished operations spawned by code services when the service exits or preloaded request times out