ClearBlade IoT Enterprise and Edge

2025.3

2025.3.21 (2026-07-22)

Platform:

  • Fix: Move socket writes out of locked regions in the broker to avoid stalls caused by blocked clients

2025.3.20 (2026-06-26)

Platform:

  • Enhancement: Allow more specific throttler control

  • Enhancement: Allow frequency throttlers to count globally instead of per-node with config Misc.EnableGlobalThrottlers (default false)

2025.3.19 (2026-04-02)

Platform:

  • Fix: Send errors back to clients when executing preloaded requests instead of crashing the service

2025.3.18 (2026-03-24)

Platform:

  • Fix: Unable to decode timers due to nil entry from cache

2025.3.17 (2026-03-24)

Platform:

  • Fix: Panic caused by nil pointer in auth user from code service

2025.3.16 (2026-03-23)

Platform:

  • Fix: Memory leak in query parser token rewriter

  • Fix: Throttlers added with the same filters as a previously hit throttler would not take effect

  • Fix: Remove default schedule interval with continuous aggregates, and only create refresh policy if schedule interval is defined

  • Fix: Memory leak caused by cancelled signals not being removed from map

  • Fix: Return error when writing to Google bucket if writer cannot be closed

  • Fix: Items could get stuck in sync queue if deployment changes or node restarts while syncing

  • Fix: System upload endpoint dropped existing column if type was an invalid type.

  • Fix: Role perm change was not pushed when level dropped to 0

  • Fix: Webhooks cannot be recreated after service deletion due to cache error

  • Enhancement: Remove redundant stderr logs with sql parser errors

  • Enhancement: Avoid deleting device sessions during update if auth fields are unchanged

  • Enhancement: Optimize primary key constraint query

  • Enhancement: Improve usercontext cache utilization

  • Enhancement: Reduce number of database queries made during MQTT client connect and disconnect

  • Enhancement: Cache sessions by session id

  • Enhancement: Add prometheus metrics and logs for MQTT authentication attempts

  • Enhancement: Support real-time aggregates on hypertables

2025.3.15 (2026-02-25)

Platform:

  • Fix: V8 service OOM could cause server to crash

  • Fix: Index column information not supported in system upload

  • Fix: Cache asset edge map on systems without any deployments

  • Fix: Permission checks

  • Enhancement: Add Prometheus counter clearblade_panics_total

  • Enhancement: Improve caching around Postgres primary key queries

  • Enhancement: Add query parameter support to Collection.fetchAggregateRaw

  • Enhancement: Cache edge names by system

  • Enhancement: Use time column as first column in Hypertable primary key

  • Enhancement: Switch from UUIDv4 to UUIDv7

2025.3.14 (2026-02-17)

Platform:

  • Fix: V8 isolates that hit heap limit hang while holding engine lock

  • Enhancement: Support weak ciphers in TLS connections with EnableWeakCiphers

  • Enhancement: Minimum TLS version can be set with MinTlsVersion

  • Enhancement: Add RootRedirectURL config option

  • Enhancement: Censor service account credentials from bucket set api response

2025.3.13 (2026-02-11)

Platform:

  • Fix: Developers sometimes falsely reported as disabled if a system they own is disabled

  • Fix: Race condition when updating device attached proxies in database.

2025.3.12 (2026-02-09)

Platform:

  • Fix: Separate userctx cache entries by session

  • Fix: Developers sometimes falsely reported as disabled if a system they own is disabled

  • Fix: Unlock topic tree before publishing to clients to avoid locking broker if client hangs

  • Fix: Distributed locks not timing out when max wait time is greater than the bump interval

  • Enhancement: Return error when attempting to delete default throttlers via api

2025.3.11 (2026-01-27)

Platform:

  • Fix: Segfault in publish from code service

  • Fix: Sessions can appear from other systems

2025.3.10 (2026-01-26)

Platform:

  • Fix: Memory leak in preloaded code service heaps due to tasks scheduled after response send

  • Fix: Double load of library causes ClearBladeRequestCallback to be declared twice

  • Fix: Register websocket handlers on TLS listeners if enabled

  • Fix: Do not redirect ACME challenge requests from HTTP to HTTPS when EnableReverseProxy=true

  • Enhancement: Allow TLS listeners to serve multiple certs via SNI. TLS certificates can be managed with the tls subcommand.

  • Enhancement: The content of a file may be used as a subcommand argument by prefixing its local path with "@"

2025.3.9 (2026-01-14)

Platform:

  • Fix: Remove "concurrently" from drop index calls when operating on hypertables

2025.3.8 (2026-01-13)

Platform:

  • Fix: Don't allow disabled developers to create new sessions

  • Fix: Prevent disabled developers from reusing existing sessions

  • Fix: Flush system cache after system owner update

  • Fix: Flush developer cache after developer delete

  • Fix: System migration would fail when migrating MQTT connectors

  • Fix: System migration may fail due to PKEY violation when migrating sync queue

  • Fix: Custom edge columns not migrated in system migration

  • Fix: Abort system migration if platform instances are on a different minor version

  • Fix: Iot core errors not reported when devices subscribe to non Iot core topics

  • Fix: Prevent edge remote shell input/output from being processed out of order

  • Fix: V8 could leak callstack memory if an error is encountered while building the callstack

  • Enhancement: Set TERM=xterm-256color on edge remote shell

