2025.4.22 (2026-08-12)
Platform:
-
Enhancement: Allow setting a global auth service for broker connections with
MQTT.BrokerAuthServiceandMQTT.BrokerAuthSystem -
Fix: Global promises referenced by multiple preloaded requests could run callbacks with incorrect context
2025.4.21 (2026-08-05)
Platform:
-
Fix: Small amount of memory leaked when V8 engine is destroyed
-
Fix: Heap snapshot memory leaked for lifetime of V8 isolate
See also 2025.3.21
2025.4.20 (2026-07-06)
Platform:
-
Fix: Set headers on proxied HTTP responses
-
Fix: Support HTTP/2 on TLS listeners
-
Enhancement: Allow headers to be specified multiple times in JavaScript responses
2025.4.19 (2026-06-26)
Platform:
-
Fix: Panic if incorrect argument type is provided to embedded JS function
-
Fix: Only allow libraries to be created with system visibility
-
Fix: IoT device properties not updated when publishes come from code services
-
Fix: Apply security patches to dependencies
-
Fix: Validate that provided GCP credentials are for a service account
-
Enhancement: Start all adapters on edge startup. Can be disabled by toggling
Edge.RunAdaptersOnStartup. -
Enhancement: Add user id to HTTP router log attributes
-
Enhancement: Allow multiple config files to be parsed by providing the
-configflag more than once -
Enhancement: Add
acmesubcommand for rescanning and force-renewing TLS certificates -
Enhancement: Add prometheus metric
clearblade_tls_certificate_expiration_days -
Enhancement: Remove
Engine.DisableManualDukGcflag in favor ofEngine.DukGcIntervalSeconds -
Enhancement: Only run garbage collection in Duk if the engine has executed code since the last GC cycle
See also 2025.3.20
2025.4.18 (2026-06-16)
Platform:
-
Fix: Sync optimizer no longer drops updates when multiple updates to the same asset queue up before the dispatcher drains
-
Fix: Remove artificial heap cap in v8
-
Enhancement: Remove excessive garbage collection calls in Duk. This can be reverted by setting
Engine.DisableManualDukGc = false -
Enhancement: Reduce memory fragmentation when both Duk and V8 engines are used simultaneously
-
Enhancement: Expose the following MQTT5 properties in mqtt lib:
responseTopic,messageExpiryInterval,contentType,payloadFormatIndicator
2025.4.17 (2026-06-02)
Platform:
-
Fix: Race condition when fetching V8 statistics could cause segfault
-
Fix: Allow microtask execution after sending response in code service
-
Fix: Signal manager memory leak on stream services
-
Fix: Prevent message definitions from being re-sent on every transmission when
RPC.EncoderDecoderType = "gob" -
Fix: Limit number of goroutines used when segmenting RPC messages
-
Enhancement: Set default value of
RPC.EncoderDecoderTypetogob -
Enhancement: Cache results of Postgres stats queries
2025.4.16 (2026-05-14)
Platform:
-
Fix: 2FA authentication no longer fails when a user has no phone number and no
two_factor_methodconfigured -
Fix: Return correct MQTT5 reason codes in UNSUBACK, PUBCOMP, and PUBREL packets
-
Fix: Continuous aggregate query FILTERS returning no results due to double-encoding of parameter values
-
Fix: Add idle timeouts to HTTP servers, configurable with
HTTP.IdleTimeout(default 120s) andHTTP.ReadHeaderTimeout(default 5s) -
Fix: Updating a continuous aggregate built on top of another continuous aggregate no longer fails with an "Unknown table ... -- permission denied" error
-
Enhancement: 2FA auth response now includes
delivery_statusper method and succeeds when at least one method succeeded
Console:
-
Feature: Manage continuous aggregates for hypertable collections
-
Enhancement: Update code editor to support modern JS syntax
2025.4.15 (2026-05-06)
Platform:
-
Fix: Re-verify mTLS certificate chain when connection is resumed
-
Fix: At startup, cluster may incorrectly be determined to be stable when it is unstable
-
Fix: Allow resp.send to be called with no argument
-
Fix: Return deprecated code meta fields from HTTP endpoints for backwards compatibility
-
Enhancement: Improve performance of mTLS broker auth
-
Enhancement: Update V8 to version 14.8
-
Enhancement: Rename
/admin/revoked_certsto/admin/mtls-certs/revoked -
Enhancement: Rename
/admin/settings/mtls/generate-certificateto/admin/mtls-certs/roots -
Enhancement: Rename
/admin/settings/mtls/{systemKey}/{certName}/generate-certificateto/admin/mtls-certs/systems/{systemKey} -
Enhancement: Rename
/admin/settings/mtls/{systemKey}/{certName}to/admin/mtls-certs/systems/{systemKey}/{certName} -
Enhancement: Rename
/admin/settings/mtls/{systemKey}to/admin/mtls-certs/systems/{systemKey} -
Enhancement: Rename
/admin/devices/{systemKey}/{deviceName}/generate-certificateto/admin/mtls-certs/devices/{systemKey}/{deviceName} -
Enhancement: Increase default value of
RPCExecutionWarnThresholdMillisecondsfrom 1000 to 2000 -
Enhancement: Use memory pool for password hashing
-
Enhancement: Change log levels of many logs
-
Enhancement: Do not create default indexes on hypertables
-
Enhancement: Increase default value of cluster
DebounceTimeoutSecondsfrom 10 to 30 -
Enhancement: Add config option
Security.MaxTlsConnectionsPerNodePerSecond -
Enhancement: Reduce memory and CPU used to plan Postgres queries
-
Enhancement: Allow IoTCore clients to authenticate via JWT with
system_keyclaim -
Enhancement: Add config var
MQTT.EnabledAuthMethodsto restrict which auth methods the broker accepts -
Enhancement: Add config var
MQTT.MaxConnectionDurationto enforce a broker disconnect cadence -
Enhancement: Add endpoint for device legacy auth
-
Enhancement: Remove config var
IotCore.StrictClientIDEnforcement -
Enhancement: Use memory pool for gzip compression on HTTP endpoints
2025.4.14 (2026-04-15)
Platform:
-
Fix: Identifier ClearBladeAsync undefined in duktape services
-
Fix: Invalid syntax error in column parsing for duktape error stacks
-
Fix: Anon tokens using user TTLs
2025.4.13 (2026-04-13)
Platform:
-
Enhancement: Add clientId to mqtt connect/disconnect trigger payloads
-
Enhancement: Add kill client functions to clearblade_async library
2025.4.12 (2026-04-02)
Platform:
-
Fix: Webhook deployment for platform-to-edge sync fails on initial edge connect
See also 2025.3.19
2025.4.11 (2026-03-24)
2025.4.10 (2026-03-23)
Platform:
-
Fix: Allow accessing symbols on JavaScript database results
-
Fix: Endpoint may timeout instead of returning error when getting V8 profiles
-
Enhancement: Minfiy native library source code
See also 2025.3.16
2025.4.9 (2026-02-25)
Platform:
-
Fix: Source map not string but nil error
-
Fix: Database queries in Duk could cause
TypeError: cannot string coerce Symbol -
Fix: Permission checks
-
Enhancement: Allow referencing existing continuous aggregates by name in
Collection.createContinuousAggregateandCollection.fetchAggregateRaw -
Enhancement: Add V8 profiling support to console - accessible from the 'Currently Running' tab on the service page
2025.4.8 (2026-02-17)
Platform:
See 2025.3.14
2025.4.7 (2026-02-11)
Platform:
See 2025.3.13
2025.4.6 (2026-02-09)
Platform:
-
Enhancement: Add prometheus metrics
clearblade_code_services_open_read_streamsandclearblade_code_services_open_write_streams -
Enhancement: Add content-length header to http responses to avoid chunked transfer encoding
2025.4.5 (2026-01-30)
Platform:
-
Fix: Services executed simultaneously had a small chance of loading the wrong native libraries
2025.4.4 (2026-01-27)
See 2025.3.11
2025.4.3 (2026-01-26)
Platform:
-
Enhancement: When running timers, triggers, and stream services, always execute as run-as user, or system owner if run-as user is not set
2025.4.2 (2026-01-14)
Platform:
-
Fix: ReadableStreams in execution engine are not closed after being read
-
Enhancement: Results from GET code meta endpoints can be filtered by euid through query param
2025.4.1 (2026-01-13)
Platform:
-
Fix: Require permissions on edge resource to read or mutate edge table schema
-
Fix: Response streams from
fetchreturn incorrect data -
Enhancement: Allow RPCKeepaliveInterval to be set to any value
-
Enhancement: Add
retrysyncandretrybucketsetfilesyncsubcommands
2025.4.0 (2026-01-06)
Platform:
-
Breaking: Developer tokens will now expire by default
-
Feature: Support heap and CPU profiling in V8
-
Feature: Add support for protobuf message encode and decode
-
Feature: Add transform services that automatically subscribe to topics and support auto-scale to zero
-
Feature: Add source map support for services and libraries
-
Feature: Allow preloaded services to autoscale from zero concurrency
-
Feature: Add ability to remotely run queries on the edge database
-
Feature: Support JavaScript Streams API in execution engines
-
Feature: Support streaming responses from code services by adding the
resp.writableproperty when thestreamlibrary is a dependency. -
Enhancement: Add
service_typelabel toclearblade_code_services_running_servicesPrometheus metric -
Enhancement: Add
atobandbtoafunctions to execution engine -
Enhancement: Allow the
mqttlibraryclient.subscribeto take an array of topics -
Enhancement: Add
topicproperty toMQTT.Message -
Enhancement: Add ability to remotely exit edge recovery mode
-
Enhancement: Allow remote DB console and remote shell for edge in recovery mode
-
Enhancement: Add recovery mode reason to edge table
-
Enhancement: Dont enter recover mode if edge is still compatible with platform after a failed upgrade
-
Enhancement: Upgrade Google PubSub library to v2
-
Enhancement: Upgrade AWS Go SDK to v2
-
Enhancement: Allow engine
Database.queryresponse to be efficiently handled as aReadableStreamby adding.stream()function -
Enhancement: Add
.createReadStream()and.createWriteStream()functions toFS,FileStore, andFile -
Enhancement: Allow MQTT payloads to be written to as a stream with
client.createPublishStreamin themqttlibrary -
Enhancement: Allow engine
fetchresponse object to be efficiently handled as aReadableStreamby adding.stream()function -
Enhancement: Allow engine
Collection.fetchandCollection.fetchAggregateresponse to be efficiently handled as aReadableStreamby adding.stream()function -
Fix: Prevent race condition when updating heap statistics that could result in incorrect values being reported.