Proto commits in thingsboard/tbmq

These 97 commits are when the Protocol Buffers files have changed:

Commit:6cfdf19
Author:dlandiak

feat(integration): add clientCertCn to client lifecycle events Carry the X.509 certificate Common Name as a common lifecycle-event field alongside username, populated from the session ctx in newSessionBuilder so it rides on every session-scoped event (CONNECTED/DISCONNECTED/SUBSCRIBED/ UNSUBSCRIBED/AUTHORIZATION_FAILED/CONNECTION_FAILED) when present. Emitted only for X.509-authenticated clients (omitted when empty, like username). New additive proto field; no UI change.

Commit:8dcd156
Author:dlandiak

feat(integration): carry share name in CLIENT_UNSUBSCRIBED event CLIENT_UNSUBSCRIBED emitted only bare topic-filter strings, so a consumer could not tell a shared unsubscribe ($share/<group>/<filter>) from a regular one nor reconstruct the full filter. Emit the removed subscriptions structurally instead: - reuse the proto `subscriptions` field for CLIENT_UNSUBSCRIBED too (drop the bare `topicFilters` string list; renumber contiguously since the feature is unreleased) - the handler now matches unsubscribed filters against the client's current subscriptions by (shareName, bare filter) so $share/g1/foo resolves to that exact shared subscription, and passes the removed TopicSubscriptions to the publisher - the publisher writes only each removed subscription's identity (topic + shareName when shared) — an UNSUBSCRIBE names filters, not qos/options, so those are not put on the wire - the event body emits subscriptions[] with topicFilter and, when shared, shareName Tests: handler asserts the removed shared subscription carries its shareName; publisher asserts the proto carries topic + shareName; body asserts the JSON emits topicFilter + shareName (and omits shareName for a regular unsubscribe).

Commit:498464a
Author:dlandiak

feat(integration): add CLIENT_CONNECTION_FAILED lifecycle event Emit a dedicated lifecycle event when the broker refuses a connection (ClientSessionFailureReason: QUOTA_EXCEEDED / SERVER_UNAVAILABLE / UNSPECIFIED_ERROR) from ConnectServiceImpl.refuseConnection. Carries the failure reason (reuses the existing proto reason field). Rounds out the failure-event taxonomy alongside CLIENT_AUTHENTICATION_FAILED / CLIENT_AUTHORIZATION_FAILED; added to the UI lifecycle-events selector.

Commit:2f5b5ed
Author:dlandiak

refactor(integration): drop anonymous from CLIENT_AUTHENTICATION_FAILED event The flag just mirrored whether username was empty; with empty username now omitted from the event body, a consumer infers anonymous from the absent username key. Remove it from the proto, publisher, and JSON body. Proto fields renumbered contiguously (unreleased, no wire-compat concern).

Commit:c7b2583
Author:dlandiak

refactor(integration): drop clientInitiated from CLIENT_DISCONNECTED event The flag was derived solely from the disconnect reason (ON_DISCONNECT_MSG / ON_DISCONNECT_AND_WILL_MSG), so it is redundant with disconnectReason which is already in the event payload. Remove it from the proto, publisher, and JSON body. Proto fields renumbered contiguously since the feature is unreleased (no wire-compat concern).

Commit:921d5d1
Author:dlandiak

refactor(integration): emit auth lifecycle events on failure only Rename CLIENT_AUTHENTICATED/CLIENT_AUTHORIZED to CLIENT_AUTHENTICATION_FAILED/CLIENT_AUTHORIZATION_FAILED and stop emitting auth success events: a successful authentication is already implied by CLIENT_CONNECTED, and emitting success before the connection is accepted produced orphan events. Authentication now emits only on failure, symmetric with authorization (deny-only). Drop the now-redundant result proto field (always FAILURE/DENY) and renumber ClientLifecycleEventMsgProto contiguously (feature unreleased).

Commit:b06a347
Author:dlandiak

fix(integration): drop misleading authMethod from CLIENT_AUTHENTICATED event authMethod was populated from ctx.getAuthDetails() which holds the credential display name (not the auth provider type) and is empty on failures. Remove the field (proto field 17 left as a gap; unreleased) and drop all related builder calls, body serialization, and test assertions.

Commit:9f24044
Author:dlandiak

feat(integration): add auth/authz lifecycle event proto fields and enum values

Commit:12ea055
Author:dlandiak

refactor(integration): remove TbIeMsgProto oneof from integration.proto

Commit:b7c211e
Author:ababak

