General notes:
Version numbers are formatted as x.y.z where x=major version, y=minor version and z=patch version
Regarding Blue/Green upgrades:
Blue/Green upgrades can be performed on environments running version a.b.c or newer.
ClearBlade only guarantees compatibility between one minor version and the next.
If an environment needs to be upgraded from one version to another in a Blue/Green fashion where the origin and target versions are separated by more than one minor version, then:
Multiple upgrade steps are required.
The steps must upgrade the environment to each of the minor versions between the origin and target versions.
Only one step per minor version is required.
Although a step can be used to upgrade to any patch version within a minor version, it is recommended that the latest patch version is chosen. This is because the latest patch version is likely to incorporate the most bug fixes.
For example, if upgrading from 9.36.2 to 9.38.0 either of these series of steps can be used:
9.36.2 -> 9.37.2 -> 9.38.0
9.36.2 -> 9.37.4 -> 9.38.0 (recommended)
9.38.3
Date:2024-11-22
Notes:
Platform:
Enhancement: Use caller name instead of lock name in lock metrics
Fix: Send error response on bucketset file create failures
Fix: Better version comparison algorithm for edge upgrades
9.38.2
Date:2024-11-15
Notes:
Platform:
Fix: Stop overwriting redirect responses from services with status codes in the 300s
Fix: Properly initialize node socket object to avoid push call on undefined object error
Fix: Add details to s3 files in bucketset list endpoint
Fix: Always set deployment name in sync status messages
Fix: Ensure async functions run asynchronously in v8
Fix: Better promise rejection handling in v8
Fix: Use proper parameter order for create_jwt in v8
Fix: Fire triggers on collection actions in v8
9.38.1
Date:2024-11-05
Notes:
Platform:
Fix: Only flush timer cache during init on leader node
Fix: Only add a node to the leader manager after a successful connection
Fix: Skip data upsert with no data in system upload collection handler to avoid panic
9.38.0
Date:2024-10-17
Notes:
Platform:
Feature: Add log levels to code services
Feature: Add admin endpoint to reset database statistics
Feature: Add requireLibrary to v8
Enhancement: Allow filtering edges based on connectivity status
Enhancement: Remove system secrets
Enhancement: Add additional logging and auditing to service account session deletion
Enhancement: Ignore unregistered RPC messages
Enhancement: Migrate PubSub connections to MQTT connectors
Enhancement: Add prometheus metric for gRPC connections
Enhancement: Add prometheus metric for RPC execution times
Fix: Don't print periodic stat logs when executing subcommands
Fix: Add external broker connections back to prometheus metrics
Console:
Enhancement: Remove system secret from system settings page
Fix: Allow edge names to start with a number
9.37.5
Date:2024-11-05
Notes:
Platform:
Fix: Only flush timer cache during init on leader node
Fix: Only add a node to the leader manager after a successful connection
Fix: Skip data upsert with no data in system upload collection handler to avoid panic
9.37.4
Date:2024-10-17
Notes:
Platform:
Fix: Handle new user in code service meta during system upload dry runs
Fix: Remove preemptive delete from running service map
Fix: Remove extra lock in broker leading to deadlocks in connect
9.37.3
Date:2024-10-15
Notes:
Platform:
Fix: Correct column name in device public key replace function
9.37.2
Date:2024-10-11
Notes:
Platform:
Enhancement: Move node connection stats log from debug to info level
Fix: Allow service undeploy to succeed if service is already gone
Fix: Don't attempt to sync secrets to edges with insecure connections
Fix: Sort undeploy messages in reverse order to fix dependency errors
9.37.1
Date:2024-09-30
Notes:
Platform:
Fix: Send metadata along with gRPC requests
Fix: Register missing error types with gob
9.37.0
Date:2024-09-26
Notes:
Platform:
Feature: Kinesis integration
Feature: gRPC client support in code services
Feature: Full system support in system upload
Feature: Prometheus metrics for distributed locks and leader status
Feature: Admin endpoint for database statistics
Feature: Add detach node subcommand
Enhancement: Allow configuring the mTLS MQTT ALPN string
Enhancement: Add stack trace to unhandled promise rejection errors
Enhancement: Allow changing RPC MaxInFlightWorkers and MaxProcessMessageQueue config variables at runtime
Enhancement: Calculate Prometheus gauge metrics at scrape time
Enhancement: Aggregate dropped event queue messages to avoid spamming logs
Enhancement: Improve logging around auto-balance process
Enhancement: Improve stat log structure in json log mode
Enhancement: Add package category to log fields in json log mode
Enhancement: Add more details to router permission denied errors
Fix: Prevent edges from being downgraded when connecting to older platform nodes
Fix: Prevent deadlock on timer queue reinitialization
Fix: Stop auto-scaling services that exit too quickly
Fix: Correct service stack trace line numbers when custom libraries are included
Fix: Remove sessions when system is deleted
Fix: Modify killclient to work with AddRandom config option
Fix: Prevent duplicate throttlers from being created
Console:
Fix: Add bucket set button throws error
9.36.6
Date:2024-08-27
Notes:
Console:
Fix: Updated cblib dependency to allow for importing secrets via IPM
9.36.5
Date: 2024-08-23
Notes:
Platform:
Enhancement: Add temporary config option to reduce JWT size by disabling JWT auth
Fix: Handle interface conversion to avoid panic in cache MGetInternal
Fix: Sync collection schema when only syncing a subset of collection items
9.36.4
Date:2024-07-30
Notes:
Console:
Feature: Add OIDC allowed domain filters
Enhancement: Remove unnecessary comment in micro service template
9.36.3
Date:2024-07-25
Notes:
Platform:
Fix: Added checks in internal MQTT client to avoid nil dereference panic
Fix: Use more accurate queue stats in autoscaler
Fix: Restart timer queue after cluster leadership change
9.36.2
Date:2024-07-15
Notes:
Platform:
Fix: Ensure Postgres system errors are propagated back to code services
Fix: Properly lock when killing code service to avoid panic during deletion
Fix: Use the correct query in sync status to delete errors on the initial edge handshake
Console:
Fix: The simple filter for tables does not work
9.36.1
Date:2024-07-01
Notes:
Platform:
Feature: Add subcommand for dumping database statistics
Feature: Add subcommand for manually reinitializing timer queue
Enhancement: Add config options for sync queue reaper enabled, interval, and per-target thresholds
Enhancement: Add timeouts to RPC message calls
Enhancement: Reregister node info in Redis if keys get cleared unexpectedly
Fix: Avoid index out of range panic in code services caused by clearTimeout
Fix: Use proper timescale chunk sizes for message history tables and add subcommand for manual fixes
Fix: Ensure auto-scaled services keep receiving messages after scaling down
Fix: Enforce minimum auto-scale concurrency of 1
Console:
Fix: Upgrade filter package to fix CSP violation
9.36.0
Date:2024-06-18
Notes:
Platform:
Feature: One-step mTLS support for MQTT
Feature: Stream service autoscaling
Feature: Add overridable Process.onShutdown callback in JavaScript engine
Feature: Add Prometheus metrics for active and throttled MQTT connects
Feature: Add Prometheus metrics for MongoDB operations
Feature: Add a subcommand for toggling the force clean session option for the system
Feature: Add a subcommand for manually setting the leader node
Feature: Periodically dump stack to disk
Enhancement: Gracefully terminate stream services
Enhancement: Use blue/green update process for stream services
Enhancement: Capture system enable and disable in the audit trail
Enhancement: Add gin index to messaging table topicid column
Enhancement: Skip persistent session message history query if the topic is not whitelisted
Enhancement: Allow userid as a parameter in the userConnections native library function
Enhancement: Add retries on external DB initial connect
Enhancement: Support users, collections, webhooks, bucket sets, and external DBs in the system upload endpoint
Enhancement: Force cluster leader change if leader ID is invalid
Enhancement: Allow migrations to run when a node with a newer version joins the cluster
Enhancement: Code log cleanup optimizations
Enhancement: Warning log when device numid is missing in Pub/Sub messages
Console:
Feature: Add auto scale settings to the service settings tab
Enhancement: Reorganize the code service settings tab
Fix: Selecting OIDC scope crashes page
9.35.4
Date:2024-06-04
Notes:
Fix: Ensure correct primary key is returned for revoked certificates migration
9.35.3
Date:2024-05-31
Notes:
Enhancement: Add config variable for Google Cloud logging resource type
Enhancement: Reduce distributed locking around MQTT sessions
Enhancement: Reduce database querying around MQTT sessions
Fix: Disallow duplicate entries in mTLS revoked certificates
9.35.2
Date:2024-05-23
Notes:
Platform:
Fix: Persist message history settings on system disable
Fix: Session handling with anon clients no longer leads to nil pointer panic
Fix: Allow timer creation with zero repeats from code services
Enhancement: Raw query log moved from debug to super level
Console:
Fix: Toggle all logging wipes run_user setting
Feature: Add sensitive params checkbox to code service advanced settings
Enhancement: Add missing triggers
9.35.1
Date:2024-05-07
Notes:
Platform:
Enhancement: Add helm chart version to reported metrics
Fix: Revert accidental rename of client connect/disconnect trigger payload key to "triggerKey"
Fix: Add missing error string in kill-client error log
Fix: Register missing map[string]string type with gob
Fix: Ensure developer tokens are removed from the cache after logout
Fix: Avoid potential concurrent map read/write panic in preloaded request manager
Fix: Avoid potential assignment to nil map panic in preloaded request manager
Console:
Fix: Subscribing on the test topic tab on the messages page doesn't work if a sync status message is received before the topic is set
9.35.0
Date:2024-04-24
Notes:
Platform:
Feature: System upload endpoint with support for code services, libraries, and roles
Enhancement: Use POST request for subcommands to allow URLs as arguments
Enhancement: Separate preloaded request queues from execution engines to prevent dropped requests
Enhancement: Add Prometheus metrics for preloaded request queues
Enhancement: Accept certificate hash in mTLS revocation endpoint
Console:
Feature: Add V8 support when creating/editing services
Fix: Handle non-200 status code when testing code services
Note: If blue/green environments want to upgrade to 9.35.0, they’ll have to go through the three-step upgrade sequence beginning with version 9.34.0.1.
9.34.4
Date:2024-05-31
Notes:
Enhancement: Add config variable for Google Cloud logging resource type
Enhancement: Reduce distributed locking around MQTT sessions
Enhancement: Reduce database querying around MQTT sessions
The new versions in our new recommended blue/green upgrade sequence are 9.34.0.2 -> 9.34.2.2 -> 9.34.4.
9.34.3
Date:2024-04-24
Notes:
Enhancement: Node library UDP packet additions
Enhancement: Remove noisy library import cycle log
Fix: Webhooks not working due to failed migration
Fix: Broker deadlock with shared MQTT subscriptions from code services
Note: This is part three of a three-part release series to support RPC updates in blue/green environments. If your environment needs strict blue/green upgrades, you must successfully deploy each of the three versions sequentially and can’t skip any.
9.34.2.2
Date:2024-05-31
Notes:
Enhancement: Add config variable for Google Cloud logging resource type
Enhancement: Reduce distributed locking around MQTT sessions
Enhancement: Reduce database querying around MQTT sessions
The new versions in our new recommended blue/green upgrade sequence are 9.34.0.2 -> 9.34.2.2 -> 9.34.4.
9.34.2.1
Date:2024-04-26
Notes:
Fix: Broker deadlock with shared MQTT subscriptions from code services
Fix: Webhooks not working due to failed migration
Note: This is part two of a three-part release series to support RPC updates in blue/green environments. If your environment needs strict blue/green upgrades, you must successfully deploy each of the three versions sequentially and can’t skip any.
9.34.2
Date:2024-04-03
Notes:
Fix: Forwarding MQTT5 messages across cluster nodes causing RPC disconnection
Fix: Execution engines that subscribed to shared topics not being cleaned up after termination, leading to memory leak
Fix: P2P migrations erroring due to missing DEK
9.34.1
Date:2024-03-28
Notes:
Enhancement: Add Prometheus metrics for MQTT shared topic queues
Enhancement: Add JSON option to dump stack subcommand
Enhancement: Add RPC handlers for code updates
Fix: Memory leak in Duktape context cache
9.34.0.2
Date:2024-05-31
Notes:
Enhancement: Add config variable for Google Cloud logging resource type
Enhancement: Reduce distributed locking around MQTT sessions
Enhancement: Reduce database querying around MQTT sessions
The new versions in our new recommended blue/green upgrade sequence are 9.34.0.2 -> 9.34.2.2 -> 9.34.4.
9.34.0.1
Date:2024-04-26
Notes:
Enhancement: Add Prometheus metrics for MQTT shared topic queues
Fix: Memory leak in Duktape context cache
Fix: Execution engines that subscribed to shared topics not being cleaned up after termination, leading to memory leak
Fix: Broker deadlock with shared MQTT subscriptions from code services
Fix: Webhooks not working due to failed migration
Note: This is part one of a three-part release series to support RPC updates in blue/green environments. If your environment needs strict blue/green upgrades, you must successfully deploy each of the three versions and can’t skip any.
9.34.0
Date:2024-03-22
Notes:
Feature: Add endpoint for reading platform config
Feature: Improve raw query parsing to support the ON CONFLICT clause for upserts
Feature: Kill clients if they accumulate too many unacknowledged QoS 1/2 messages
Feature: Add CORS header config variables
Feature: Add ConsoleURL config variable
Enhancement: Separate MQTT shared subscription queues from execution engines to prevent dropped messages
Enhancement: Allow multiple route levels and path variables in webhooks
Enhancement: Remove the item_id unique constraint on the hypertable collections
Enhancement: Move retain messages to the database to avoid expensive cache scans on subscribe
Enhancement: Suppress error messages when autobalanced services are restarted
Enhancement: Rename EdgeCookie to EdgeToken in edge config
Enhancement: Stop creating timer and trigger topic permissions by default
Enhancement: Add session ID and IP to trigger data for connect, disconnect, subscribe, and unsubscribe triggers
Enhancement: Add Prometheus metric for QoS storage map size
Enhancement: Add MQTT version to current connections Prometheus metric
Enhancement: Add init cache expiry to make blue/green upgrades easier
Fix: Make edge retry failed sync events without requiring a reboot
Fix: Attempt to reconnect if node connections are lost in a cluster
Fix: Prevent double close on channel panics when deleting systems
Fix: Remove cache race condition when deleting or renaming columns
Fix: Clean up MQTT trigger config table on system delete
...
9.33.8
Date:2024-05-23
Notes:
Enhancement: Optimize database handling of MQTT sessions
9.33.7
Date:2024-03-06
Notes:
...