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)