feat: add CLIENT_UNSUBSCRIBED integration lifecycle event Publish a lifecycle event when a client unsubscribes, mirroring the CLIENT_SUBSCRIBED flow: - new ClientLifecycleEventType.CLIENT_UNSUBSCRIBED enum value - ClientLifecycleEventMsgProto gains a repeated topicFilters field (unsubscribe carries plain topic filters, no QoS) - IntegrationLifecycleEventPublisher.publishUnsubscribed, fired from MqttUnsubscribeHandler after the UNSUBACK is flushed - AbstractIntegration emits a "topicFilters" array for the unsubscribe body - UI: add the event type to the model enum, lifecycle multi-select and i18n

Commit:7b98449
Author:ababak
Committer:ababak

feat: add lifecycle event protos for integration fan-out and internode notification

Commit:9d86c66
Author:dlandiak

added clientCertCn to the integration json

The documentation is generated from this commit.

Commit:b87ede6
Author:dlandiak

http service auth provider init, auth dummy logic added

Commit:e0dba3c
Author:dlandiak

license headers format for 2026

Commit:fbb490d
Author:dlandiak

introduce forceful session cleanup to fix and remove ghost sessions, improved cleanup service to mark persistent sessions disconnected when prev request failed

Commit:bafa037
Author:dlandiak

introduce session connect with onConflict flag, connection response with reason, moved check session limit to the correct place

Commit:dfe4576
Author:dlandiak

session auth info and mqtt client version persistence moved to session cluster manager to fix wrong put and evict

Commit:d2f6f25
Author:dlandiak

add disconnect reason type into session event request

Commit:48a6491
Author:dshvaika

Removed useListenerBasedProviderOnly

Commit:aa02bed
Author:dlandiak

Revert "migrated configuration from string to bytes" This reverts commit 939806f143eb307e000fe65a2540e7d36f7dddda.

Commit:939806f
Author:dshvaika
Committer:dshvaika

migrated configuration from string to bytes

Commit:5b8556f
Author:dshvaika

Merge branch 'main' into mqtt-authenticators

Commit:30575fc
Author:dshvaika

Improvements after self review

Commit:e90332d
Author:dshvaika

Added SCRAM auth provider

Commit:8cb7b0a
Author:dshvaika

changed useJwtFirst to the priority list

Commit:3cf1e9e
Author:dlandiak

blocked client added main logic

Commit:8a84a02
Author:dlandiak

blocked client init implementation

Commit:7bdf3cc
Author:dshvaika

Added ability to handle MqttAuthSettings updates && rollback initial implementation on application side

Commit:f30a973
Author:dshvaika

Moved processing of client session stats cleanup to internode kafka topic

Commit:ded9cce
Author:dshvaika
Committer:dshvaika

renamed MqttClientAuthProvider to MqttAuthProvider

Commit:6fbd172
Author:dshvaika
Committer:dshvaika

Added internode kafka consumer/producer

Commit:1023abc
Author:dlandiak

added TbmqSystemInfoServiceTest

Commit:d078fe9
Author:dlandiak

init implementation of service system info usage

Commit:abd5a93
Author:dlandiak

feature integration executor with http integration and events

Commit:9471320
Author:dlandiak

subscriptions loading and persistence to Kafka refactoring with introducing the source of subscription

Commit:dd57635
Author:dlandiak

make queue.proto with java_multiple_files=true

Commit:e0fc457
Author:dlandiak

license headers update

Commit:919ffe6
Author:dlandiak

subscription identifier main logic implemented

Commit:ce24f36
Author:dlandiak

Merge branch 'develop/1.2.2' into feature/subscription-identifier

Commit:7ccea16
Author:dlandiak

disconnect client command improved to pass correct reason code - on session conflict or admin session

Commit:e578321
Author:dlandiak

mqtt 5 feature: subscription id init, fixed trying delete old CG that has consumers (when state not empty)

Commit:77600f5
Author:dlandiak

Update license header to 2024 year

Commit:904fe9f
Author:dlandiak

Revert "Update license header to 2024 year" This reverts commit 6ce8213da98c5b17d3017b89b70db07b72b523b4.

Commit:6ce8213
Author:dlandiak

Update license header to 2024 year

Commit:99600d1
Author:dlandiak

request-response mqtt 5 feature implementation

Commit:d11108f
Author:dlandiak

MQTT 5: payload format and content types feature init implementation

Commit:e77b587
Author:dlandiak

removed todos