2025.3.7 (2026-01-06)

Platform:

  • Fix: Bucket set files fail to sync from edge to platform if parent directory is not already created

  • Fix: Only validate developer 2FA settings if 2FA is enabled

  • Fix: Add clearblade_ai and grpc to list of libraries supported by V8

  • Fix: Incorrect asset info for bucket set sync

  • Fix: Support permissions for FileStores, FileStoreFiles, and EdgeRemoteAdmin in system upload endpoint

  • Enhancement: Support mailer library in v8

  • Enhancement: Support hypertables in system upload endpoint

  • Enhancement: Allow EXPLAIN queries to be run when UseLegacyParser = false

  • Enhancement: Add support for TLS and non-TLS ports. Redirect HTTP to HTTPS.

  • Enhancement: Reduce default value for QueueEmptyIntervalSecs from 3600 to 30 on edges

  • Enhancement: Restart bucket set watchers when QueueEmptyIntervalSecs is updated at runtime

2025.3.6 (2025-12-12)

Platform:

  • Fix: Prevent local bucketset operations from escaping the root

  • 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

  • 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

  • Fix: Build failure on edges with arm architectures

  • Fix: Code service logs block during flush to db

  • Fix: Code service execution continuing after resp call

  • Fix: Callbacks scheduled with setTimeout, setInterval, and setImmediate may be executed as incorrect user

  • Fix: Preloaded services timing out early

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

  • 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: HMAC sign requests to file hosting server

  • Enhancement: Increase logging around RPC errors

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

  • Enhancement: Only expose subcommand server on loopback interface

  • 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.3.5 (2025-11-13)

Platform:

  • Fix: Index out of range panic in timer queue

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

  • Fix: Auto-scaler not cleaned up on system delete, system disable, and service delete

2025.3.4 (2025-11-7)

Platform:

  • Fix: Concurrent map read/write in query rewriter

2025.3.3 (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.3.2 (2025-10-30)

Platform:

  • Fix: Bug causes V8 to crash if engine is terminated while calling _unhandledRejection

  • 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

  • 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.3.1 (2025-10-16)

Platform:

  • Enhancement: Make two factor authentication trust window configurable with platform setting dev_two_factor_trust_window_minutes and system setting two_factor_trust_window_minutes

  • Enhancement: Parse device name and system key from mTLS cert common name using regex, configurable with Security.MTLSCertSystemKeyPattern and Security.MTLSCertDeviceNamePattern

  • Enhancement: Allow mTLS connections to get their system key value from the route path

  • 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

  • Fix: Prevent out of bounds memory read in V8

2025.3.0 (2025-10-01)

Platform:

  • Feature: Add HTTP and JS APIs for generic file storage with File Stores.

  • Feature: Add MQTT batch connector

  • Feature: Add MQTT collection connector

  • Feature: Add system-specific JWT validation settings configurable via the /admin/jwt_settings/{systemKey} endpoint

  • Feature: Add internal message topics that send OIDC claims on successful user auth or registration

  • Feature: Unified OIDC flow for users - a single endpoint that will register new users or auth existing users

  • Feature: Add support for AWS S3 file store.

  • Feature: Add support for GCP Cloud Bucket file store.

  • Feature: Add SFTP support

  • Feature: Persist client tracing in database, forward requests to all cluster nodes, and add an admin endpoint to manage traced clients

  • Enhancement: Add MQTT5 user properties to PubSub message

  • Enhancement: Add functions to the clearblade async JS library for creating, querying, and deleting continuous aggregates.

  • Enhancement: Add support for TLS servers, reverse proxy and certificate renewal. Change HTTP TLS port to 9002.

  • Enhancement: Allow configuring default JWT settings, and max configurable JWT settings, with platform config variables JWTMaxExpiryHours, JWTMaxIssuedAgeHours, JWTClockSkewMinutes, and MaxJWTMaxExpiryHours, MaxJWTMaxIssuedAgeHours, MaxJWTClockSkewMinutes.

  • Enhancement: Support MQTT 5 user properties in mqtt javascript library

  • Enhancement: Support binary response in base64 and hex decoding

  • Enhancement: Add new "monitor" log level, which displays manually enabled trace/debug logs even when the platform log level is set to error

  • Enhancement: Add endpoints to create, read, and delete hypertable compression settings

  • Enhancement: Add alternate webhook endpoint with name at end

  • Enhancement: Add mTLS auth option to webhooks

  • Enhancement: Allow multiple auth options on webhooks

  • Enhancement: Add param when executing webhook to indicate if a request was using mTLS

  • Enhancement: Support file stores in system upload endpoint

  • Fix: Release memory on V8 fatal errors

  • Fix: Developer password changes are not synced to the edge