28551 Commits

Author SHA1 Message Date
Ismail Belkacim
ee84b4bd8c Add support for handling input failures received from forwarder (#25025)
* Add support for submitting pre-built input failures

* Add missing license header

* Add changelog

* Add forwarder input ID to input failures

* Update pr-25025.toml

---------

Co-authored-by: Maxwell <98284293+kodjo-anipah@users.noreply.github.com>
2026-03-12 15:01:35 +01:00
Laura Bergenthal-Grotlüschen
1c2aea8f84 Add formatDecimalBytes method and update bytes conversion utilities (#25297)
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
2026-03-12 11:41:42 +01:00
Dennis Oelkers
df530c9d65 Fail lock acquisition if service already holds one. (#24782)
* Fail lock acquisition if service already holds one.

* Add test coverage for IllegalStateException on duplicate lock acquisition (#24830)

* Initial plan

* Add tests for lock acquisition failure when already holding a lock

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Use @ExtendWith and extract mock setup to beforeEach

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Remove accidentally committed test output log

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Move locks to field initializers and mocks to test methods

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Remove test_output.log from .gitignore

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Use real single-threaded executor instead of mock

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>

* Pulling up check for pre-existing lock, using idiomatic optional handling, removing now unnecessary mocks.

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>
2026-03-12 11:40:17 +01:00
Linus Pahl
e9ec5d9829 Improve width of expanded sections in EntityDataTable. (#25290)
* Improove width of expanded sections by using with of scroll cotnainer instead of table width.

* Fixing issue with broken styling.

* Fixing filter spacing issue.
2026-03-12 11:01:42 +01:00
Tomas Dvorak
e6e1e64c20 Disable datanode provisioning it (#25303) 2026-03-12 10:29:37 +01:00
Dennis Oelkers
1a598f3dbd Fix flaky react-select crash in PaginatedSelect caused by debounce return value (#25301)
* Fix flaky react-select crash in PaginatedSelect caused by debounce return value

The handleSearch debounced callback was returning the Promise from
loadOptions(). Lodash debounce returns the result of the last invocation
on subsequent calls. When react-select's onInputChange handler received
this Promise, it checked `if (nextValue != null)` — which is truthy for
a Promise — and set its internal inputValue state to the Promise object.
On the next re-render, trimString(promise) crashed with
"str.replace is not a function".

This was a latent bug exposed by the user-event v13 → v14 migration.
In v13, userEvent.type() fired all keystrokes nearly synchronously, so
the 400ms debounce never fired between keystrokes and the wrapper always
returned undefined. In v14, keystrokes are dispatched individually with
proper async handling, giving the debounce timer a chance to fire between
keystrokes — making the crash flaky depending on execution speed.

The fix: don't return the Promise from the debounced callback, so
react-select never mistakes it for a new input value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix flaky react-select crash in PaginatedSelect caused by debounce return value

The handleSearch debounced callback was returning the Promise from
loadOptions(). Lodash debounce returns the result of the last invocation
on subsequent calls. When react-select's onInputChange handler received
this Promise, it checked `if (nextValue != null)` — which is truthy for
a Promise — and set its internal inputValue state to the Promise object.
On the next re-render, trimString(promise) crashed with
"str.replace is not a function".

This was a latent bug exposed by the user-event v13 → v14 migration.
In v13, userEvent.type() fired all keystrokes nearly synchronously, so
the 400ms debounce never fired between keystrokes and the wrapper always
returned undefined. In v14, keystrokes are dispatched individually with
proper async handling, giving the debounce timer a chance to fire between
keystrokes — making the crash flaky depending on execution speed.

The fix: don't return the Promise from the debounced callback, so
react-select never mistakes it for a new input value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:21:14 +01:00
Patrick Mann
1ed315c604 Fix Rule Builder definitions for regex extract and replace (#25220)
* fix Rule Builder description

* CL

* update description

---------

Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>
2026-03-12 09:50:19 +01:00
Linus Pahl
8ff9bedb87 Collection of improvements for slice by functionality in events table. (#25276)
* Provide complete slice for slices render

* Improve reusability of slizes query keys.

* Refetch slices when auto refetching security events.

* adding type to the slice class

* DIsplay paginated list for slices overview.

* Expand emtpy slics list when currently slice becomes empty.

* Ensure that we always display the selected slice in the slices list.

* Refetch slices list when selecting slice, to ensure slice count is correct and matches search results.

* Fixing TS error

* Only refetch slices on slice select when we actually fetch new events.

---------

Co-authored-by: Jan Heise <jan.heise@graylog.com>
2026-03-11 20:37:35 +01:00
Dennis Oelkers
90a797f8ff Bulk-fixing linter hints. (#25171)
* Fix no-restricted-imports: replace lodash with native alternatives and fix import paths

Replace lodash/get with optional chaining, lodash/defaultTo with nullish
coalescing (??), lodash/max with Math.max, and swap react-router-dom Link
imports to use the project's router wrapper. Add eslint-disable for files
that are the wrapper implementations themselves.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix jsx-a11y/control-has-associated-label: add aria-label to controls

Add descriptive aria-label attributes to buttons, table cells, and other
interactive controls that were missing accessible labels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix react/jsx-key: add missing key props to elements in iterators

Add stable key props to JSX elements inside .map() callbacks using
item IDs and unique property names as keys.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix no-param-reassign: avoid mutating function parameters

Replace reduce accumulator mutations with Object.fromEntries or spread
syntax. Use eslint-disable for browser API patterns (beforeunload).
Create new objects instead of mutating request/response parameters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix misc TypeScript/ESLint rules: require-imports, unsafe Function type, nested ternaries, triple-slash refs, unused props/vars

- Add eslint-disable for require() in .d.ts and jest.isolateModules
- Add eslint-disable for Function type in reflux .d.ts, remove redundant
  Function annotations in tests
- Refactor nested ternaries in SortUtils to if/else
- Convert triple-slash references to side-effect imports
- Fix unused prop type declarations in Timestamp and Section
- Rename catch variable e to _error in useIsLocalNode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix testing-library/no-node-access: replace DOM traversal with TL queries

Replace .querySelector(), .firstChild, and .getElementsByClassName() with
Testing Library queries (getByRole, getByText, findByTitle, within) in
test files. Add eslint-disable where DOM access is unavoidable (Leaflet
map containers, custom text matchers).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix no-restricted-properties and prefer-user-event in tests

Replace fireEvent.submit with userEvent.click on submit buttons and
fireEvent.change with userEvent.selectOptions in ContentPackEditParameter
tests. Add submit button to ContentPackEditParameter component to enable
the userEvent.click pattern. Use eslint-disable for fireEvent.change in
InputSetupWizard test where userEvent.type causes waitFor timeouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix jest/expect-expect and jest/no-done-callback in tests

Add eslint-disable for it.each tests where assertions are in callback
functions that ESLint cannot statically detect. Add explicit assertion
to PivotHandler type-check test. Convert GlobalThroughputStore tests
from done-callback pattern to async/await with Promises.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Link import path after router.tsx was removed in d4b1262

Update Button.tsx and MenuItem.tsx to import Link from
components/common/Link (the new dedicated wrapper) instead of the
deleted components/common/router.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Type reflux StoreDefinition generically and remove eslint-disable for Function type

Make StoreDefinition<T> generic so init is typed as () => void and
getInitialState as () => T. Make fields optional in 4 store state types
(ContentPacksStore, IndicesConfigurationStore, InputTypesStore,
CollectorsStore) whose getInitialState returns a subset of the full state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Revert ContentPackEditParameter component changes and fix ESLint hints in test only

Replace fireEvent.change with userEvent.selectOptions and extract a
submitForm helper with a single eslint-disable to avoid duplicating
the disable comment across all fireEvent.submit call sites. The
component has no submit button and jsdom doesn't support implicit
form submission, so fireEvent.submit remains necessary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use part string as React key instead of array index in RuleBlockDisplay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Running `prettier`.

* Address PR #25171 review feedback

- Revert aria-label additions on td/th elements; increase
  jsx-a11y/control-has-associated-label depth to 3 instead
- Use screen.findByRole in Autocomplete test instead of waitFor+getByRole
- Add default value for optional field prop in Timestamp component
- Rename test helpers to expectIsDeepEqual/expectIsNumericString to
  satisfy jest/expect-expect without eslint-disable
- Replace require() with jest.isolateModulesAsync + dynamic import()
  in DocsHelper tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove unused findValidationState from TabKeywordTimeRange test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix control-has-associated-label lint errors and SelectedGrantee test

Ignore td/th elements in control-has-associated-label rule (false
positives), add aria-label to backlog checkbox, and rename
checkCurrentState to expectCurrentState to remove eslint-disable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Replace type casts with proper types in UseCreateViewForEvent

Type function parameters for getSummaryAggregation and WidgetsGenerator
so reduce() accepts generic type parameters, removing all `as` casts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 14:25:11 +01:00
github-actions[bot]
2f5bcf252d Running lint --fix & prettier (#25285)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2026-03-11 10:54:55 +01:00
Patrick Mann
c62a1c4b11 Eliminate MongoDBEventProcessor (#25277)
* eliminate MongoDBEventProcessor

* revert unneeded rename
2026-03-11 10:46:22 +01:00
Ousmane SAMBA
cc21867b97 Add pluggable source for inputs dot badge status (#25201)
* add pluggagle source for input status badge and Page nav badge

* fix component name

* wire useInputDotBadge provider

---------

Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
2026-03-11 08:55:22 +01:00
dependabot[bot]
ed928829f9 Bump webpack in /graylog2-web-interface/packages/graylog-web-plugin (#25280)
Bumps [webpack](https://github.com/webpack/webpack) from 5.105.3 to 5.105.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.105.3...v5.105.4)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.105.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 08:05:41 +01:00
github-actions[bot]
f6d7b21392 Running lint --fix & prettier (#25278)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2026-03-11 08:03:46 +01:00
Ousmane SAMBA
aa24657a4f Add filters links to Inputs notifications (#25195)
* first draft of getting a related identifier

* add composite suggestion display

* add computed field registry logic

* fix linter

* add input failures column to Inputs list

* fix rebasing

* fix import

* add link to filter table on notifications

- fix input ation button size
- adjust copy

* extract constants

* fix linter

* update to use useMetrics hook and fix review

---------

Co-authored-by: Maxwell Anipah <maxwell.anipah@graylog.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
2026-03-10 14:56:05 +01:00
Dennis Oelkers
9dd1a00330 Upgrade @testing-library/user-event from v13 to v14 (#25248)
* Upgrade @testing-library/user-event from v13 to v14

Migrate all test files to the v14 API:
- Add `await` to all userEvent calls (v14 returns promises)
- Replace `paste(element, text)` with `paste(text)` or fireEvent
- Replace `{selectall}` in type() with clear() + type()
- Remove `{ ctrlKey: true }` from click(), use keyboard modifiers
- Remove redundant act() wrappers (v14 handles act internally)
- Add `userEvent.setup({ advanceTimers })` for fake timer tests
- Use fireEvent.change() for number/spinbutton controlled inputs
- Fix selectEvent.ts fake timer detection for Jest 30

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove unused fireEvent import in InputSetupWizard.StartInput.test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix lint errors from user-event v14 upgrade

- Fix import group ordering in AggregationWizard test files
- Move setupUser definition before first usage in SavedSearchForm.test
- Add eslint-disable for intentional fireEvent usage on controlled inputs
- Fix eslint issues in selectEvent helper and rename createUser to setup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
2026-03-10 13:49:16 +01:00
Ousmane SAMBA
7c966ebc6a Add input failures column to Inputs list (#25048)
* first draft of getting a related identifier

* add composite suggestion display

* add computed field registry logic

* fix linter

* add input failures column to Inputs list

* fix rebasing

* fix import

* update to use useMetrics hook and fix review

---------

Co-authored-by: Maxwell Anipah <maxwell.anipah@graylog.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
2026-03-10 13:48:03 +01:00
Patrick Mann
c4711312f7 Fix number format in Rule Builder (#25218)
* fix number format

* CL

---------

Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>
2026-03-10 11:57:02 +01:00
github-actions[bot]
149eaf6a9a Running lint --fix & prettier (#25268)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2026-03-10 10:53:45 +01:00
Dennis Oelkers
26721094f8 Migrate MetricsStore and GlobalThroughputStore from Reflux to React Query (#25247)
* Migrate MetricsStore and GlobalThroughputStore from Reflux to React Query

Replace the Reflux-based MetricsStore and GlobalThroughputStore with a
shared MetricsProvider context that batches all metric subscriptions into
a single react-query POST to /cluster/metrics/multiple. This eliminates
Reflux from the metrics subsystem entirely.

New infrastructure:
- src/types/metrics.ts: shared metric type definitions
- src/contexts/MetricsProvider.tsx: batching context with ref-counted
  subscriptions, 2s refetchInterval, fetchPeriodically
- src/hooks/useMetrics.ts: useMetrics, useNodeMetrics, useMetricsNames,
  useGlobalThroughput hooks

Migrated 22 consumer files from useStore(MetricsStore) + MetricsActions
add/remove pattern to the new hooks. Deleted MetricsStore,
GlobalThroughputStore, and GlobalThroughputStore.test.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix MetricsContext singleton for cross-bundle compatibility

The MetricsContext was created with plain createContext(), causing
enterprise plugin bundles to get a separate context instance. Use the
singleton pattern (matching NodesContext, StreamsContext, etc.) so the
same context instance is shared across all bundles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix remaining MetricsStore type import in InputThroughputUtils

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add MetricsProvider to test WrappingContainer

Tests rendering components that use useMetrics (e.g. Navigation with
GlobalThroughput) need MetricsProvider in the test wrapper, matching
how it's provided in the app via LoggedInPage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add useMetric and useNodeMetric convenience hooks for single metrics

Avoids the repetitive `useMemo(() => [name], [name])` wrapper pattern
when subscribing to a single metric name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use asMock helper in PipelineProcessingErrors test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix type errors in PipelineProcessingErrors test mock data

Add missing `full_name` and `name` properties to mock meter metrics
to satisfy the `BaseMetric<MeterMetric>` type requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
2026-03-10 10:45:46 +01:00
dependabot[bot]
1e9098be4f Bump software.amazon.kinesis:amazon-kinesis-client from 3.4.0 to 3.4.1 (#25273)
Bumps [software.amazon.kinesis:amazon-kinesis-client](https://github.com/awslabs/amazon-kinesis-client) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/awslabs/amazon-kinesis-client/releases)
- [Changelog](https://github.com/awslabs/amazon-kinesis-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/awslabs/amazon-kinesis-client/compare/v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: software.amazon.kinesis:amazon-kinesis-client
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:12:25 +01:00
dependabot[bot]
5d2c4311ef Bump at.yawk.lz4:lz4-java from 1.10.3 to 1.10.4 (#25272)
Bumps [at.yawk.lz4:lz4-java](https://github.com/yawkat/lz4-java) from 1.10.3 to 1.10.4.
- [Release notes](https://github.com/yawkat/lz4-java/releases)
- [Changelog](https://github.com/yawkat/lz4-java/blob/main/CHANGES.md)
- [Commits](https://github.com/yawkat/lz4-java/compare/v1.10.3...v1.10.4)

---
updated-dependencies:
- dependency-name: at.yawk.lz4:lz4-java
  dependency-version: 1.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:12:07 +01:00
dependabot[bot]
846e0685f4 Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.1 to 3.6.2 (#25271)
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.6.1 to 3.6.2.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.6.1...maven-shade-plugin-3.6.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-shade-plugin
  dependency-version: 3.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:11:38 +01:00
dependabot[bot]
95820afbd8 Bump org.apache.maven.plugins:maven-resources-plugin from 3.4.0 to 3.5.0 (#25270)
Bumps [org.apache.maven.plugins:maven-resources-plugin](https://github.com/apache/maven-resources-plugin) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/apache/maven-resources-plugin/releases)
- [Commits](https://github.com/apache/maven-resources-plugin/compare/v3.4.0...maven-resources-plugin-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-resources-plugin
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 09:11:13 +01:00
dependabot[bot]
e2493a8cf5 Bump eslint-plugin-compat (#25269)
Bumps [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/amilajack/eslint-plugin-compat/releases)
- [Changelog](https://github.com/amilajack/eslint-plugin-compat/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amilajack/eslint-plugin-compat/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-compat
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 08:11:16 +01:00
Ryan Carroll
ee002464de Add Info event priority (#25240)
* Add informational event priority

* add default `no info` filter

* fix multi filter issue

* use info verbiage

* cleanup

* add cl entry

* add tests

* linter issue

* clanup

* update EventDetailsForm priority telemetry handling
2026-03-09 14:23:50 -05:00
Patrick Mann
f7b6f1eb66 License usage tracking (#24943)
* checkpoint

* checkpoint

* fix event creation

* remove redundant code

* cleanup

* review suggestions

* Change URN to reduce ambiguity

* revert 10-minute traffic counting

* Support new event definition type in event definition form

* Make group_by optional

* block creation of generic mongoDB event definitions

* add unit test

* Batch Index Stats Requests to Avoid URL Length Overflow (#25031)

* Batch Index Stats Requests to Avoid URL Length Overflow

* CL

* refactoring

* don't leak internal constant

* adjust unit tests

---------

Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>

* Bump io.swagger.core.v3:swagger-jaxrs2-jakarta from 2.2.42 to 2.2.43 (#25114)

Bumps io.swagger.core.v3:swagger-jaxrs2-jakarta from 2.2.42 to 2.2.43.

---
updated-dependencies:
- dependency-name: io.swagger.core.v3:swagger-jaxrs2-jakarta
  dependency-version: 2.2.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Feature: add numeric range aggregation support to Scripting API (#25103)

* feat: add numeric range aggregation support to Scripting API

Add support for numeric range aggregations in the Scripting API,
allowing users to group search results into custom numeric buckets
(e.g., response times 0-100ms, 100-500ms, 500ms+).

New classes:
- NumberRange: value class holding optional from/to Double bounds
- RangeBucket: BucketSpec implementation for numeric range buckets
- ESRangeHandler, OSRangeHandler (OS2/OS3): storage backend handlers

Modified:
- Grouping: new "ranges" field, mutually exclusive with limit/timeunit/scaling
- GroupingToBucketSpecMapper: produces RangeBucket when ranges are present
- AggregationSpecToPivotMapper: respects ranges in auto-interval logic
- All three ViewsBackendModule classes: register RangeBucket handlers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add integration tests for range aggregation in ScriptingApiResourceIT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* adding changelog

* using more idiomatic code regarding the Optionals

* improving conditional

* records instead of Autovalue

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Migrate IndexerHostsAdapter to OS java client (#25022)

* switch to java client using typed interface

* use raw json

* add test resources

* Fix documentation link for MCP Server configuration (#25107)

* Add AWS STS proxy support for assume-role credentials in utils  (#25072)

* Add proxy support in AWS client utils

* Fix CloudTrail input to use proxy settings for STS as well

* Add change log

* Naming nit

* Expand tests, cleanup

* Fix missing Assume Role field on setup wizard flow

* Add Assume Role field on review page.

* Bump eslint-plugin-compat (#25125)

Bumps [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/amilajack/eslint-plugin-compat/releases)
- [Changelog](https://github.com/amilajack/eslint-plugin-compat/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amilajack/eslint-plugin-compat/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-compat
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump basic-ftp from 5.0.3 to 5.2.0 in /graylog2-web-interface (#25122)

Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.0.3 to 5.2.0.
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.0.3...v5.2.0)

---
updated-dependencies:
- dependency-name: basic-ftp
  dependency-version: 5.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Change default time range for Events and Alerts to 30 days (#24950)

* Change default time range for Events and Alerts to 34 days

The default time range has been reduced from 180 days to 34 days to align
with typical index rotation cycles (up to 33 days). This ensures queries
stay within indexed data while providing complete coverage.

Additionally, the Events table now uses the same default time range as the
histogram. Previously, the table would search back to 1970 when no timestamp
filter was specified in the URL.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add changelog

* Fix issue number

* Change from 34 to 30 days.

* Add tests for fetchEvents

* Remove unneeded mocking of qualifyURL

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* Migrating some remaining JS to TS. (#25118)

* Migrating some remaining JS to TS.

* Fixing up ts & linter.

* Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.4 to 3.5.5 (#25128)

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.4 to 3.5.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.4...surefire-3.5.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.4 to 3.5.5 (#25127)

Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.5.4 to 3.5.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.4...surefire-3.5.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-failsafe-plugin
  dependency-version: 3.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.openrewrite:rewrite-java in the openrewrite group (#25124)

Bumps the openrewrite group with 1 update: [org.openrewrite:rewrite-java](https://github.com/openrewrite/rewrite).


Updates `org.openrewrite:rewrite-java` from 8.73.1 to 8.73.2
- [Release notes](https://github.com/openrewrite/rewrite/releases)
- [Commits](https://github.com/openrewrite/rewrite/compare/v8.73.1...v8.73.2)

---
updated-dependencies:
- dependency-name: org.openrewrite:rewrite-java
  dependency-version: 8.73.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: openrewrite
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Syslog disable autorelease (#25120)

* Keeping track of retained buffers, always releasing them after processing

* Removed logging, added cl

* Removed system.out.println from test

* Try to keep track of as few ByteBufs as possible by removing the reference to already freed ones while reading from an open channel.

* alternate approach to buffer release

* unit tests for edge cases

* CL

---------

Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>

* Fix input state action button going to set-up mode after stopping input. (#25058)

* Fix inpit state action button going to set-up mode after stopping input.

* update test

---------

Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>

* Bump react-window from 2.2.6 to 2.2.7 in /graylog2-web-interface (#25137)

Bumps [react-window](https://github.com/bvaughn/react-window) from 2.2.6 to 2.2.7.
- [Release notes](https://github.com/bvaughn/react-window/releases)
- [Changelog](https://github.com/bvaughn/react-window/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bvaughn/react-window/compare/2.2.6...2.2.7)

---
updated-dependencies:
- dependency-name: react-window
  dependency-version: 2.2.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Address Entity-table limitations  (#24427)

* first draft of getting a related identifier

* add composite suggestion display

* add computed field registry logic

* fix test

* add Inputs page navigation (#24970)

* update dependency array

* fix title rendering

* enhance status provider to handle not running inputs

* fix linter

* dont swallow exceptions during filter parsing

* fix unit test

* Update graylog2-server/src/main/java/org/graylog2/database/suggestions/EntitySuggestion.java

Co-authored-by: Ismail Belkacim <xd4rker@users.noreply.github.com>

* fix composite filter search

---------

Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
Co-authored-by: Ousmane Samba <ousmane.samba@graylog.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
Co-authored-by: Ismail Belkacim <xd4rker@users.noreply.github.com>

* Adding slicing capability for the open source Events/Alerts table (#24958)

* adding slicing capability for the open source Events/Alerts table

* adding slicing capability

* fix mapping

* Do not provide sort info from slicing section to backend.

* Cleanup parameters provided to backend when fetching slices.

* Move slices renderers outside of component.

* Make usage of `parseFilters` easier to read.

* Cleanup

* Consider slices when fetching data for entity table.

* Show empty slices for event priority and type column.

* Update tests

* result cleanup, add mapping function

* remove obsolete class

* Fixing error when fetching security events.

* Enable slice by action for columns in paginated entity table only when a slices fetch function has been provided.

* fix default parameters

* Cleanup naming

* Use background color to highlight active slice, since font weight does not always apply to custom slices renderer.

* Disable filters which are conflicting with active slice.

* Update `EntityDataTable` test.

* adding tests

* Add full-backend integration tests for events slices endpoint

Adds EventsResourceSlicesIT with ES fixtures covering all slice columns
(priority, alert, event_definition_id, event_definition_type, key) and
filter combinations for the POST /events/slices endpoint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fixing test, adding waiting method for index

* adding changelog

* Disable linter hint

* adding convenience method for MongoDB sanity checks after fixture imports

* reverting include_all to false as this is the use case we're going for now

* Use stati width for slices section.

* Do not use text overflow ellipses for count badge.

* Improve naming

* Add close button for slice section.

* Add max-height for slices list

* Make sure to not remove filter when slicing by column.

* Cleanup query param handling

* Enable batching for updating query params, to fix edge cases.

* Display slices badges in readable format.

* Fix type casting

* improved changelog

* Fixing tests by adding `DefaultQueryParamProvider` where require. In a follow-up PR we will render `DefaultQueryParamProvider` for tests by default.

* Fixing linter hint

* Format code

* Simplify slicing test

---------

Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Bump fast-xml-parser from 5.3.6 to 5.3.8 in /graylog2-web-interface (#25139)

Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.3.6 to 5.3.8.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.6...v5.3.8)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Migrate MessagesAdapterOS to OS java client (#25105)

* migrate MessagesAdapterOS

* fix exception parsing

* rename tests

* add correct durability parsing

* adjust exception message

* make error message backwards compatible

* Showing neutral trend when delta is zero. (#25138)

* Showing neutral trend when delta is zero.

* Adding changelog snippet.

* Unnecessary data attribute.

* Render `DefaultQueryParamProvider` by default in component unit tests. (#25145)

* Render DefaultQueryParamProvider by default in wrappedTestingLibrary and remove redundant test wrappers.

* Fix `WidgetFocusProvider.test`.

* Fixing linter hints

* Fixing test

* Running lint --fix & prettier (#25152)

Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>

* Bump less from 4.4.1 to 4.5.1 in /graylog2-web-interface (#25166)

Bumps [less](https://github.com/less/less.js) from 4.4.1 to 4.5.1.
- [Release notes](https://github.com/less/less.js/releases)
- [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/less/less.js/compare/v4.4.1...v4.5.1)

---
updated-dependencies:
- dependency-name: less
  dependency-version: 4.5.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use OS java client in data node (#25134)

* start migration

* fix cluster/node metrics and test

* fix OpensearchProcessImplTest

* avoid problems with null values

* fix node query

* await async response

* fix type

* code cleanup, removal of plain json api

---------

Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>

* Migrate QuerySuggestions adapter to OS java client (#25098)

* migrate QuerySuggestionsOS

* remove already resolved todo

* code cleanup

* fix field type handling

* Move common `Link` and `LinkContainer` into dedicated files. (#25146)

* Move common `Link` and `LinkContainer` into dedicated files.

* Updating test

* Migrate `LinkToNode` tofunctional component.

* Improve warning/error boxes on system input page (#25088)

* first draft of getting a related identifier

* add composite suggestion display

* add computed field registry logic

* fix test

* add Inputs page navigation (#24970)

* update dependency array

* fix title rendering

* enhance status provider to handle not running inputs

* fix linter

* dont swallow exceptions during filter parsing

* fix unit test

* refactor Inputs page notification

* Update graylog2-server/src/main/java/org/graylog2/database/suggestions/EntitySuggestion.java

Co-authored-by: Ismail Belkacim <xd4rker@users.noreply.github.com>

* fix composite filter search

* refetch input states periodically

* remve useMemo

---------

Co-authored-by: Maxwell Anipah <maxwell.anipah@graylog.com>
Co-authored-by: Maxwell <98284293+kodjo-anipah@users.noreply.github.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
Co-authored-by: Ismail Belkacim <xd4rker@users.noreply.github.com>

* review feedback

* fix linter warning

* revert linter fix

* remove unneeded jodatime usage

* review feedback

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Laura Bergenthal-Grotlüschen <197286649+laura-b-g@users.noreply.github.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jan Heise <jan.heise@graylog.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
Co-authored-by: Ramón Márquez <ramon.marquez@graylog.com>
Co-authored-by: Dan Torrey <dan.torrey@graylog.com>
Co-authored-by: Konrad Merz <konrad@graylog.com>
Co-authored-by: Dennis Oelkers <dennis@graylog.com>
Co-authored-by: Maxwell <98284293+kodjo-anipah@users.noreply.github.com>
Co-authored-by: Ousmane Samba <ousmane.samba@graylog.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Ismail Belkacim <xd4rker@users.noreply.github.com>
Co-authored-by: Linus Pahl <linus.pahl@graylog.com>
Co-authored-by: Linus Pahl <46300478+linuspahl@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
Co-authored-by: Maxwell Anipah <maxwell.anipah@graylog.com>
2026-03-09 18:32:43 +01:00
Dennis Oelkers
2f15a2df25 Fix scroll-to-hint checking visibility of zero-height marker instead of parent widget (#25257)
Pass the parent element to `isElementVisibleInContainer` so the scroll
hint correctly detects when a newly created widget is not fully visible
in the viewport. Previously the empty marker div was considered visible
even when the actual widget content was off-screen.

Fixes #25237

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:42:00 +01:00
Jan Heise
97a1306243 making method public so I can call it from SecurityEventService (#25266) 2026-03-09 17:37:13 +01:00
Linus Pahl
049ee60ac0 Move MessageTable and MessageDetail component into components/common. (#25258)
* Move `MessageTable` component into common dir.

* Move `MessageTableEntry` to common dir.

* Move messagelist dir into message dir.

* Move `MessageDetail` component into components/common.

* Move components related to message details into message details dir.

* Move message details fields component into message details dir.

* Update imports.

* Move futher components into common dir.

* Cleanup exports.

* Fixing linter hints

* Remove `MessageTable` and `MessageList` from `common/index` for now, since it causes unrelated tests to fail.

* Cleanup

* Remove not needed file.
2026-03-09 17:36:25 +01:00
dependabot[bot]
d56036a367 Bump org.mockito:mockito-bom from 5.21.0 to 5.22.0 (#25255)
Bumps [org.mockito:mockito-bom](https://github.com/mockito/mockito) from 5.21.0 to 5.22.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.21.0...v5.22.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-bom
  dependency-version: 5.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:24:50 +01:00
dependabot[bot]
a2071ad363 Bump com.rabbitmq:amqp-client from 5.28.0 to 5.29.0 (#25254)
Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.28.0 to 5.29.0.
- [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases)
- [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.28.0...v5.29.0)

---
updated-dependencies:
- dependency-name: com.rabbitmq:amqp-client
  dependency-version: 5.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:24:31 +01:00
dependabot[bot]
7f432c3e8d Bump com.rabbitmq:amqp-client from 5.28.0 to 5.29.0 (#25254)
Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.28.0 to 5.29.0.
- [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases)
- [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.28.0...v5.29.0)

---
updated-dependencies:
- dependency-name: com.rabbitmq:amqp-client
  dependency-version: 5.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:24:20 +01:00
dependabot[bot]
cb57759a45 Bump com.google.errorprone:error_prone_core from 2.47.0 to 2.48.0 (#25253)
Bumps [com.google.errorprone:error_prone_core](https://github.com/google/error-prone) from 2.47.0 to 2.48.0.
- [Release notes](https://github.com/google/error-prone/releases)
- [Commits](https://github.com/google/error-prone/compare/v2.47.0...v2.48.0)

---
updated-dependencies:
- dependency-name: com.google.errorprone:error_prone_core
  dependency-version: 2.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:23:54 +01:00
dependabot[bot]
fc95eb2348 Bump com.google.cloud:google-cloud-storage from 2.63.0 to 2.64.0 (#25252)
Bumps [com.google.cloud:google-cloud-storage](https://github.com/googleapis/java-storage) from 2.63.0 to 2.64.0.
- [Release notes](https://github.com/googleapis/java-storage/releases)
- [Changelog](https://github.com/googleapis/java-storage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/java-storage/compare/v2.63.0...v2.64.0)

---
updated-dependencies:
- dependency-name: com.google.cloud:google-cloud-storage
  dependency-version: 2.64.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:22:53 +01:00
dependabot[bot]
0e9cb61061 Bump org.openrewrite:rewrite-java in the openrewrite group (#25251)
Bumps the openrewrite group with 1 update: [org.openrewrite:rewrite-java](https://github.com/openrewrite/rewrite).


Updates `org.openrewrite:rewrite-java` from 8.74.1 to 8.74.3
- [Release notes](https://github.com/openrewrite/rewrite/releases)
- [Commits](https://github.com/openrewrite/rewrite/compare/v8.74.1...v8.74.3)

---
updated-dependencies:
- dependency-name: org.openrewrite:rewrite-java
  dependency-version: 8.74.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: openrewrite
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:21:32 +01:00
dependabot[bot]
3c2f04a290 Bump org.yaml:snakeyaml from 2.5 to 2.6 (#25243)
Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 2.5 to 2.6.
- [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.6..snakeyaml-2.5)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  dependency-version: '2.6'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:20:33 +01:00
Jan Heise
adbb07d79c Improve structure and documentation of the Events/Alerts table slicing functionality (#25142)
* fixed imports

* improving structure, adding comments

* adding changelog

* fix changelog

* remove documentation that is not sensible from method comments

* adding a not equals query, adding a special "null" case

* reverting change on Test class

* remove whitespace

* revert change

* moving asset querying to enterprise
2026-03-09 14:36:34 +01:00
Jan Heise
44d1a97b63 adding a not equals search operator (#25263) 2026-03-09 13:56:16 +01:00
Jan Heise
23dd44acc3 fixing imports (#25262) 2026-03-09 12:57:41 +01:00
Jan Heise
b3b43448db Changing delimiter char for field/decorator in Scripting API (#25155)
* adding risk score

* move risk score slicing into enterprise

* fix field name

* adding changelog

* using ".." temporarily to separate field/decorator

* using pipe symbol th separate field/decorator

* settling on # to separate field/decorator

* adjusting test

* Update pr-25155.toml

* Update pr-25155.toml

* adjusting test

* adjusting test
2026-03-09 11:51:56 +01:00
Othello Maurer
97bbfff89d Add fully-qualified server url to OpenAPI description (#25238)
* Set OpenAPI server URL dynamically from request headers

The OpenAPI spec now sets an absolute server URL based on the
X-Graylog-Server-URL header, falling back to http_external_uri or
http_publish_uri. This fixes client URL resolution when Graylog is
behind a reverse proxy with a path prefix.

The cached OpenAPI model is never mutated — the servers field is
replaced only in the serialized Jackson tree.

* Fix null model handling and pretty-print in OpenApiResource

Return 404 when context.read() returns null, matching the previous
BaseOpenApiResource behavior. Use DefaultPrettyPrinter for both JSON
and YAML output to preserve the pretty-print configuration, consistent
with how BaseOpenApiResource honored isPrettyPrint() for all formats.

Remove unused UriInfo parameter — it was only needed by
BaseOpenApiResource for spec filtering, which we don't use.

* Remove jakarta.servlet-api dependency from graylog2-server

This dependency was only needed because OpenApiResource extended
BaseOpenApiResource, which has ServletConfig in its method signatures.
Now that we own the serialization directly, nothing in graylog2-server
references the servlet API.

* Simplify
2026-03-09 09:49:10 +01:00
Ismail Belkacim
e89ce6685a Use 1-minute average metric for inputs throughput (#25170)
* Use minute average metric for input throughput

* Add changelog

* Properly type getValueFromMetric()

---------

Co-authored-by: Florian Petersen <188503754+fpetersen-gl@users.noreply.github.com>
2026-03-06 11:15:45 +01:00
dependabot[bot]
c17e87f5d1 Bump dompurify from 3.3.1 to 3.3.2 in /graylog2-web-interface (#25239)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.3.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-06 08:22:02 +01:00
github-actions[bot]
62f3220781 Running lint --fix & prettier (#25241)
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
2026-03-06 08:21:50 +01:00
dependabot[bot]
0fe25bf1f4 Bump webpack in /graylog2-web-interface/packages/graylog-web-plugin (#25242)
Bumps [webpack](https://github.com/webpack/webpack) from 5.105.2 to 5.105.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.105.2...v5.105.3)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.105.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-06 08:21:36 +01:00
Dennis Oelkers
523094c8eb Replace swagger-ui-react with openapi-explorer in API Browser (#25227)
* Replace swagger-ui-react with openapi-explorer in API Browser

Swap out the heavyweight swagger-ui-react component for the openapi-explorer
web component, removing ~250 lines of custom CSS theming in the process.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Supplying base url to OpenAPI explorer.

* Simplifying passing API prefix.

* Load openapi-explorer asynchronously for code splitting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Adding styling.

* Adding download link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Formatting, typing.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:42:14 +01:00
Linus Pahl
5ecc6066c9 Extends docs links with link to threat coverage page. (#25149)
* Extends docs links with link to threat coverage page.

* Rename startpage option in user preferences from `Security Overview` to `Threat Coverage`.
2026-03-05 16:55:55 +01:00
dependabot[bot]
83088ff1ab Bump the openrewrite group with 6 updates (#25224)
Bumps the openrewrite group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [org.openrewrite:rewrite-java](https://github.com/openrewrite/rewrite) | `8.74.0` | `8.74.1` |
| [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks) | `3.27.0` | `3.28.0` |
| [org.openrewrite.recipe:rewrite-migrate-java](https://github.com/openrewrite/rewrite-migrate-java) | `3.27.1` | `3.28.0` |
| [org.openrewrite.recipe:rewrite-static-analysis](https://github.com/openrewrite/rewrite-static-analysis) | `2.27.0` | `2.28.0` |
| [org.openrewrite.recipe:rewrite-joda](https://github.com/openrewrite/rewrite-joda) | `0.6.2` | `0.7.0` |
| [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) | `6.29.0` | `6.30.0` |


Updates `org.openrewrite:rewrite-java` from 8.74.0 to 8.74.1
- [Release notes](https://github.com/openrewrite/rewrite/releases)
- [Commits](https://github.com/openrewrite/rewrite/compare/v8.74.0...v8.74.1)

Updates `org.openrewrite.recipe:rewrite-testing-frameworks` from 3.27.0 to 3.28.0
- [Release notes](https://github.com/openrewrite/rewrite-testing-frameworks/releases)
- [Commits](https://github.com/openrewrite/rewrite-testing-frameworks/compare/v3.27.0...v3.28.0)

Updates `org.openrewrite.recipe:rewrite-migrate-java` from 3.27.1 to 3.28.0
- [Release notes](https://github.com/openrewrite/rewrite-migrate-java/releases)
- [Commits](https://github.com/openrewrite/rewrite-migrate-java/compare/v3.27.1...v3.28.0)

Updates `org.openrewrite.recipe:rewrite-static-analysis` from 2.27.0 to 2.28.0
- [Release notes](https://github.com/openrewrite/rewrite-static-analysis/releases)
- [Commits](https://github.com/openrewrite/rewrite-static-analysis/compare/v2.27.0...v2.28.0)

Updates `org.openrewrite.recipe:rewrite-joda` from 0.6.2 to 0.7.0
- [Release notes](https://github.com/openrewrite/rewrite-joda/releases)
- [Commits](https://github.com/openrewrite/rewrite-joda/compare/v0.6.2...v0.7.0)

Updates `org.openrewrite.maven:rewrite-maven-plugin` from 6.29.0 to 6.30.0
- [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases)
- [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v6.29.0...v6.30.0)

---
updated-dependencies:
- dependency-name: org.openrewrite:rewrite-java
  dependency-version: 8.74.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: openrewrite
- dependency-name: org.openrewrite.recipe:rewrite-testing-frameworks
  dependency-version: 3.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: openrewrite
- dependency-name: org.openrewrite.recipe:rewrite-migrate-java
  dependency-version: 3.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: openrewrite
- dependency-name: org.openrewrite.recipe:rewrite-static-analysis
  dependency-version: 2.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: openrewrite
- dependency-name: org.openrewrite.recipe:rewrite-joda
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: openrewrite
- dependency-name: org.openrewrite.maven:rewrite-maven-plugin
  dependency-version: 6.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: openrewrite
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 14:28:07 +01:00
Dennis Oelkers
b643c2024c Prevent 404 for /api-browser route. (#25213)
* Prevent 404 for `/api-browser` route.

* Adding test case.
2026-03-05 11:11:18 +01:00