Differences from Google IoT Core
ClearBlade is Google IoT Core's full replacement with an automated migration. While the solution is fully functional, some feature differences exist.
Some issues may exist in specific returns of error conditions for input permutations that have yet to be fully discovered. ClearBlade will resolve these with the least possible impact. ClearBlade IoT Enterprise has a more feature-rich, private instance that scales more efficiently. Please email iotcore@clearblade.com for more information.
Known list of differences that exist between IoT Core offerings
No plan to implement
1. Google JWT tokens base64 encoding. Google allows base64 and base64url JWT encodings. According to the JWT base64url specification, encoding is permitted. ClearBlade matches the JWT specification.
2. Google expired certificates from open source migration CLI. The ClearBlade IoT Core Migration tool does not allow loading expired certificates. ClearBlade IoT Core only allows loading unexpired x509 certificates like Google IoT Core. ClearBlade IoT Core allows expired certificates to work in Google IoT Core, and a private migration project from ClearBlade can support this requirement. Open a support ticket for more information.
3. Pub/Sub acknowledge. ClearBlade does not provide stored acknowledgment of receipt of messages sent to Google Pub/Sub.
4. State history migration from open source migration CLI. ClearBlade IoT Core does not migrate state history. APIs could bring state over, but delivery timestamps would be from migration time.
5. Root certificate. Google IoT Core uses Internal Google Certificate Authority for the root certificate of trust. Google Certificate Authority does not issue external certificates. ClearBlade IoT Core uses a root certificate of trust from industry leader DigiCert.
6. Global MQTT URL. Google provides a single global device URL. ClearBlade IoT Core provides only regional URLs.
7. Exact .NET SDK matching. Google .NET SDK is not specific to IoT Core but offers a full cloud suite. ClearBlade has provided an IoT Core subset library.
8. Pub/Sub topic creation from UI. To reduce permissions required by ClearBlade IoT Core into user project areas, ClearBlade IoT Core does not enable the creation of Pub/Sub topics from its console interface.
9. SECP256R1 elliptic curve support. This issue comes from intermediate certificate use. It can be solved using the recommended ClearBlade external proxy and a third-party trust provider that can issue a non-standard intermediate certificate, such as DigiCert.
10. TLS_RSA_WITH_3DES_EDE_CBC_SHA Cipher support. Currently, this cipher is not reporting as supported.
11. Topic NumID support. ClearBlade honors deviceID in its device topic paths but does not honor numID. All devices must connect using their deviceID in the topic path.
12. No disconnect on reconnect. Google IoT Core allows a device to connect while connected and does not report a disconnect from the old connection. MQTT specification requires the oldest connections to be disconnected when using the same client-id. When a device reconnects in ClearBlade IoT Core, the server will issue and log the old connection being disconnected.
Under consideration
1. Google IAM. ClearBlade IoT Core does not provide Federated Auth or OAuth2 developer identity with Google IAM. ClearBlade IoT Core provides its user registry, where all passwords are one hashed. ClearBlade IoT Core is currently SOC 2 Type II certified.
Under investigation
1. Arduino support. Currently unavailable.
2. ClearBlade IoT Core does not fully support persistent sessions. It automatically resubscribes previously subscribed topics for clients that connect with a clean_session flag set to false. It does not store messages sent to clients while they are disconnected. If full support of persistent sessions is required, then an upgrade from IoT Core to IoT Enterprise is necessary.
3. The sendCommandToDevice endpoint only returns a 400 FAILED_PRECONDITION if the device is not connected via MQTT. Google IoT Core does an additional check to ensure the device is subscribed to the wildcard MQTT topic. Google reference.
4. ClearBlade active device monitoring calculation. We believe Google counts an active device as any device with an established MQTT connection. ClearBlade counts a device sending events or states as an active device.
5. Google reports broken connections to the error status device field (e.g., if a client closes a TCP connection without sending an MQTT disconnect). ClearBlade does not consider this an error.
Under development
1. Terraform support. Currently unavailable. APIs are recommended as a workaround.
2. Java SDK API matching. Google provided multiple SDKs with different API implementations. ClearBlade IoT Core is working to provide a merged SDK version to support the widest migration needs. This version will most likely require end-user changes.
Completed
1. Config acknowledge. ClearBlade IoT Core does not provide stored acknowledgment of new configuration device reception.
2. Disconnect vs. ignore on a bad topic subscribe. ClearBlade IoT Core disconnects devices that subscribe to any topic besides config and command. Google IoT Core ignores all subscribe requests.
3. Server side TTL forcing device disconnect.
4. JWT over HTTP.
5. Golang SDK.