Skip to content

Commit b449f6a

Browse files
Merge pull request #149 from AxonIQ/release/5.1.0-SNAPSHOT
Version 5.1.0-SNAPSHOT
2 parents f262b72 + ef8f076 commit b449f6a

5 files changed

Lines changed: 91 additions & 31 deletions

File tree

README.md

Lines changed: 87 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Axoniq Platform Framework client
22

3-
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.axoniq.console/console-framework-client/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.axoniq.console/console-framework-client)
3+
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.axoniq.platform/axoniq-platform-framework-client/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.axoniq.platform/axoniq-platform-framework-client)
44

55
Axoniq Platform superpowers your Axon Framework application with advanced monitoring and enabling easy access to actions
66
within the framework.
@@ -16,40 +16,100 @@ For actual configuration, please consult the setup instructions that will be pro
1616

1717
### application properties
1818

19-
* `axoniq.console.credentials` - this need to be set, otherwise the auto configuration won't do anything. The correct
20-
value can be retrieved via the AxonIQ console UI.
19+
All properties use the `axoniq.platform` prefix.
20+
21+
* `axoniq.platform.credentials` - this needs to be set, otherwise the auto configuration won't do anything. The correct
22+
value can be retrieved via the AxonIQ Console UI.
23+
* `axoniq.platform.application-name` - the display name of the application in the UI. Defaults to the Spring Boot
24+
application name.
25+
* `axoniq.platform.host` / `axoniq.platform.port` - the host and port to connect to. Defaults to
26+
`framework.console.axoniq.io:7000`.
27+
* `axoniq.platform.secure` - whether the connection uses SSL/TLS. Defaults to `true`.
28+
* `axoniq.platform.dlq-mode` - controls how much Dead Letter Queue data is exposed to the Console.
29+
One of `NONE` (default), `MASKED`, `LIMITED`, `FULL`. See the [Data sent to AxonIQ](#data-sent-to-axoniq) section.
30+
* `axoniq.platform.dlq-diagnostics-whitelist` - when `dlq-mode=LIMITED`, the list of diagnostic keys that are included.
31+
* `axoniq.platform.domain-event-access-mode` - controls how much domain event data is exposed to the Console.
32+
One of `NONE` (default), `PREVIEW_PAYLOAD_ONLY`, `LOAD_DOMAIN_STATE_ONLY`, `FULL`.
33+
* `axoniq.platform.max-concurrent-management-tasks` - bounds the number of user-initiated operations (e.g. DLQ
34+
processing) that run concurrently. Defaults to `5`.
35+
* `axoniq.platform.initial-delay` - initial delay in milliseconds before the client tries to connect. Defaults to `0`.
2136

2237
## Data sent to AxonIQ
2338

24-
Axoniq Platform is an [AxonIQ](https://axoniq.io) SaaS product. Your application will periodically, or upon request, send
25-
information to the servers of AxonIQ. Please check our [Privacy Policy](https://www.axoniq.io/privacy-policy) and [Data Processing Addendum](https://lp.axoniq.io/axoniq-data-processing-addendum) for the
26-
measures we implemented to protect your data.
39+
Axoniq Platform is an [Axoniq](https://axoniq.io) SaaS product. Your application will periodically, or upon request, send
40+
information to the servers of AxonIQ. Please check our [Privacy Policy](https://www.axoniq.io/legal/privacy-policy) and
41+
[Data Processing Addendum](https://lp.axoniq.io/axoniq-data-processing-addendum) for the measures we implemented to
42+
protect your data.
43+
44+
Reporting intervals are controlled by the server and can be paused remotely. The following categories of data are sent:
45+
46+
### Periodic telemetry
47+
48+
- **Event processor status** - name, token store identifier, processor mode, running and error state, segment count and
49+
capacity, plus per-segment details (segment id, mask, mergeable id, caught-up state, ingest/commit/processing latency,
50+
current and reset positions, error type and message).
51+
- **Handler statistics** - message names, handling component names, invocation counts, failure counts, latency
52+
distributions, and correlation between incoming messages and messages dispatched by their handlers. Message payloads
53+
and identifiers are **not** sent.
54+
- **Application metrics** - system and process CPU usage, system load average, live thread count, heap memory (used,
55+
committed, max), and command bus and query bus capacity and usage.
56+
- **Heartbeat** - keep-alive signal only, no payload.
57+
58+
### Once per connection (setup handshake)
59+
60+
When your application connects, it sends a one-time snapshot of its configuration:
61+
62+
- Command bus, query bus and event store types, whether they are connected to Axon Server, their interceptor class
63+
names, and the configured serializers.
64+
- Event processor configuration: processor type, message source type and parameters, batch sizes, thread counts,
65+
token store type, token claim intervals, error handlers, and interceptors.
66+
- Approximate event store size (the latest event store position).
67+
- Axon Framework version and the versions of all Axon Framework and AxonIQ modules present on the classpath.
68+
- Registered upcasters (class names only).
69+
- Supported client features (thread dump, direct logging, license entitlement, DLQ mode, domain event access mode).
70+
71+
### On user request (initiated from the Console UI)
72+
73+
These flows are triggered by a user in the Console and are either disabled by default or carry no message content:
74+
75+
- **Dead Letter information** - disabled by default. When enabled, can include the message name, cause type and
76+
message, enqueued and last-touched timestamps, diagnostics map, sequence identifier, processing group, and optionally
77+
the message payload. Controlled by `axoniq.platform.dlq-mode`:
78+
- `NONE` (default) - list actions return empty; only counts are visible.
79+
- `MASKED` - limited data, sensitive fields masked, sequence identifier hashed with SHA-256.
80+
- `LIMITED` - payload never sent; diagnostics filtered by `dlq-diagnostics-whitelist`; sequence identifier not hashed.
81+
- `FULL` - full DLQ data including payload.
82+
- **Domain events by entity** - disabled by default. When enabled, can return event metadata (sequence, timestamp,
83+
payload type), and optionally the payload and/or reconstructed aggregate state. Controlled by
84+
`axoniq.platform.domain-event-access-mode`:
85+
- `NONE` (default) - payload hidden, state loading disabled.
86+
- `PREVIEW_PAYLOAD_ONLY` - payload visible, state loading disabled.
87+
- `LOAD_DOMAIN_STATE_ONLY` - payload hidden, state loading enabled.
88+
- `FULL` - payload visible, state loading enabled.
89+
- **Thread dumps** - full stack traces of all live threads, with thread names and a timestamp.
90+
- **Event processor control** - start, stop, reset (head / tail / from timestamp), split, merge, release and claim
91+
segments. These are control actions; no application data is sent as part of the request.
92+
93+
### Received from AxonIQ
94+
95+
For completeness, the Console server also sends control messages to the client: updated reporting intervals, client
96+
status updates (e.g. provisioned / using credits / blocked), signals to pause or resume reporting, log directives, and
97+
license information. These do not cause additional application data to be collected.
2798

28-
The following data will be sent to the servers of AxonIQ:
99+
### Summary of privacy-sensitive toggles
29100

30-
- Event processor information
31-
- Name, latency, status, position
32-
- Occurs every 2 seconds
33-
- Handler statistics
34-
- Message names and names of handling components
35-
- Message payload, or ids, are not sent to AxonIQ servers
36-
- Statistics such as latency, throughput and error rates
37-
- Correlation between messages and different handlers
38-
- Occurs every 20 seconds
39-
- Dead Letter Information
40-
- Contains message name, error information and event payload
41-
- Occurs upon user request
42-
- Disabled by default
101+
Message payloads never leave your application unless you explicitly opt in:
43102

44-
If you are concerned about the message data being sent to AxonIQ, disabling the DLQ functionality will prevent that in all cases.
103+
| Feature | Property | Default | Opt-in values |
104+
| --- | --- | --- | --- |
105+
| DLQ inspection | `axoniq.platform.dlq-mode` | `NONE` | `MASKED`, `LIMITED`, `FULL` |
106+
| Domain event inspection | `axoniq.platform.domain-event-access-mode` | `NONE` | `PREVIEW_PAYLOAD_ONLY`, `LOAD_DOMAIN_STATE_ONLY`, `FULL` |
45107

46108
## How to Release
47109

48110
1. Run `mvn versions:set -DnewVersion=1.x.x` to update the version in the pom files
49111
2. Commit and push the change
50-
3. Close the milestone on GitHub
51-
4. Wait for the release to be created on Github and publish it
52-
5. A Github action will automatically release this to Maven Central
53-
6. Run `mvn versions:set -DnewVersion=1.x.x-SNAPSHOT`
54-
7. Commit and push the new development version
55-
8. Wait for the version to become available [here](https://repo1.maven.org/maven2/io/axoniq/console/console-framework-client-parent/). Can take minutes, can take hours.
112+
3. Wait for the release to be on Maven central and publish it
113+
4. Create a Release at the current commit
114+
5. Run `mvn versions:set -DnewVersion=1.x.x-SNAPSHOT`
115+
6. Commit and push the new development version

framework-client-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>io.axoniq.platform</groupId>
2323
<artifactId>framework-client-parent</artifactId>
24-
<version>5.1.0-RC1</version>
24+
<version>5.1.0-SNAPSHOT</version>
2525
</parent>
2626
<modelVersion>4.0.0</modelVersion>
2727

framework-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>io.axoniq.platform</groupId>
2323
<artifactId>framework-client-parent</artifactId>
24-
<version>5.1.0-RC1</version>
24+
<version>5.1.0-SNAPSHOT</version>
2525
</parent>
2626
<modelVersion>4.0.0</modelVersion>
2727

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<groupId>io.axoniq.platform</groupId>
2424
<artifactId>framework-client-parent</artifactId>
25-
<version>5.1.0-RC1</version>
25+
<version>5.1.0-SNAPSHOT</version>
2626

2727
<modules>
2828
<module>framework-client-api</module>

spring-boot-starter/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>io.axoniq.platform</groupId>
2323
<artifactId>framework-client-parent</artifactId>
24-
<version>5.1.0-RC1</version>
24+
<version>5.1.0-SNAPSHOT</version>
2525
</parent>
2626
<modelVersion>4.0.0</modelVersion>
2727

0 commit comments

Comments
 (0)