@@ -36,6 +36,47 @@ message's accounted size, regardless of whether the restore counted against the
3636This field is informational and is not used to compute license usage, so your license consumption is
3737unaffected by the change.
3838
39+ ### Changed parsing for Okta Log Events ` securityContext.userBehaviors ` field
40+
41+ Due to a [ bug in the Okta SDK] ( https://github.com/okta/okta-sdk-java/issues/1689 ) , a workaround was introduced in 7.1
42+ to stringify the objects in the ` securityContext.userBehaviors ` array in logs pulled in from the ` Okta Log Events ` input. The
43+ updated SDK now properly serializes that field as an array of objects and the workaround has been removed. Custom parsing
44+ on ` Okta Log Events ` messages that is expecting the ` securityContext.userBehaviors ` field to be an array of
45+ strings will need to be modified to expect an array of objects, per the Okta API. An example of the serialization across
46+ versions:
47+
48+ 7.1:
49+ ``` json
50+ {
51+ "securityContext" : {
52+ "userBehaviors" : [
53+ " {\" name\" :\" New City\" ,\" id\" :\" bbbbbbbbbbbbbbbbbbbb\" ,\" result\" :\" NEGATIVE\" }" ,
54+ " {\" name\" :\" New Country\" ,\" id\" :\" aaaaaaaaaaaaaaaaaaaa\" ,\" result\" :\" NEGATIVE\" }"
55+ ]
56+ }
57+ }
58+ ```
59+
60+ 7.2:
61+ ``` json
62+ {
63+ "securityContext" : {
64+ "userBehaviors" : [
65+ {
66+ "name" : " New City" ,
67+ "id" : " bbbbbbbbbbbbbbbbbbbb" ,
68+ "result" : " NEGATIVE"
69+ },
70+ {
71+ "name" : " New Country" ,
72+ "id" : " aaaaaaaaaaaaaaaaaaaa" ,
73+ "result" : " NEGATIVE"
74+ }
75+ ]
76+ }
77+ }
78+ ```
79+
3980## Web Interface Changes
4081
4182### Event Definition "Fields" step renamed to "Additional Details"
@@ -54,6 +95,19 @@ old value may be removed in a future version.
5495| ---------------------------------------------------------------------------| -------------|
5596| ` org.graylog2.contentpacks.facades.EntityWithExcerptFacade#resolveGrants ` | removed |
5697
98+ ## Plugin Builds: New ` requireUpperBoundDeps ` Maven Enforcer Rule
99+
100+ Plugin builds inheriting from the ` graylog-plugin-parent ` or ` graylog-plugin-web-parent ` Maven parent
101+ POM now run the
102+ [ ` requireUpperBoundDeps ` ] ( https://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html )
103+ enforcer rule. It fails the build when a transitive dependency resolves to a * lower* version than
104+ another of the plugin's dependencies requires.
105+
106+ Such conflicts can usually be fixed by updating the outdated dependency, or by adding a
107+ ` <dependencyManagement> ` entry for the flagged artifact using the highest required version shown in
108+ the error message. Plugin authors who are unable to align their dependencies can override the
109+ ` enforce-versions ` execution of the ` maven-enforcer-plugin ` in their own POM.
110+
57111## Sigma Rules Folded into Event Definitions
58112
59113Prior to 7.2, Sigma rules were first order entities that could be managed directly. Each rule was also
@@ -73,6 +127,24 @@ definition can be created after the rules are imported to create the same tempor
73127All previously imported Sigma rules, including correlation rules, will be migrated to the new Event Definition pattern
74128on upgrade and work as they did before.
75129
130+ Two additional changes to fired events result from this rework:
131+
132+ - The ` sigma_rule_tag_* ` fields are no longer added to fired events. Previously, fired events included
133+ ` sigma_rule_tag_1 ` , ` sigma_rule_tag_2 ` , etc. in their Additional Fields. MITRE information recognized by Graylog is
134+ now stored on the Event Definition as ` tactics_techniques ` , and any other tag values are moved to a dedicated ` tags `
135+ field. Both ` tactics_techniques ` and ` tags ` are multi-valued (array) fields, unlike the individual
136+ ` sigma_rule_tag_N ` fields they replace. If you rely on the ` sigma_rule_tag_* ` fields in summary templates,
137+ notification bodies, or downstream processing, you will need to update those references.
138+ - The ` Sigma: ` prefix is no longer added to fired event titles. Events already stored in the index keep their
139+ original title, but newly fired events will not include the prefix.
140+
141+ For previously imported Sigma rules, the upgrade migration applies these changes to the Event Definitions
142+ automatically: each source Sigma rule's tag values are written onto its Event Definition (MITRE references into
143+ ` tactics_techniques ` , all other tags into ` tags ` ), and the ` Sigma: ` prefix is removed from the Event Definition
144+ title. You do not need to re-import or reconfigure your rules. Note that events already stored in the index are not
145+ rewritten — they keep the original ` sigma_rule_tag_* ` Additional Fields and titles they were fired with; the changes
146+ above apply to events fired after the upgrade.
147+
76148The following REST API changes are a direct result of this rework:
77149
78150| Endpoint | Description |
@@ -90,3 +162,50 @@ Definitions rather than from the previous Sigma rules. Every Event Definition wi
90162assigned is now included, and coverage reflects how many of them are enabled versus disabled (with no log
91163source check that was previously present for Sigma rules). Therefore, a tactic may show a higher or lower
92164percentage than it did in 7.1, without any change to the actual installed Event Definitions.
165+
166+ ## AWS Kinesis/CloudWatch Input: Single DynamoDB Table State Tracking
167+
168+ In Graylog 7.2, the AWS Kinesis/CloudWatch input has been upgraded to Kinesis Client Library (KCL) 3.5.
169+ The KCL stores its coordination state in DynamoDB. Previously, this used three tables per input: the lease table, plus separate
170+ ` <application-name>-CoordinatorState ` and ` <application-name>-WorkerMetricStats ` tables. The AWS KCL 3.5 introduced a
171+ single-table format that consolidates all of this into the lease table alone (each item is tagged with an
172+ ` entityType ` attribute). This reduces the number of DynamoDB tables and helps you stay under account-level table
173+ limits.
174+
175+ There are two things to know about how this applies to your inputs:
176+
177+ - ** New inputs use the single-table format automatically.** This is the AWS KCL 3.5 default for a newly created
178+ consumer. A fresh input always uses a single lease table.
179+ - ** Existing inputs keep their three-table layout** until you deliberately migrate them using the new
180+ "Migrate to single DynamoDB table for state tracking" input option.
181+
182+ To let you migrate existing inputs on your own schedule, the input's ** edit page** exposes a
183+ ** Migrate to single DynamoDB table for state tracking** option. This option is only relevant for inputs created before Graylog 7.2.
184+ Enabling it on such an input starts a one-way migration
185+ that consolidates the ` -CoordinatorState ` and ` -WorkerMetricStats ` entities into the input's lease table. Stream
186+ checkpoints are preserved, so ingestion should continue without replay or gaps.
187+
188+ ### Migration steps for a Kinesis input that existed before Graylog 7.2
189+
190+ 1 . Upgrade to Graylog 7.2 and allow the input to start and run for one hour with the ** Migrate to single DynamoDB
191+ table for state tracking** option off. KCL 3.5 requires the input to run steadily for a whole hour before it will
192+ accept the migration. This readiness period is fixed by KCL 3.5 and cannot be shortened.
193+ 2 . Before enabling the option, confirm the input is ready. In DynamoDB, open the input's coordinator-state table
194+ (` graylog-aws-plugin-<stream-name>-CoordinatorState ` ), find the ` TableMigration3.5 ` item, and check its ` tm `
195+ attribute. It must read ` TABLE_MIGRATION_STATUS_DEPLOYED ` . If it still reads ` TABLE_MIGRATION_STATUS_INIT ` , the
196+ readiness period has not elapsed yet; wait and re-check. Enabling the option before this point causes the input
197+ to fail to start.
198+ 3 . Enable the ** Migrate to single DynamoDB table for state tracking** option on the input's edit page and save. The
199+ migration begins.
200+ 4 . Verify completion. KCL 3.5 bakes for 24 hours (the default) before finalizing. After that period, check the same
201+ ` TableMigration3.5 ` item again; its ` tm ` attribute should read ` TABLE_MIGRATION_STATUS_COMPLETE ` . Once complete,
202+ the legacy ` -CoordinatorState ` and ` -WorkerMetricStats ` tables are no longer used and can be deleted.
203+
204+ The migration is ** one-way and cannot be reverted once complete.** It is also not instantaneous, and AWS recommends
205+ monitoring the migration until it reaches completion.
206+
207+ For how to monitor the migration, along with the migration steps, required permissions, and how to remove the
208+ now-unused legacy tables afterward, see AWS's documentation:
209+
210+ - [ Single table format for KCL] ( https://docs.aws.amazon.com/streams/latest/dev/kcl-single-table-format.html )
211+ - [ Migrate from KCL 2.x to KCL 3.x] ( https://docs.aws.amazon.com/streams/latest/dev/kcl-migration-from-2-3.html )
0 commit comments