Commit:5cb1d18
Author:Andrii Landiak

Implement historical data stats saving: add new kafka topic

Commit:c0da822
Author:dlandiak

removed sessionInfoProto from publish msg proto

Commit:bf179d0
Author:dlandiak

changed client ip to byte array for client session

Commit:5f22860
Author:dlandiak

client session - expiry interval to int

Commit:4985330
Author:dlandiak

removed lastUpdateTime from client session info

Commit:34287e1
Author:dlandiak

added createdTime for retained message

Commit:b33e565
Author:dlandiak

added client ip address to client session

Commit:69002e7
Author:dlandiak

license headers update to 2023

Commit:c5dfc0c
Author:dlandiak

Merge branch 'main' into feature/session-expiry

Commit:c69c5f9
Author:dlandiak

Merge branch 'main' into feature/subscription-options

Commit:41d7abc
Author:dlandiak

Merge branch 'main' into feature/server-keep-alive

Commit:2519213
Author:dlandiak

Merge branch 'main' into feature/will-delay

Commit:3a517b2
Author:Dima Landiak

session expiry implementation, not finished

Commit:7bc5e04
Author:dlandiak

session expiry in disconnect

Commit:f3499e0
Author:Dima Landiak

session expiry init

Commit:051f8a4
Author:dlandiak

Merge branch 'main' into feature/user-properties

Commit:242dce4
Author:dlandiak

retainAsPublish subscribe option

Commit:03f0af4
Author:Dima Landiak

no local subscribe option

Commit:13de79d
Author:Dima Landiak

send last will with delay from mqtt properties

Commit:9a75522
Author:Dima Landiak

user properties implementation

Commit:1586fad
Author:Dima Landiak

shared subs improvements

Commit:56903a2
Author:Dima Landiak

renamed groupId to shareName for shared subscriptions, added validation

Commit:795d0df
Author:dlandiak

shared subscriptions impl

Commit:12cabd4
Author:dlandiak

send retained msgs when client is subscribing

Commit:351c917
Author:Dima Landiak

retained msg kafka queue init

Commit:59f3e01
Author:Dima Landiak

Update license year to 2022

Commit:5efa753
Author:vzikratyi
Committer:vzikratyi

Added clearing of ApplicationTopic

Commit:34f76a1
Author:vzikratyi

added endpoint to get DetailedClientSessionInfo

Commit:51772cf
Author:vzikratyi

Renamed PersistedDevicePublishMsg to DevicePublishMsg

Commit:03011ce
Author:vzikratyi

Used 'topic' as kafka key

Commit:7811a19
Author:vzikratyi

Check if prev session was persistent in SessionClusterManager

Commit:1d87a83
Author:vzikratyi

Removed ClusterEvent logic

Commit:85a2c38
Author:vzikratyi

Added Cluster events

Commit:046b37e
Author:vzikratyi

Updated TODOs

Commit:05e4ba8
Author:vzikratyi

Implemented distribution of PUBLISH messages between Nodes

Commit:2261e71
Author:vzikratyi

Removed DevicePublishMsgProto

Commit:0d5971c
Author:vzikratyi

Made separate event_response/disconnect_command topic for each Node in cluster

Commit:9844d59
Author:vzikratyi

Added 'serviceId' to SessionInfo

Commit:7a41f5c
Author:vzikratyi

Added zookeeper discovery service

Commit:d7cbe48
Author:vzikratyi

Added 'lastUpdatedTime' to ClientSession

Commit:9531840
Author:vzikratyi

Added callback and retries to 'publish-msg' consumer, refactored

Commit:8343b93
Author:vzikratyi

Added DEVICE messages persistence (not finished)

Commit:d04265f
Author:vzikratyi

Added one service to process client CONNECTs and DISCONNECTs

Commit:d1e57ab
Author:vzikratyi

Remade APPLICATION msg persistence (all messages are pushed to client by consumer)

Commit:e468436
Author:vzikratyi

Added persistence session for APPLICATION clients (not tested)

Commit:65068c7
Author:vzikratyi

Added LastWillService, refactored code

Commit:548dc33
Author:vzikratyi

Fixed package name, refactored

Commit:39e3624
Author:viktor
Committer:Andrew Shvayka

Message queue logic, MQTT msgs handling

Commit:de8b76d
Author:viktor
Committer:Andrew Shvayka

Added services for MQTT server bootstrap

Commit:a8ea511
Author:viktor
Committer:Andrew Shvayka

Basic infrastructure (not tested)