Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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:

...

  • 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:

...

  • 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

...

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:

...

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 anyyour 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:

...

  • 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

...

  • 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:

...